首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新使用phar.cache_list指令缓存的phar?

如何更新使用phar.cache_list指令缓存的phar?
EN

Stack Overflow用户
提问于 2013-03-07 21:56:06
回答 1查看 1K关注 0票数 5

我将我的phar添加到php.ini中的php.ini指令中,缓存非常有效。几天后,我更新了phar,现在我得到了以下错误:

代码语言:javascript
复制
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可以正常工作并加载,但现在我不能再缓存它了。这使我认为PHP正在查看旧文件的crc32

我尝试过重新启动apache,我不知道如何“刷新”缓存,或者这是否是问题所在。

EN

回答 1

Stack Overflow用户

发布于 2014-05-19 12:50:38

我建议删除或重命名旧的app.phar文件。系统应该在下一个负载上重新生成一个新的系统。如果出现相同的错误,您有两个问题之一:

  • 您缓存的phars路径之一是错误的,导致整个列表失败。
  • 您正在缓存的phars中有一个没有元数据,导致它失败。

第二个测试的好方法是添加一段垃圾元数据(也就是说,如果您还没有使用元数据)。phar::setMetadata()

和往常一样,检查你所有的路径。

如果没有对您运行的代码或更改的代码有一个很好的视图,我就不能提出进一步的建议了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15282534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档