PHP
Laravel

Laravelの環境構築


なぜ投稿するのか

初心者なりに、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

これで無事に完了するはずです。