【試行錯誤】【ロリポップ】CakePHPの開発環境と本番環境を作る

 当ページのリンクには広告が含まれています。

信じられない。
ロリポップcakeコマンド使えないの?

ってことで、cakeコマンド使えないとかCakePHPで開発する意味あるの?ってレベルなので、XAMPPを使った開発環境とロリポップの本番環境を作ることにします。

まじあほ。
使えるようにして欲しいです。ロリポップ様。

後日問い合わせで判明しますが、ロリポップはcakeコマンド使えません。
【参考】SSHについて / サーバー・プログラム / マニュアル – ロリポップ!レンタルサーバー

現状確認

ロリポップで簡単なCakePHPは動いている。
ローカルだとDBさえ整えたらbakeコマンド使えて解決しないか?
開発中のファイル自体は開発サーバに上げたいし。

作業開始

まずぐぐる。
cakephp3 db ドメインで切り替え

あんまりしっくりこないな。

ん?あ。
そっか。
そのための.envだw

.envを使えるようにする。

// if (!env('APP_NAME') && file_exists(CONFIG . '.env')) {
//     $dotenv = new \josegonzalez\Dotenv\Loader([CONFIG . '.env']);
//     $dotenv->parse()
//         ->putenv()
//         ->toEnv()
//         ->toServer();
// }
if (!env('APP_NAME') && file_exists(CONFIG . '.env')) {
    $dotenv = new \josegonzalez\Dotenv\Loader([CONFIG . '.env']);
    $dotenv->parse()
        ->putenv()
        ->toEnv()
        ->toServer();
}

config\.env.defaultをコピーして、config\.envを作成。
本番用の.env開発用の.envはDBの設定が違うので注意。

export APP_NAME="__APP_NAME__"
export DEBUG="true"
export APP_ENCODING="UTF-8"
export APP_DEFAULT_LOCALE="en_US"
export APP_DEFAULT_TIMEZONE="UTC"
export SECURITY_SALT="__SALT__"
export DB_HOST="localhost"
export DB_USERNAME="root"
export DB_PASSWORD=""
export DB_DATABASE="test"

export APP_NAME="App"
export DEBUG="true"
export APP_ENCODING="UTF-8"
export APP_DEFAULT_LOCALE="ja_JP"
export APP_DEFAULT_TIMEZONE="Asia/Tokyo"
export SECURITY_SALT="ランダムの半角英数字を入れる"
export DB_HOST="localhost"
export DB_USERNAME="root"
export DB_PASSWORD=""
export DB_DATABASE="test"

export APP_NAME="375MEMO"
export DEBUG="true"
export APP_ENCODING="UTF-8"
export APP_DEFAULT_LOCALE="ja_JP"
export APP_DEFAULT_TIMEZONE="+09:00"
export SECURITY_SALT="ランダムの半角英数字を入れる"

無効ねえ…。
あちら立てればこちら立たず…w

ってことで、config\.envでは、Asia/Tokyoを設定。config\app.phpでは+09:00を直打ちで指定。
bootstrap.phpを書き換えるのはちょっと嫌だな…と。

export DB_HOST="localhost"
export DB_USERNAME="root"
export DB_PASSWORD=""
export DB_DATABASE="test"

export APP_NAME="App"
export DEBUG="true"
export APP_ENCODING="UTF-8"
export APP_DEFAULT_LOCALE="ja_JP"
export APP_DEFAULT_TIMEZONE="Asia/Tokyo"
export SECURITY_SALT="ランダムの半角英数字を入れる"
            'host' => 'localhost',
            /*
             * CakePHP will use the default DB port based on the driver selected
             * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
             * the following line and set the port accordingly
             */
            //'port' => 'non_standard_port_number',
            'username' => 'USERNAME',
            'password' => 'PASSWORD',
            'database' => 'DATABASE',
            /*
             * You do not need to set this flag to use full utf-8 encoding (internal default since CakePHP 3.6).
             */
            //'encoding' => 'utf8mb4',
            'timezone' => env('APP_DEFAULT_TIMEZONE'),
            'host' => env('DB_HOST', ''),
            /*
             * CakePHP will use the default DB port based on the driver selected
             * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
             * the following line and set the port accordingly
             */
            //'port' => 'non_standard_port_number',
            'username' => env('DB_USERNAME', ''),
            'password' => env('DB_PASSWORD', ''),
            'database' => env('DB_DATABASE', ''),
            /*
             * You do not need to set this flag to use full utf-8 encoding (internal default since CakePHP 3.6).
             */
            //'encoding' => 'utf8mb4',
            'timezone' => '+09:00',

おし、チェック。
まずサーバ。

いいね!
次ローカル。

画像上にURLがないから違いが分からないwww
でも私が違うこと分かってるwOKw
それぞれ違うDB見てる。

まとめ

まじでプログラム書くまでが長すぎて心折れるんだよな…。
最初に準備してくれる先輩に感謝。