なぜ投稿するのか
初心者なりに、Laravelの環境構築についてまとめます。
よくスタックしてしまうので、自分の備忘録用に。
基本的には公式ドキュメントを確認しましょう。
https://laradock.io
前提
- Mac OS Mojave ver10.14.4
- Docker for Mac インストール済
- gitを利用していること
Laradockをプロジェクトのディレクトリにクローンする。
まずはディレクトリを作成する。今回のディレクトリの名前は「web_site」とする。ディレクトリ作成のコマンドはmkdir
です。
mkdir web_site
そして、作成したディレクトリに移動。移動のコマンドはcd
です。
cd web_site
そして、「web_site」直下にLaradockをクローンします。
git clone https://github.com/LaraDock/laradock.git
クローンできたら、「laradock」ディレクトリに移動する。
cd laradock
次に、env-example
を.env
にコピーし名前を変更する。
cp env-example .env
公式ではここでdocker-compose up -d nginx mysql phpmyadmin redis workspace
してコンテナを立ち上げるが、ここはグッとこらえてmysqlの設定を変更する。
「laradock」ディレクトリ内の.env
ファイルを編集する。(恐らく220行目)
# MYSQL_VERSION=latest 最新版
MYSQL_VERSION=5.7
コンテナを立ち上げる
設定が無事に完了したら、コンテナを立ち上げます。
docker-compose up -d nginx mysql phpmyadmin
念の為コンテナが立ち上がっているか確認する。
docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------------------------------
laradock_docker-in-docker_1 dockerd-entrypoint.sh Up 2375/tcp
laradock_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
laradock_nginx_1 /bin/bash /opt/startup.sh Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
laradock_php-fpm_1 docker-php-entrypoint php-fpm Up 9000/tcp
laradock_phpmyadmin_1 /run.sh supervisord -n -j ... Up 0.0.0.0:8080->80/tcp, 9000/tcp
laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp
たまにmysqlが立ち上がっていなかったり、バージョンが5.7じゃない時があるので、確認してみましょう。
docker-compose exec mysql mysql --version
もし5.7じゃなかったら下記URLを参考にしてください。私もこちらで解決しました。
https://qiita.com/don-bu-rakko/items/cd8f96cc9087abf601e3
改めてdocker-compose exec mysql mysql --version
を入力し、mysqlのバージョンを確認する。
docker-compose exec mysql mysql --version
mysql Ver 14.14 Distrib 5.7.26, for Linux (x86_64) using EditLine wrapper
こうなっていれば問題ありません。
そしたらworkspace内に入って、プロジェクトを作成します。
rootで入ると怒られるので--user=laradock
を指定します。
docker-compose exec --user=laradock workspace /bin/bash
laradock@58587972cc01:/var/www$ composer create-project laravel/laravel web
composer create-project laravel/laravel web
は、composerでlaravelを作成しています。ファイル名は「web」にしていますが、任意の名前を入力してください。
「web」フォルダ内の.env
ファイルの編集
少しややこしいですが、先ほど編集したのは「laradock」フォルダの.env
ファイルです。要確認。
DB_HOST=mysql # 元は127.0.0.1
DB_DATABASE=default # 元はhomestead
DB_USERNAME=default # 元はhomestead
次に、laradock内の.env
ファイルの8行目を変更します。
APP_CODE_PATH_HOST=../web/
そのあとdockerを再起動します。
docker-compose stop
docker-compose up -d nginx mysql phpmyadmin
これで無事に完了するはずです。