レンタルサーバーでCakePHPを動かす [バリュードメイン(コアサーバー)]
バリュードメインのコアサーバー(レンタルサーバー)でCakePHPを本番稼働させます。バリュードメイン系列ならば、XREA、バリューサーバーでも設定方法は恐らく同じだと思います。
前提条件
今回はCakePHP3.9系を使用したのでPHP7.4が必要です。
バリュードメインのPHPバージョン選択でPHP74を設定します。

1. ファイル転送
WinSCPなどを使用してサーバーに作成したプロジェクトを転送する。
※転送に失敗するゴミファイルは無視でOK!
2. タイムゾーン
DB設定で「Asia/Tokyo」を指定していると次のエラーが表示されます。
バリュードメインのサーバーにSSHで確認すると次のようになっています。
mysql> show variables like '%time_zone%'; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | JST | | time_zone | SYSTEM | +------------------+--------+ 2 rows in set (0.01 sec)
time_zoneがSYSTEMになっています。サーバーの設定を変更すればできるんですが、レンタルサーバーなので恐らく厳しいでしょう。
代替案として「Asia/Tokyo」を「+09:00」に変更します。
// app.php 'App' => [ 'defaultLocale' => env('APP_DEFAULT_LOCALE', 'ja_JP'), 'defaultTimezone' => env('APP_DEFAULT_TIMEZONE', '+09:00'), ], 'Datasources' => [ 'default' => [ 'timezone' => '+09:00', ], ],
3. マイグレーション
マイグレーションを実行すると
bin/cake migrations migrate
次のようにアクセス拒否されます。
-bash-4.2$ bin/cake migrations migrate -bash: bin/cake: Permission denied
bin/cakeファイルのパーミッションを644から744に変更すれば実行可能。
実行するとメインのPHPのバージョンが古いと怒られます(笑)
PHP7.4で実行すると
php74 bin/cake.php migrations migrate
HTMLで次のようなエラーになります。
次のコマンドを「本番」と「開発サーバー」で調査すると
php74 bin/cake.php --help
[バリュードメイン - 本番サーバー]
// Available Commands: [app]: - console - hello [core]: - cache - completion - help - i18n - orm_cache - plugin - routes - schema_cache - server - version
[ローカルサーバー - 開発サーバー]
// Available Commands: Bake: - bake Migrations: - migrations WyriHaximus/twigView: - compile [app]: - console - hello [core]: - cache - completion - help - i18n - orm_cache - plugin - routes - schema_cache - server - version
Available Commands:に「Migrations」が含まれていないのがわかりますね。ですのでマイグレーションはつかえないようです。
代替案としてphpMyAdminのエクスポート/インポート機能を使って手動で各テーブルを生成すればOKです。
以上となります。