Laravel/Tips


環境ごとにDB接続を変更する

database.phpにmysql2等の設定を追加する
'mysql2' => [
    'driver'    => 'mysql',
    'host'      => env('DB_HOST', 'localhost'),
    'database'  => env('DB_DATABASE', 'db_name'),
    'username'  => env('DB_USERNAME', 'user_name'),
    'password'  => env('DB_PASSWORD', 'password'),
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
    'strict'    => false,
],
defaultの所をこんな感じにする
'default' => env('DB_CONNECTION', (getenv('APP_ENV') == 'local' ? 'mysql' : 'mysql2')),
そうすると.envのAPP_ENVで指定した環境変数によって接続を変更することができる。

The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths

本番環境にデプロイしてアクセスしてみたらエラーが表示され、ログファイルには件の行が記述されていた。


このページにある通り .env というファイルに APP_KEY という環境変数の設定が必要なようだが、開発環境では特に問題無く動いている。
で、よく見たら本番環境には .env が存在していなかったのだが、それはどうやら .gitignore に .env が書かれていたため、そのままリポジトリをpullしただけでは .env が作られなかったせいだった。

余計なお世話とも思ったが、確かに環境変数は本番環境と開発環境で異なる物にした方が良さそうなので、本番環境用に新たに .env を作成して解決。

  • 最終更新:2017-05-31 16:57:45

このWIKIを編集するにはパスワード入力が必要です

認証パスワード