5

phar をcache_listディレクティブに追加するphp.iniと、キャッシュがうまく機能しました。数日後、phar を更新すると、次のエラーが表示されます。

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

ディレクティブをコメント アウトするcache_listと、phar は機能し、問題なくロードされますが、キャッシュできなくなりました。crc32これは、PHPが古いファイルを見ていると思わせます。

他にキャッシュを「リフレッシュ」する方法がわからない、またはこれが問題であるかどうかはわかりません。

4

1 に答える 1

0

古い app.phar ファイルを削除するか、名前を変更することをお勧めします。システムは、次のロード時に新しいものを再生成する必要があります。同じエラーが発生する場合は、次の 2 つの問題のいずれかが発生しています。

  • キャッシュした phar へのパスの 1 つが間違っているため、リスト全体が失敗します。
  • キャッシュしている phar の 1 つにメタデータがないため、失敗します。

2 つ目の良いテストは、ジャンク メタデータの一部を追加することです (つまり、まだメタデータを使用していない場合)。phar::setMetadata()

いつものように、すべてのパスを確認します。

実行中のコードや変更内容をよく把握していなければ、これ以上の提案はできません。

于 2014-05-19T12:50:38.500 に答える