PHP5.3 FastCGI 不使用全局配置的值

PHP5.3 FastCGI 不使用全局配置的值

系统是Centos6.3,Apache 2.2.15 + mod_fcgid + PHP 5.3.3

值有问题date.timezone。全局中是/etc/php.ini这样提及的:

date.timezone = "Europe/Moscow"

并且未在用户本地 php.ini 中提及。因此,我收到很多警告,例如:

Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Helsinki' for 'EEST/3.0/DST' instead in ...

date.timezone参数包含到用户的 php.ini 中可以解决问题,但我不认为这是最好的解决方案。

也许有人遇到过这个问题并可以提供建议?

谢谢!

PS/etc/php.d/timezone.ini使用时区信息创建什么也不做:(

答案1

您需要date.timezone为每个用户的ini文件添加记录。经过一些实验,似乎日期时区将默认为全局值,但仍会发出电子通知和/或严格或者电子警告

测试全局设置

bash~> php -r 'print ini_get("date.timezone").PHP_EOL;'
Europe/Moscow

bash~> php -r 'print date_default_timezone_get().PHP_EOL;'
Europe/Moscow

date.timezone测试未设置的user.ini

bash~> php -c /path/to/user.ini -r 'print ini_get("date.timezone").PHP_EOL;'
""

bash~> php -c /path/to/user.ini -r 'print date_default_timezone_get().PHP_EOL;'
Warning: ... We selected 'Europe/Moscow' for 'EEST/4.0/DST' instead in Command line code on line 1

Europe/Moscow

唯一的其他选择是要求每个应用程序以编程方式设置默认时区,但这不现实并且需要付出更多努力。

if(!ini_get('date.timezone')) {
    date_default_timezone_set('Europe/Moscow');
}

相关内容