尽管时区有效,但设置默认时区不起作用

时间:2012-01-06 18:26:49

标签: php timezone centos centos6

当我做phpinfo()

时,我正在考虑
  

警告:phpinfo():依赖系统的时区设置是不安全的。您必需使用date.timezone设置或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符。我们在第8行的/myadmin/i.php中选择“欧洲/赫尔辛基”作为“EET / 2.0 /无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'Europe / Kiev'在第4行的/myadmin/i.php中无效

我确定我使用了来自here的有效时区字符串,我确实设置了:

  

date.timezone =欧洲/基辅

在php.ini文件中。

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

我真的无法理解什么是问题。 谢谢。

2 个答案:

答案 0 :(得分:6)

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

#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

答案 1 :(得分:0)

要扩展futureboxlab的解决方案,如果您没有安装make,则可能会遇到有关'make'命令的其他错误。 在这种情况下,您只需要运行

#yum install make
然后,再次(第三次是魅力)

#pecl install timezonedb