これをphp.iniファイルに設定し、php5-fpmプロセスを再起動しました
_date.timezone = "UTC"
_
しかし、phpinfo()スクリプトはまだこれを示しています:
_date.timezone America/New_York America/New_York
_
phpinfo()
は、正しいiniファイルが使用されていることも示しています。
再起動しましたが、問題は解決しませんでした。それから私はしました:
_Sudo service nginx stop
Sudo service Apache2 start
_
また、nginxのphpであるfcgiの代わりにmod-php(Apache2)が使用されている場合、date.timezoneは正しいです。
おそらく間違ったphp.ini
を編集しました。使用されているphp_info()
(またはcliインタープリターの場合はphp -i
)を参照してください。たとえば、ubuntu(およびおそらく他のLinuxディストリビューション)では、cliインタープリター用の/etc/php5/cli/php.ini
、Apacheで使用されるもの用の/etc/php5/Apache/php.ini/
mod_php
および/etc/php5/cgi/php.ini
で使用されるphp5-cgi
(nginx
で使用される)。
サポートされているタイムゾーン値のリスト: http://php.net/timezones
問題は、古いphp.iniファイル設定を参照するphp-fpmプロセスにあるようです。これは私のために働いた:
Php-fpmのプロセスIDを取得します
root@thiru:/etc/php5/fpm/conf.d# ps aux | head -1 && ps aux | grep php-fpm | grep -v grep
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 32650 0.0 0.5 86624 17032 ? Ss 21:44 0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data 32652 0.0 0.1 86624 4700 ? S 21:44 0:00 php-fpm: pool www
www-data 32653 0.0 0.1 86624 4704 ? S 21:44 0:00 php-fpm: pool www
プロセスを強制終了します。マスターから始めます。
kill -9 32650
kill -9 32652
kill -9 32653
Initスクリプトを使用してphp-fpmを起動します
service php5-fpm start or /etc/init.d/php5-fpm start
アクティブなchrootを持つプールがある場合は、FPMのインストールを確認してください。
Chroot環境がある場合は、ファイル/ etc/localtime(/ usr/share/zoneinfo/xyzへのシンボリックリンク)とディレクトリ/ usr/share/zoneinfoをchrootにコピーする必要があります。
考えられるエラーメッセージ:
Fatal error: phpinfo(): Timezone database is corrupt - this should *never* happen!
Warning: phpinfo(): Invalid date.timezone value ‘UTC’, we selected the timezone ‘UTC’ for now.
https://serverfault.com/questions/413293/php-fpm-chroot-jail-corrupts-timezone-db を参照してください