Quantcast
Channel: Active questions tagged ubuntu - Stack Overflow
Viewing all articles
Browse latest Browse all 7169

PHP Timezone database is corrupt error

$
0
0

I have a wordpress website which suddenly stopped working today. When I look at the logs I see and error:

[error] [client 50.78.108.177] PHP Fatal error: strtotime(): Timezone database is corrupt - this should never happen!

After reading up on google one person said that they discovered a permissions problem in /usr/share/zoneinfo. I tried changing the permissions to 777, 775, 770 and I still keep on getting the same error. I am running php PHP 5.3.2 on Ubuntu 10.04.3 LTS. Any suggestions or recommendations would be helpful.If all else fails I'm going to try downgrading to an earlier version of php but I wanted to try other things before doing that.

thanks,Timnit

Update
just in case it helps: the error points to strtotime in the function below

function mysql2date( $dateformatstring, $mysqlstring, $translate = true ) {    $m = $mysqlstring;    if ( empty( $m ) )            return false;    if ( 'G' == $dateformatstring )            return strtotime( $m . '+0000' );    $i = strtotime( $m );    if ( 'U' == $dateformatstring )            return $i;    if ( $translate )            return date_i18n( $dateformatstring, $i );    else            return date( $dateformatstring, $i );}

Update#2:
for now I have fixed the problem by simply having the function above return false; without performing anything. However I still haven't figured out the root cause of the problem.

update#3:

var_dump($dateformatstring)

string(5) "d.m.y" string(1) "m" string(5) "d.m.y" string(1) "m" string(5) "d.m.y" string(1) "m"

var_dump($mysqlstring)

string(19) "2011-10-20 05:35:01" string(19) "2011-10-20 05:35:01" string(19) "2011-10-20 05:25:22" string(19) "2011-10-20 05:25:22" string(19) "2011-10-19 05:10:06" string(19) "2011-10-19 05:10:06"

update#4:
there is another code snippet that is generating the error log below:

PHP Fatal error: date(): Timezone database is corrupt - this shouldnever happen! in /srv/www/motionthink.com/public_html/wp-admin/includes/class-wp-filesystem-direct.php on line 346, referer: wp_root_directory/wp-admin/plugins.php?plugin_status=upgrade

309         function dirlist($path, $include_hidden = true, $recursive = false) {  310                 if ( $this->is_file($path) ) {  311                         $limit_file = basename($path);  312                         $path = dirname($path);  313                 } else {  314                         $limit_file = false;  315                 }  316   317                 if ( ! $this->is_dir($path) )  318                         return false;  319   320                 $dir = @dir($path);  321                 if ( ! $dir )  322                         return false;  323   324                 $ret = array();  325   326                 while (false !== ($entry = $dir->read()) ) {  327                         $struc = array();  328                         $struc['name'] = $entry;  329   330                         if ( '.' == $struc['name'] || '..' == $struc['name'] )  331                                 continue;  332   333                         if ( ! $include_hidden && '.' == $struc['name'][0] )  334                                 continue;  335   336                         if ( $limit_file && $struc['name'] != $limit_file)  337                                 continue;  338   339                         $struc['perms']         = $this->gethchmod($path.'/'.$entry);  340                         $struc['permsn']  = $this->getnumchmodfromh($struc['perms']);  341                         $struc['number']        = false;  342                         $struc['owner']         = $this->owner($path.'/'.$entry);  343                         $struc['group']         = $this->group($path.'/'.$entry);  344                         $struc['size']          = $this->size($path.'/'.$entry);  345                         $struc['lastmodunix']= $this->mtime($path.'/'.$entry);  346                         $struc['lastmod']   = date('M j',$struc['lastmodunix']);  347                         $struc['time']          = date('h:i:s',$struc['lastmodunix']);  348                  $struc['type']          = $this->is_dir($path.'/'.$entry) ?   'd:'f';  349 

Update#5:
doing a php -i | fgrep -i date returns

Build Date => Dec 13 2011 18:43:02

datedate/time support => enableddate.default_latitude => 31.7667 => 31.7667date.default_longitude => 35.2333 => 35.2333date.sunrise_zenith => 90.583333 => 90.583333date.sunset_zenith => 90.583333 => 90.583333date.timezone => no value => no value

then I edited the php.ini file to set the timezone to "America/Los Angeles" and got this output

date/time support => enableddate.default_latitude => 31.7667 => 31.7667date.default_longitude => 35.2333 => 35.2333date.sunrise_zenith => 90.583333 => 90.583333date.sunset_zenith => 90.583333 => 90.583333date.timezone => America/Los_Angeles => America/Los_Angeles

I then restarted apache2. I still get the error


Viewing all articles
Browse latest Browse all 7169

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>