如何处理PHP 5.3.2时区错误?

在服务器上我有PHP 5.3.2。

如果我想运行简单的PHP脚本,像这样:

<?php echo date('Y'); ?> 

…它给了我以下错误:

警告:date():依靠系统的时区设置是不安全的。 您需要使用date.timezone设置或date_default_timezone_set()函数。 如果您使用这些方法中的任何一种,并且仍然收到此警告,则很可能是拼写错误的时区标识符。 我们在第9行的/htdocs/index.php中select了'Europe / Berlin'代替'CEST / 2.0 / DST'。致命错误:date():时区数据库已经损坏 – 这绝不应该发生! 在第9行的/htdocs/index.php中

在php.ini中的时区定义为欧洲/伦敦

尽pipe我定义了或不是date_default_timezone_set('UTC'),或者是欧洲/伦敦,或者其他任何东西,我总是得到那个错误。

我试图编辑/etc/init.d/httpd文件,但我没有权限(由于selinux?)

请帮忙…

这不是一个PHP错误 – 它告诉你什么是错的,你需要纠正它。

我注意到Timezone数据库已经损坏 – 这绝不应该发生! – 在你的shell中尝试下面的命令并重新启动Apache: apt-get install tzdata

如果在这之后它仍然被破坏(或者你已经有了这个包),那么创build一个新的PHP文件,其内容如下,并在浏览器中加载: <?php phpinfo(); ?> <?php phpinfo(); ?>

查找加载的configuration文件,并检查您正在编辑的php.ini文件。

打开php.ini文件,查找date.timezone的行。 请确保您select的时区用引号引起来 – 我使用的时区如下: date.timezone = "Europe/London"

一旦你修改并保存了php.ini,你必须重新加载Apache以使更改生效。