问题:

安装PEAR时报错 go-pear.phar does not have a signature 


原因:

当php.ini中 phar.require_hash 配置项设置为on时,出于安全考虑,此时会强制你打开的Phar 文档必须带有某种签名。(说到签名,此处多说几句。可以用Phar::getSupportedSignatures来查看支持的签名种类,可以用Phar::setSignatureAlgorithm来对一个phar文档签名。)此报错信息显示go-pear.phar没有签名,解决方法是你可以对它进行签名,当然这已经是不可能的了。


解决方法:

1.修改php.ini中phar.require_hash的配置值为Off,并重启服务器

2.使用命令行

php -d phar.require_hash=0 PEAR/go-pear.phar


3.修改go-pear.bat批处理文件

@ECHO OFF
set PHP_BIN=php.exe
%PHP_BIN% -d output_buffering=0 -d phar.require_hash=0  PEAR\go-pear.phar
pause

加参数设置 -d phar.require_hash=0 

此方法也是通过命令行改变phar.require_hash的值。因为出于安全考虑phar.require_hash的值是不允许在php文件中在运行时设置为0的。但是可以在运行时设置为1。

4.从 http://pear.php.net/go-pear 下载未打包的安装引导程序,在本地运行。