web-dev-qa-db-ja.com

PHP)でデフォルトのタイムゾーンを設定できません

これを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は正しいです。

12
Stann

おそらく間違った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-cginginxで使用される)。

7
KingCrunch

サポートされているタイムゾーン値のリスト: http://php.net/timezones

2
Dave Kiss

問題は、古い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
2
thiru

アクティブな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 を参照してください

0
Octeny