DockerとLaradockでPHPフレームワークとCMSの開発環境を構築する【MySQL( latest)8.0.11対応】

DockerとLaradockでPHPフレームワークとCMSの開発環境を構築します。Dockerでの開発環境構築を勉強するために参考情報を調べていたらLaradockという便利そうなものを見つけました。

Composerが入ってるだけだから別のフレームワークでも使える
PHPカンファレンス関西2017に行ってきました | プログラミングメカブログ

と言う記事も見かけたので、以下のPHPフレームワークとCMSの開発環境をDockerとLaradockを利用して用意してみようと思います。

今回実施するもの

PHPフレームワーク

CMS

mysqlバージョンについて

以下の記事を参考に[ my.cnf ]に[ default_authentication_plugin=mysql_native_password ]を追記しlatest(8.0.11)に対応しました。
参考:日々の覚書: MySQL 8.0.4におけるデフォルト認証形式の変更

mysqlのデフォルトの認証方式がバージョン8.0.4から[ caching_sha2_password ] に変更があったため、latestバージョン(8.0.11)でPHPフレームワークやCMSの開発環境構築を進めて行こうとすると以下のようなエラーが発生します。

参考:SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client · Issue #1392 · laradock/laradock

エラー解消の参考情報は見つけたのですが、個人的にmysqlはバージョン8.0.3または5.7.22で問題ないため、latestバージョン(8.0.11)は使用しないことに決めました。

バージョン情報

  • Mac OS 10.11.6(El Capitan)
  • Docker Toolbox
    • Docker version 18.03.0-ce
    • Oracle VM VirtualBox Manager 5.2.12
  • Laradock
    • PHP 7.2.4 (fpm-fcgi)
    • nginx version: nginx/1.15.0
    • mysql Ver 8.0.11 for Linux on x86_64 (MySQL Community Server – GPL)
  • Laravel 5.6.26

その他情報

laradock設定

起動するコンテナ群の環境変数設定ファイル作成し、laradock設定を行います。

[ .env ]の[ Paths ]でPHPフレームワークやCMSを展開するディレクトリや、DBデータの永続場所が指定できますので必要に応じて変更して下さい。

mysql latest設定

mysqlバージョンlatest(8.0.11)に合わせて設定を変更します。

コンテナ起動確認

[ .env ]と[ docker-compose.yml ] の設定を元にコンテナを生成起動します。

workspaceコンテナ接続

PHPフレームワークやCMSをインストールするため[ workspace ]コンテナに接続します。
[ root@98cc6b1b406d:/var/www# ]のような表示がされたら接続は成功です。

PHPフレームワークやCMSをインストール

Laradockの準備ができたのでworkspaceコンテナにPHPフレームワークやCMSをインストールしていきます。例としてLaravelのみ紹介します。

Laravel設定

[ composer ]でインストールし、nginxの[ default.conf ]内のrootのpathを修正します。

Laravelスタートページ表示

migrationテスト

参考