Le blog de Dju - Mot-clé - tzdataUn peu de moto, un zeste de geek, et un brin d'autres trucs ;-)2024-03-22T17:50:26+01:00Djuurn:md5:5e61426dd704534f4aef077f5b82260bDotclearErreur php de la mort qui tueurn:md5:843724b882d58c22b738c3ebb35f519e2010-03-12T23:20:00+01:002010-03-17T19:22:44+01:00DjuSiteerreurphptzdata<p><img src="https://blog.crifo.org/public/201003/.php_t.jpg" alt="php.jpg" style="float:left; margin: 0 1em 1em 0;" title="php.jpg, mar. 2010" />
Après un petit "<strong>aptitude safe-upgrade</strong>" sur le serveur,quelques paquets ont été mis à jour. Ce qui a apparemment corrompu la base de temps de mon serveur.<br />
Cela a entre autre occasionné une coupure (temporaire et peu longue, heureusement) de mes sites en php.....</p> <p>Après avoir fait cette mise à jour, je voulais aller sur le blog pour poster un truc et... arg ! page blanche !<br />
Puis je vois mon log d'erreurs php qui s'allonge au fur et à mesure... sueurs froides inside !
C'est toujours la meme erreur qui revient :</p>
<pre>
PHP Fatal error: date(): Timezone database is corrupt
this should *never* happen!
</pre>
<p>Certes ça ne devrait pas arriver, mais ça n'explique pas pourquoi.... donc ça m'arrange pas ! :hum:</p>
<p>Après recherche, c'est apparemment la mise à jour du paquet <strong>tzdata</strong> qui peut avoir cet effet.<br />
En effet, le fichier <strong>/etc/localtime</strong> était tout bizzare.<br />
Voici la commande qui va arranger tout ça :</p>
<blockquote><p>rm /etc/localtime<br />
ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime</p></blockquote>
<p>Ouufff ! ça remarche :coolfuck:</p>
<p>Donc à retenir si jamais vous avez un bins dans ce genre....</p>
<p><ins><strong>Edit du 17/03</strong></ins><br />
Je viens d'avoir le meme problème sur une autre machine, sous debian. la manip ci dessus n'a pas corrigé le problème <img src="/themes/BlueSky/smilies/sad.gif" alt=":(" class="smiley" /> <br />
Après recherche à nouveau, voila une autre solution qui m'a aidé :</p>
<blockquote><p>rm /etc/localtime<br />
dpkg-reconfigure tzdata</p></blockquote>
<p>Ici, on supprime à nouveau le fichier localtime et on reconfigure le paquet tzdata (qui indique à la machine la zone géographique dans laquelle on est, et le systeme ajuste la date et heure en fonction).
Cette reconfiguration regénère un nouveau fichier localtime, et la c'est bon.</p>
<p>Pour le vérifier, on peut utiliser la bonne vieille commande <strong>file</strong> <br /></p>
<blockquote><p>file /etc/localtime</p></blockquote>
<p>Si ça vous répond "Ascii File" c'est pas bon :D <br />
Normalement vous devriez avoir quelquechose comme ça :</p>
<pre>
/etc/localtime: timezone data, version 2, 12 gmt time flags, 12 std time flags, no leap seconds, 183 transition times, 12 abbreviation chars
</pre>https://blog.crifo.org/post/2010/03/12/Erreur-php-de-la-mort-qui-tue#comment-formhttps://blog.crifo.org/feed/atom/comments/37