6

我刚做 phpinfo()

警告:phpinfo():依赖系统的时区设置是不安全的。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们在第 8 行的 /myadmin/i.php 中为“EET/2.0/no DST”选择了“Europe/Helsinki”

这是 i.php :

<?php
//echo date_default_timezone_get();

date_default_timezone_set("Europe/Kiev");

//echo date("l");

phpinfo();
?>

如您所见,当我执行 date_default_timezone_set("Europe/Kiev") 时,我得到:

注意: date_default_timezone_set(): Timezone ID 'Europe/Kiev' is invalid in /myadmin/i.php on line 4

我确定我在这里使用了有效的时区字符串,并且我确实设置了:

date.timezone = 欧洲/基辅

在 php.ini 文件中。

环境:CentOS 6 , nginx/1.1.11 , PHP 5.3.8 (fpm-fcgi)

我真的不明白这是怎么回事。谢谢你。

4

2 回答 2

7

感谢评论,我能够解决我的问题。我在控制台中做了什么:

#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

我将“extension=timezonedb.so”添加到/etc/php.ini,然后重新启动php-fpm:

#/etc/init.d/php-fpm restart
于 2012-01-09T17:39:08.637 回答
0

To extend futureboxlab's solution, you may encounter another error regarding the 'make' command if you don't have make installed. In that case you'll just need to run

#yum install make

then, once again (third time's the charm)

#pecl install timezonedb
于 2013-09-22T07:16:10.657 回答