我需要修改PHAR文件。每当我对文件进行更改然后执行它时,我都会收到以下错误消息:
Fatal error: Uncaught exception 'PharException' with message SHA1 signature could not be verified: broken signature'
通过做一些研究,我发现我可以
提取phar,修改它然后“将其放回到phar文件中”。我该怎么做?
或在我的php.ini中设置phar.require_hash = false
以禁用签名检查。遗憾的是,这并没有解决问题
我只需要对文件做一些简单的修改,我就是唯一一个会使用它的人,所以我更喜欢快速简单的解决问题的方法
答案 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文件。