MBP に Laravel環境を作る(Laradock使用)

はじめに

Laravelの環境を作る場合、以下の方法がある。

  1. 公式サイトの情報を元に、開発機にcomposerで環境を作る。
  2. VirtualBox + Vagrant + Homestead + Composer で仮想環境を作る。
  3. Docker + Laradock で仮想環境を作る。

できるだけ、実機の環境はいじりたくないので、仮想環境を作ってみる。2のほうが情報が多そうだが、Dockerは既に入れているので、3で試してみる。3のほうが、実機のディスク容量は食わなそうだし。

参考サイト

1.いるもの

  • Git
  • Docker
  • Node.js (フロントエンドのビルドをする場合)

いずれも、今回はインストール済み。

2.作業ディレクトリの用意

ホスト機に任意のディレクトリを作って、その下にLaradockを配置していく。

Docker関連のファイルは一式外付けHDDに出したので、その下に下記のような感じで作っていく。

/Volumes/forDocker/Docker
└─ myProject
├─── laradock
└─── src (ここにLaravel が配置される)

laradock をgit のサブモジュールとして使うので、下記のようにコマンド叩いていく。

$ mkdir myProject
$ cd myProject
$ git init
$ mkdir src
$ git submodule add https://github.com/Laradock/laradock.git

ここまで行くと、先述のようにディレクトリが構成される。

3.Laravelのインストール先の指定

git でクローンしてきた laradock ディレクトリに入り、環境設定ファイルを用意する、

$ cd laradock
$ cp env-sample .env
$ vi .env
----
###########################################################
###################### General Setup ######################
###########################################################
# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../src/  # /Volumes/forDocker/Docker/myProject/src にLaravelがインストールされるように

# Choose storage path on your machine. For all storage systems
DATA_PATH_HOST=~/.laradock/data
  ↓
DATA_PATH_HOST=/Volumes/forDocker/Docker/.laradock/data  # ホームディレクトリの下になってるので変更

4.Docker コンテナの起動

$ docker-compose up -d nginx mysql

結構時間がかかります。

5.Laravel のインストール

コンテナが起動したら、workspaceのコンテナに入り、Laravel をインストールしていく。

* もし、workspace が起動してなければ
$ docker-compose up -d workspace

$ docker-compose exec workspace bash
# composer create-project --prefer-dist laravel/laravel ./

しばらく時間がかかって、インストール完了したら、ブラウザからlocalhost にアクセスしてみる。

 

workspaceからMySQLに接続できるか確認するために、以下コマンドを実行するが、エラー。

# php artisan migrate
   Illuminate\Database\QueryException  : SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client (SQL: select * from information_schema.tables where table_schema = default and table_name = migrations)

どうも、MySQLのlatestのイメージを使ったので、認証方法が変更になっていてエラーになっているらしい。

MySQLのコンテナに接続して、認証方法を確認してみる。

$ docker-compose exec mysql bash
# mysql -u root -p
mysql> select user, host, plugin from mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| default          | %         | caching_sha2_password |
| root             | %         | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
6 rows in set (0.00 sec)
mysql> alter user 'default'@'%' identified with mysql_native_password by 'secret';
mysql> exit;
# mysql:latest のコンテナにviが入っていなかったので以下実行。
# apt-get update
# apt-get install vim
# vi /etc/mysql/conf.d/my.cnf
----
  [mysqld]
  default_authentication_plugin= mysql_native_password  # 追加
----

で、上記のように変更してから、artisan migrate すると上手くいった。

 

 

タグ: # # #
コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA