4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Docker + Nginx + PHP-FPM + MySQL 8 + CakePHP3.8でチュートリアル環境をサッと作る

Last updated at Posted at 2019-09-28

概要 🎂

CakePHP3のチュートリアルを試すのにDockerを使いました
https://github.com/yotasasaki/cakephp3-docker に置いてあります。

構成

  • タイトルの通りです。チュートリアルを進めるための最低限の構成です。
    • Docker Desktop for mac
    • Docker Compose
    • Nginx
    • PHP-FPM
    • MySQL 8
    • CakePHP3系 (3.8.4)

使い方

$ cd /YOUR/PROJECT
$ git clone https://github.com/yotasasaki/cakephp3-docker.git .
$ cd docker/
$ docker-compose up -d
$ docker ps --format="{{.Names}}"
cake-nginx
cake-mysql
cake-phpfpm
$ docker exec -it cake-phpfpm bash
// in phpfpm container
/var/www/html # rm cms/empty && composer self-update && composer create-project --prefer-dist cakephp/app:^3.8 cms
... composer install ...
/var/www/html # exit
// config/app.php の編集
    'Datasources' => [
        'default' => [
            // ... more configurations
            'host' => 'cake-mysql',
            'username' => 'cakephp',
            'password' => 'password',
            'database' => 'cake_cms',

http://0.0.0.0:8080/ にアクセスするとCakePHP3のデフォルトトップページにアクセスできるはずなので、Database 項目が CakePHP is able to connect to the database. になっていればOKです。

スクリーンショット 2019-09-28 23.02.52.png

チュートリアルを進める上での注意点

CakePHP 3.8.4 でもほぼチュートリアルの通りでも問題ありませんが、1点だけ。

Deprecated (16384): You are using a deprecated argument order for Cake\Validation\Validator::allowEmptyString. You should reverse the order of your `when` and `message` arguments so that they are `message, when`. - /var/www/html/cake/vendor/cakephp/cakephp/src/Validation/Validator.php, line: 855

補足

  • MySQL8系を使うために --default-authentication-plugin=mysql_native_password としました。
  • 大体皆がハマるintl に関しては、phpfpmコンテナ上で有効化してあるので、composer create-project はコンテナにログインして行うようにしてます。ローカルPC上で実行するとintl設定したりまた面倒な事になるので。
  • 今回はdocker-compose up時にチュートリアル用のテーブルも作ってしまう様にしました。不要な場合は、1.create-schema.sql を削除すれば、テーブルは作成されません。
  • cms ディレクトリを他の名前にする場合は、以下を修正して、docker-compose down --rmi allしてから再度upしてください
    • docker-composer.ymlのvolumes
    • nginx/default.confのroot
    • CakePHPのDL前なら composer create-projectコマンドの最後の引数

参考

環境構築に関してはすでにたくさん分かりやすい記事があるので、本記事は補足情報程度にして頂ければと思います。

4
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?