- 投稿日:2023年06月09日 10時43分44秒
- 更新日:2023年06月09日 10時43分45秒

CakePHPの環境を構築する
詳細
Composerをインストール
cakePHPの環境構築に推奨(?)されているComposerというPHPのパッケージ管理システムをインストールします。
composerのインストール方法は公式からコピペします。
apt install php8.0-cli php8.0-mbstring php8.0-xml php8.0-intl php8.0-mysql
cd ~
#これ以降はcomposerの公式を参考に
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
途中のcdコマンドは、composerからファイルをダウンロードするのでわかりやすくするためです。不要な方であれば好きに変えてください。
上記コマンドを実行し終わると「composer.phar」ファイルが出来上がっています。
これをphpと同じ場所に置いてコマンド実行できるようにします。
mv ./composer.phar $(dirname $(which php))/composer && chmod +x "$_"
composer --version
これでバージョン情報などが返ってきたらOKです。
トピック:古いphpを既定にしていたのでエラーが出た
環境構築しているサーバは、分け合ってphp7.1を既定にしていました。そのためcomposerがインストールできませんでした。
そこで一旦新しいphpに切り替えましたので、切替コマンドを紹介します。
update-alternatives --config php
composerを使いcakePHP4.Xでプロジェクトを作成
cd [プロジェクトディレクトリを作成するディレクトリ]
composer create-project --prefer-dist cakephp/app:4.* [プロジェクト名]
上記コマンドを打つと色々聞かれます。ここでは(よくわからなかったので)全てyとしました。
ここまででプロジェクトが作成されました。cakePHPサーバを実行することで確認できます。
cakePHPサーバは既定ではlocalhoat:8765です。
bin/cake server
curl http://localhost:8765
使用するDBをMySQLにする
標準がsqLiteっぽいです。
MySQLが使い慣れているので変更します。
cd [プロジェクト名]
nano config/app.php
DBに関する記述を以下のようにします。
当然ですがusernameなども環境に合わせてものに変更してください。
'Datasources' => [
'default' => [
'className' => Connection::class,
'driver' => Mysql::class,
Nginxをproxyサーバとして利用する
confファイルを作成します。
プロジェクト名のところはドメイン(サブドメイン)名だったりもしますが、この時は開発環境だったのでこうなっています。
sudo nano /etc/nginx/sites-available/[プロジェクト名].conf
upstream backend {
server localhost:8765 weight=1;
}
server {
listen 50601;
server_name _;
root [プロジェクトディレクトリ]/webroot;
index index.html index.html index.nginx-debian.html index.php;
location / {
#try_files $uri $uri/ =404;
proxy_pass http://backend;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_index index.php;
fastcgi_intercept_errors on;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
最後にconfファイルを有効にしてNginxを再起動します。
ln -s /etc/nginx/sites-available/[プロジェクト名].conf
systemctl reload nginx.server