如何解决无法在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
当使用mod-php(apache2)而不是nginx中的php fcgi时,date.timezone是正确的。
解决方法
您可能编辑了错误的
php.ini
。请参阅使用的php_info()
(或cli解释器为php -i
)。例如,在ubuntu(可能还有其他Linux发行版)上,它的cli解释器为/etc/php5/cli/php.ini
,Apachemod_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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。