Laradock で編集必要な点まとめ
cp env-example .env
すること- .env の、APP_CODE_PATH_HOST を編集すること
前提
次のアプリが使用可能なこと
- Git
- Docker
- Composer
Laradock で環境構築したい Laravel プロジェクト概要
- samplelaravel ディレクトリを作り、その中で作業する。
- Laravel プロジェクト名を、SampleProject とする。
- Laravel 5.4.36
- MySQL 8.0.12
Laradock で環境構築するまでの記録
ポイント
- Laradock で作業する前に、Laravel プロジェクトを作成しておく
- laradock/.env で
APP_CODE_PATH_HOST=../SampleProject/
と設定すると、その後のdocker-compose up -d nginx mysql
時に samplelaravel ディレクトリに SampleProject ディレクトリが作成される。
# 作業場所の作成 cd samplelaravel/ mkdir samplelaravel # Laravel プロジェクトの作成 composer create-project laravel/laravel SampleProject # Laradock の導入 git clone https://github.com/laradock/laradock.git cd laradock/ # Laradock 開発環境の設定 cp env-example .env vim .env
laradock/.env の編集内容
APP_CODE_PATH_HOST=../SampleProject/
# MySQL 8 の設定 vim mysql/my.cnf
次を [mysqld] の最後に追加しました。
参考ページ -> macでLaravelでmysql8を使う (mysql8の認証プラグインの変更) – Qiita
default-authentication-plugin = mysql_native_password
# Laradock 開発環境のビルド、起動 docker-compose up -d nginx mysql
ウェブブラウザから、http://localhost/
へアクセスし、Laravel のページが表示されれば成功
DB との接続を確認
ポイント
- MySQL ユーザは、mysql_native_password で作成すること。PHP の PDO が caching_sha2_password に対応していないため、接続できなかった。
# MySQL コンテナに入る docker exec -it laradock_mysql_1 bash mysql -u root -proot -- DB、ユーザを作成し、権限を付与 CREATE DATABASE IF NOT EXISTS sample_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER sample_user@localhost IDENTIFIED WITH mysql_native_password BY 'sample_user_pass'; GRANT ALL PRIVILEGES ON sample_db.* TO sample_user@localhost; CREATE USER sample_user@'%' IDENTIFIED WITH mysql_native_password BY 'sample_user_pass'; GRANT ALL PRIVILEGES ON sample_db.* TO sample_user@'%'; quit # MySQL コンテナから出る exit # Laravel プロジェクト設定を編集する vim ../SampleProject/.env
次のようにしました。
DB_HOST=mysql DB_PORT=3306 DB_DATABASE=sample_db DB_USERNAME=sample_user DB_PASSWORD=sample_user_pass
# Laravel プロジェクト設定を編集する vim ../SampleProject/.env
参考ページ -> Laravel5 MySQL8.0 NO_AUTO_CREATE_USERのSQL_MODEエラー対策 – Qiita
'mysql' => [ ... 略 ... 'strict' => false, ... 略 ... ],
# Workspace コンテナに入る docker-compose exec workspace bash php artisan migrate
次のようになれば OK
root@3a034be6a28d:/var/www# php artisan migrate Migration table created successfully. Migrating: 2014_10_12_000000_create_users_table Migrated: 2014_10_12_000000_create_users_table Migrating: 2014_10_12_100000_create_password_resets_table Migrated: 2014_10_12_100000_create_password_resets_table root@3a034be6a28d:/var/www#
参考
大体は本家ページに従うことで、体験できました。
日本語の体験ページとしては、次が雰囲気を知るのに役立ちました。
おわりに
Laravel の環境を Docker で構築したいと思いました。
そのために、Laradock という、すでに同じような目的のものを見つけました。
このまま使うのか、参考にするのか、、、Laravel 自体もさわったことがありませんし、まずは素直に体験することにしました。
素直に従ったつもりでしたが、案の定、 Laradock のディレクトリ構成や、MySQL 8 設定の罠で時間を撮ってしまいました><。
以上です。