PHP command line error : Timezone database is corrupt

Viewed 2946

My date.php is -

<?php
echo date('Y');

When I execute php -f date.php on my staging machine, I get error -

PHP Fatal error:  date(): Timezone database is corrupt - this should *never* happen! 
in /home/staging/test/date.php on line 2

But when I execute the same on my local / dev machine it works. Although on both staging and local machines, permissions on /etc/localtime and /usr/share/zoneinfo/ are the same.

But output of file /etc/localtime vary on both machines.

Local (php5.3.5) :

/etc/localtime: timezone data, version 2, 4 gmt time flags, 4 std time flags, no leap seconds, 4 transition times, 4 abbreviation chars

Staging (php5.3.10) :

/etc/localtime: timezone data, version 2, 1 gmt time flag, 1 std time flag, no leap seconds, no transition times, 1 abbreviation char

While trying to find what the issue is I found this link from SO. I am confused over the accepted answer. My apache user is not executing the script.

What seems to be the problem? How do I resolve this issue?

3 Answers

My problem was that I was running php-fpm in chroot mode. I changed it to run without a chroot, and then the error went away.

Related