【问题标题】:Modify PHAR file修改 PHAR 文件
【发布时间】:2013-09-20 09:29:59
【问题描述】:

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

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

通过研究,我发现我也可以

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

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

我只需要对文件进行一些简单的修改,而且我是唯一会使用它的人,所以我希望能快速简单地解决问题

【问题讨论】:

  • 你使用你的研究了吗?第二种解决方案似乎是最简单的;只需将phar.require_hash=0 添加到 php.ini。试试看!
  • 我将它添加到我的 php.ini 中,但我仍然得到同样的错误
  • 你重启服务器了吗?

标签: php phar


【解决方案1】:

问题在于 Symfony 网站上的安装命令如下所示:

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 无效(这就是散列的工作方式)。

【讨论】:

    【解决方案2】:

    您不能简单地在编辑器中更改 phar 内容,就像您不能在 .zip.tbz2 文件中那样做。

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

    【讨论】:

      猜你喜欢
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-11
      • 1970-01-01
      • 2015-03-06
      • 2021-03-04
      • 2015-03-31
      相关资源
      最近更新 更多