2013-03-07 12 views
5

Ich habe meine Phar in die cache_list Direktive in php.ini hinzugefügt und Caching hat super funktioniert. Ein paar Tage später aktualisiert ich die phar jetzt bekomme ich folgende Fehlermeldung:Wie wird ein Phar mit der phar.cache_list-Direktive zwischengespeichert?

Warning: Phar::webPhar(phar:///usr/share/app/app.phar/www.php): failed to open 
stream: phar error: internal corruption of phar "/usr/share/app/app.phar" 
(crc32 mismatch on file "www.php") in /usr/share/app/app.phar on line 8 

Wenn ich die cache_list Richtlinie auf Kommentar, die phar Arbeiten und Lasten in Ordnung, aber jetzt kann ich nicht mehr zwischenzuspeichern. Das lässt mich glauben, dass PHP sich die crc32 der alten Datei anschaut.

Ich habe versucht, Apache neu starten Ich weiß nicht, wie sonst den Cache "auffrischen" oder wenn das sogar das Problem ist.

+0

Haben Sie versucht mit einem neuen Dateinamen? – inf3rno

Antwort

0

Ich würde vorschlagen, Ihre alte app.phar Datei zu löschen oder umzubenennen. Das System sollte bei Ihrer nächsten Ladung ein neues generieren. Wenn derselbe Fehler auftritt, haben Sie eines von zwei Problemen:

  • Einer der Pfade zu den phars, die Sie zwischengespeichert haben, ist falsch, die gesamte Liste fehlschlagen verursacht.
  • Einer der Phars, die Sie zwischenspeichern, enthält keine Metadaten, die zum Fehlschlagen führen.
  • Ein guter Test für die zweite ist ein Stück Junk-Metadaten (das heißt, wenn Sie nicht bereits Metadaten verwenden). phar::setMetadata()

    Wie üblich, überprüfen Sie alle Ihre Pfade.

    Ohne eine gute Sicht auf den Code Ihres Laufens oder was geändert wurde, kann ich nichts weiter vorschlagen.

    Verwandte Themen