无法在PHP中设置默认时区

问题描述

| 我已经在我的PHP.ini文件中设置了它,然后重新启动了PHP5-fpm进程 @H_502[email protected] = \"UTC\" 但是PHPinfo()脚本仍然显示以下内容@H_502[email protected] America/New_York America/New_York @H_502_1@PHPinfo()显示正在使用正确的ini文件。 我已经重新启动-但问题仍然存在。然后我做了: @H_502_1@sudo service Nginx stop sudo service apache2 start 当使用mod-PHP(apache2)而不是Nginx中的PHP fcgi时,date.timezone是正确的。     

解决方法

        您可能编辑了错误的
php.ini
。请参阅使用的
php_info()
(或cli解释器为
php -i
)。例如,在ubuntu(可能还有其他Linux发行版)上,它的cli解释器为
/etc/php5/cli/php.ini
,Apache
mod_php
php5-cgi
(which12ѭ使用)的
/etc/php5/cgi/php.ini
/etc/php5/apache/php.ini/
。     ,        支持的时区值列表:http://php.net/timezones     ,        问题似乎出在php-fpm进程上,这些进程徘徊不前,并指向旧的php.ini文件设置。 这对我有用: 获取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
使用初始化脚本启动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