Herokuのphp.iniについて
Herokuの.user.iniに関するトラブルがあったのでメモしときます。 (以前もはまったようなハマってないような・・・。)
HerokuでPHPの設定を変更するときは .user.ini
を利用して設定を変更します。
.user.iniはあるのに設定が反映されない
今回起きたトラブルは.user.iniがあるのに設定が反映されてないというトラブルに遭遇しました。
date.timezone = “Asia/Tokyo”
を指定したのに、反映されてなかったです…。
まずはphp.iniを見てみる
heroku run
でdynoに入ってphp.iniの状態をみました。
|
|
普通に認識はされているのでtimezoneを確認してみます。
|
|
なぜか切り替わらない。
マニュアルを読んで見る
アプリケーションに設定した ドキュメントルート までのいずれかの親ディレクトリにある .user.ini ファイルからも設定を読み取ります。 プロジェクトのディレクトリに
.user.ini
いれてるので大丈夫かと思っていました。 ただ、ドキュメントルートって本当にそうだったけ?という疑問もあるし、リンクもあったので一応確認してみようと思い定義を確認してみました。
PHP 向けの Web サーバーおよびランタイム設定のカスタマイズ | Heroku Dev Center
ドキュメントルートは、アプリケーションが .php ファイルの探索を開始するディレクトリです。 探索を開始?つまりProcファイルで以下のように指定した場合は
public
配下になるということ・・・?
|
|
ということで public/.user.ini
に移動したらうまく動きました。
まとめ
Herokuの.user.iniの設置箇所は最初にphpを探索する場所なので、apache or nginxのドキュメントルートになります。