
ComposerでLaravelを導入
まずはwebコンテナに新しく開いたターミナルで入りましょう。
laravel_project % docker exec -it local_web bash
root@7e0fs9402a24:/var/www/html#
これで現状/var/www/html
の中にいるので、次にComposerを使ってLaravelプロジェクトを作成します。
root@7e0fs9402a24:/var/www/html# composer create-project laravel/laravel docker-laravel
docker-laravel
の部分がディレクトリ名になります。(好きな名前に変えても大丈夫です。)
コマンドを実行すると、プロジェクトが/var/www/html
直下に作られます。
また、コマンド実行後ライブラリのダウンロードに少し時間がかかるのでしばらく待ちましょう。
ダウンロードが完了すると下記が表示されますのでこれで無事ダウンロード完了となります。
ローカルのsrc
ファイル直下を確認すると、docker-laravel
というファイルが作成されているかと思います。(ダウンロード後念のためファイルが作成されているか確認しましょう。)
Application key set successfully.
apacheのドキュメントルートの変更とリライト有効にする
次はhttp://localhost:8080
にアクセスしたら、Laravelのwelcomeページになるように設定します。
ここではApacheでDocumentRoot
を下記にする必要があるので、ローカルにあるapache/sites-available/000-default.conf
のDocumentRoot
を変更します。
/var/www/html/laravel/public
<VirtualHost *:80>
~~~ 略 ~~~
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/docker-laravel/public
~~~ 略 ~~~
</VirtualHost>
変更したらコンテナを停止し、再びdocker-compose up
をしましょう。
これでまたhttp://localhost:8080
にアクセスすると、Laravelのwelcomeページが表示されようになります。

またリライトも動いているか、存在しないファイルへ404ページにアクセスできるか確認します。
下記画面が表示されたらちゃんと動いてます!

Laravelのartisanでmigrateができるようにする
いよいよ最後のステップとなります。
現状Laravelのが導入されていることは確認できましたが、DBへも接続できるように設定していきます。
今の状態でmigrate
を実行しても、「DBに接続を拒否された」というエラーが表示されます。
そこでエラーを回避するために、ローカルにあるsrc/laravel-docker/.env
ファイルにMySQLの設定を行いましょう。
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=local_db
DB_USERNAME=local_user
DB_PASSWORD=local_password
上記内容に設定を変更したらartisan
のキャッシュを下記コマンドでクリアにします。
root@7e0fs9402a24:/var/www/html/docker-laravel# php artisan cache:clear
root@7e0fs9402a24:/var/www/html/docker-laravel# php artisan config:clear
キャッシュクリアが完了すると下記が表示されます。
Application cache cleared!
Configuration cache cleared!
キャッシュをクリアできたら再度、migrate
を実行してみます。
root@7e0fs9402a24:/var/www/html/docker-laravel# php artisan migrate
migrate
を実行すると下記画面が表示されます。
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (98.34ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (47.64ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (48.87ms)
Migrating: 2019_12_14_000001_create_personal_access_tokens_table
Migrated: 2019_12_14_000001_create_personal_access_tokens_table (79.00ms)
これでDockerを使ってのLaravelの導入は全て完了となります。お疲れ様でした!
最後に
いかがだったでしょうか?少し長かったですが、無事に導入が完了されたかと思います。
ここまでで何かエラーがでた。または不明点がある場合はコメント欄でご連絡いただけますと幸いです。