Laravelの開発環境構築でよく使われるLaradockを使って、CakePHPの開発環境を構築しよう

みなさんはLaradockをご存知でしょうか?

Laradockは、Laravelの開発環境を構築するのに用いられることが多いDocker環境です。

しかし、Laravel専用のDocker環境ということではなく、PHP開発向けに構築されたDocker環境であるため、Laradockを使ってCakePHPの開発環境を構築することもできます。

この記事では、Laradockを使ってCakePHPの開発環境を構築する方法を解説していきたいと思います。

ちなみにこのブログでもLaradockを使ってLaravel開発環境を構築する方法を紹介しているので、ぜひこちらも参考にしてくださいね。

目次

Laradockを使って、CakePHP開発環境を構築する

それでは早速Laradockを使って、CakePHPの開発環境を構築していきましょう。

なお、この記事ではCakePHP3の開発環境を構築していきたいと思います。

Laradockのインストール

まずはプロジェクトディレクトリを作成して、その中にLaradockのリポジトリをcloneしていきましょう。

mkdir test-project
cd test-project
git clone https://github.com/Laradock/laradock.git

cloneに成功すると、test-projectディレクトリの中にlaradockディレクトリが生成されているのが確認できます。

このlaradockディレクトリがlaradockのDocker環境になります。

次にtest-projectディレクトリの中にCakePHPのプロジェクトディレクトリを配置していくので、そのディレクトリを作成しておきましょう。

mkdir src

Laradockの設定ファイルを編集する

laradockディレクトリに移動して、.envファイルを作成していきます。

laradockディレクトリの中に.env.exampleファイルが存在するので、こちらを複製して.envファイルを作成していきましょう。

cd laradock
cp .env.example .env

.envファイルは下記の通りに修正していきます。

APP_CODE_PATH_HOST=../src/
DATA_PATH_HOST=../.laradock/data
COMPOSER_PROJECT_NAME=test-project

PHP_VERSION=7.4
PHP_FPM_INSTALL_INTL=true

MYSQL_VERSION=5.7
MYSQL_DATABASE=testdb
MYSQL_USER=testuser
MYSQL_PASSWORD=password

APP_CODE_PATH_HOST

CakePHPプロジェクトの配置場所を指定します。

作成したsrcディレクトリのパスを指定しましょう。

APP_CODE_PATH_HOST=../src/

DATA_PATH_HOST

プロジェクトのデータ格納場所を指定します。

こちらをデフォルトのグローバルな場所に設定すると複数プロジェクトのデータ管理が上手くできなくなってしまうので、プロジェクトのディレクトリ直下を指定してあげます。

DATA_PATH_HOST=../.laradock/data

COMPOSER_PROJECT_NAME

プロジェクトのdockerコンテナ名を指定してあげます。

今回作成したプロジェクトディレクトリ名と同じものを指定することにしましょう。

COMPOSER_PROJECT_NAME=test-project

PHP_VERSION

プロジェクトの内でのPHPのバージョンを指定します。

今回はPHP7.4を指定してあげましょう。

PHP_VERSION=7.4

PHP_FPM_INSTALL_INTL

CakePHPはintl拡張モジュールが必要なので、こちらの値がtrueになっていることを確認します。

falseになっている場合は、trueに指定しましょう。

PHP_FPM_INSTALL_INTL=true

MYSQL_VERSION

プロジェクト内でのMySQLのバージョンを指定します。

今回はMySQL5.7を指定していきます。

MYSQL_VERSION=5.7

MYSQL_DATABASE

MySQLで作成するデータベース名を指定します。

MYSQL_DATABASE=testdb

MYSQL_USER

MySQLのユーザーを指定します。

MYSQL_USER=testuser

MYSQL_PASSWORD

MySQLユーザーのパスワードを指定します。

MYSQL_PASSWORD=password

rootディレクトリをCakePHP用に設定する

LaravelとCakePHPではrootディレクトリが違うので、rootディレクトリの設定をCakePHP用に修正する必要があります。

laradockディレクトリの中にあるnginx>sitesディレクトリの中にdefault.confファイルが存在します。

default.confファイルの13行目あたりを下記の通りに修正します。

root /var/www/webroot;

Dockerコンテナを起動する

.envファイルが作成できたら、docker-compose upコマンドでコンテナを起動していきましょう。

また、-dオプションを指定することで、バックグラウンドでコンテナを起動することができますl。

docker-compose up -d nginx mysql phpmyadmin mailhog

起動が完了したら、下記のコマンドでコンテナがちゃんと起動しているか確認しましょう。

docker ps --format "table {{.Names}}"

NAMES
test-project_nginx_1
test-project_php-fpm_1
test-project_workspace_1
test-project_phpmyadmin_1
test-project_mysql_1
test-project_mailhog_1
test-project_docker-in-docker_1

下記の7つのコンテナが起動していることが確認できましたね。

  • nginx
  • php-fpm
  • workspace
  • phpmyadmin
  • mysql
  • mailhog
  • docker-in-docker

CakePHPのインストール

workspaceコンテナにアクセスして、CakePHPをインストールしていきましょう。

docker-compose exec --user=laradock workspace bash
$ composer self-update && composer create-project --prefer-dist cakephp/app:^3.8 test-project ./
$ exit

無事にインストールが完了したら、lsコマンドでCakePHPのプロジェクトディレクトリ一式があることを確認しておきましょう。

CakePHPとデータベースを紐付ける

最後にCakePHPでDBを使えるように設定していきます。

srcディレクトリのconfigディレクトリ内のapp.phpファイルとapp_local.phpを下記のように修正します。

return [
    '' => [
        'host' => 'msyql',
        'username' => 'testuser',
        'password' => 'password',
        'database' => 'testdb',
    ],
];

Laradockの設定ファイル(.envファイル)で設定した内容に合わせて、修正します。

これでLaradockを使って、CakePHPの開発環境構築が完了しました。

ブラウザで確認

構築した環境をブラウザで確認しておきましょう。

CakePHP

メインのCakePHPの初期画面です。

http://localhostで確認することができます。

無事に初期画面が表示されていますね。

また、Databaseの項目のところには、「CakePHP is able to connect to the database.」 と表示されているので、Laradockで構築したデータベースとの接続も上手くいってそうですね。

phpMyAdmin

phpMyAdminはデフォルトのままだと8081番ポートに設定されているので、http://localhost:8081でアクセスすることができます。

phpMyAdminのログイン画面が表示されます。

ログイン情報はLaradockの.envファイルで指定した下記の項目になります。

  • サーバ:mysql
  • ユーザー名:MYSQL_USERの値
  • パスワード:MYSQL_PASSWORDの値

無事にphpMyAdminの管理画面が表示されましたね。

MailHog

MailHogはデフォルトでは8025番ポートに設定されているので、http://localhost:8025でアクセスすることができます。

これで無事に環境構築できていることが確認できましたね。

Dockerコンテナの停止

開発終了時には、下記のコマンドでDockerコンテナを停止させておきましょう。

docker-compose stop

再度、コンテナを起動させたい時には下記コマンドで起動することができます。

docker-compose up -d nginx mysql phpmyadmin mailhog

まとめ

Laradockを使ってCakePHPの開発環境を構築する方法を紹介してきました。

Laradockを使えば、LaravelやCakePHPに限らず他のPHPフレームワークや素のPHPの開発環境も簡単に構築できそうですね。

ぜひ、Laradockを使ってPHPの開発環境を構築する一助にしてくださいね。

プログラミングスクールをお探しの方はこちら

フリーランス案件をお探しの方はこちら

エンジニア転職サイトをお探しの方はこちら

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次