修改PHAR文件

时间:2013-09-16 09:22:39

标签: php phar

我需要修改PHAR文件。每当我对文件进行更改然后执行它时,我都会收到以下错误消息:

Fatal error: Uncaught exception 'PharException' with message SHA1 signature could not be verified: broken signature'

通过做一些研究,我发现我可以

  • 提取phar,修改它然后“将其放回到phar文件中”。我该怎么做?

  • 或在我的php.ini中设置phar.require_hash = false以禁用签名检查。遗憾的是,这并没有解决问题

我只需要对文件做一些简单的修改,我就是唯一一个会使用它的人,所以我更喜欢快速简单的解决问题的方法

2 个答案:

答案 0 :(得分:4)

问题是在Symfony网站上,install命令如下所示:

c:\> php -r "readfile('http://symfony.com/installer');" > symfony

正确的命令是

c:\> php -r "readfile('http://symfony.com/installer');" > symfony.phar

将文件symfony.phar移动到您想要创建项目的位置,或者将文件symfony重命名为symfony.phar。如果文件名为symfony,则会收到此错误“sha1签名无法验证损坏的签名”,因为更改文件名也会使sha1失效(这就是散列的工作方式)。

答案 1 :(得分:0)

您不能简单地在编辑器中更改phar内容,就像您在.zip.tbz2文件中无法做到这一点。

唯一可行的解​​决方案是提取phar,修改提取的文件,然后重新打包phar文件。