我只是在做phpinfo()
警告:phpinfo():依赖系统的时区设置是不安全的。需要使用date.timezone设置或date_default_timezone_set()函数。如果您使用了其中任何一种方法,但仍然收到此警告,则很可能是您拼错了时区标识符。我们在第8行的/myadmin/i.php中选择了"欧洲/赫尔辛基"作为"EET/2.0/no DST"
这是i.php:
<?php
//echo date_default_timezone_get();
date_default_timezone_set("Europe/Kiev");
//echo date("l");
phpinfo();
?>
正如你所看到的,当我做date_default_timezone_set("欧洲/基辅")时,我得到:
注意:date_default_timezone_set():时区ID"欧洲/基辅"在第4行上的/myadmin/i.php中无效
我确信我在这里使用了有效的时区字符串,我确实设置了:
date.timezone=欧洲/基辅
在php.ini文件中。
环境:CentOS 6,nginx/1.1.11,PHP 5.3.8(fpm-fcgi)
我真的不明白这是怎么回事。非常感谢。
感谢大家的评论,我解决了我的问题。我所做的,在控制台:
#yum install php-pear
#pecl install timezonedb
它需要c编译器:
configure: error: no acceptable C compiler found in $PATH
所以我做了:
#yum install gcc
此外,如果您得到关于make命令的错误,只需运行
#yum install make
最后,再试一次:
#pecl install timezonedb
它在最后显示:
You should add "extension=timezonedb.so" to php.ini
我在/etc/php.ini中添加了"extension=timezonedb.so",并重新启动了php-fpm:
#/etc/init.d/php-fpm restart
要扩展futureboxlab的解决方案,如果您没有安装make,您可能会遇到另一个关于"make"命令的错误。在这种情况下,您只需要运行
#yum install make
然后,再次(第三次是魅力)
#pecl install timezonedb