Linux

PHP 啟動:時區數據庫已損壞

  • February 13, 2015

我有一個 CentOS 5.2 伺服器。PHP 現在是 5.2.10 版本(php-5.2.10-1.el5.remi.i386),我已經更新到 5.3,tzdata 也更新了(tzdata-2009i-2.el5.noarch)。自更新以來,Apache 因 PHP 崩潰而拒絕啟動。

這是httpd/error.log

[Wed Jul 08 11:40:21 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) 
[Wed Jul 08 11:40:24 2009] [notice] Digest: generating secret for digest authentication ... 
[Wed Jul 08 11:40:24 2009] [notice] Digest: done PHP Strict Standards: PHP Startup: It is not safe to rely on the system's timezone settings.
Please use the date.timezone setting, the TZ environment variable 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/Berlin' for 'CEST/2.0/DST' instead in Unknown on line 0
**PHP Fatal error: PHP Startup: Timezone database is corrupt - this should never happen! in Unknown on line 0**

最好的問候,塞德里克

這似乎是在 php.net 上打開的一個錯誤:http ://bugs.php.net/bug.php?id=48882

這裡建議

在(apache) init.d 腳本中添加 TZ=GMT

它應該可以解決問題。

這是一個老問題,但無論如何這裡是答案:在問題中,提問者正在使用 suExec 機制。那些使用 mod_chroot 或 ChrootDir 內置的 apache2 的人會遇到類似的問題。

確保存在 {chroot}/etc/localtime 和 {chroot}/usr/share/zoneinfo - 就是這樣。

歸功於: http ://www.phwinfo.com/forum/alt-comp-lang-php/315265-timezone-database-corrupt.html#post1410153

引用自:https://serverfault.com/questions/59960