ホーム > カテゴリ > PHP・Laravel・CakePHP >

レンタルサーバーでCakePHPを動かす [バリュードメイン(コアサーバー)]

バリュードメインのコアサーバー(レンタルサーバー)でCakePHPを本番稼働させます。バリュードメイン系列ならば、XREA、バリューサーバーでも設定方法は恐らく同じだと思います。

前提条件

今回はCakePHP3.9系を使用したのでPHP7.4が必要です。

バリュードメインのPHPバージョン選択でPHP74を設定します。

1. ファイル転送

WinSCPなどを使用してサーバーに作成したプロジェクトを転送する。

※転送に失敗するゴミファイルは無視でOK!

2. タイムゾーン

DB設定で「Asia/Tokyo」を指定していると次のエラーが表示されます。

Error: SQLSTATE[HY000]: General error: 1298 Unknown or incorrect time zone: '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 Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.2.5". You are running 7.1.33.

PHPの致命的なエラー:Composerがプラットフォームで問題を検出しました:Composerの依存関係にはPHPバージョン "> = 7.2.5"が必要です。 7.1.33を実行しています。

実行するとメインのPHPのバージョンが古いと怒られます(笑)

PHP7.4で実行すると

php74 bin/cake.php migrations migrate

HTMLで次のようなエラーになります。

Unknown command `cake migrations`. Run `cake --help` to get the list of valid commands.

次のコマンドを「本番」と「開発サーバー」で調査すると

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です。

以上となります。





関連記事



公開日:2021年02月11日
記事NO:02882