Pear: “go-pear.phar” Does Not Have a Signature

As I was trying to install Pear for my WampServer 2.0i installation today, I encountered a problem. When I ran the typical “go-pear.bat” script – I was hit with this message:

phar "C:\wamp\bin\php\php5.3.0\PEAR\go-pear.phar" does not have a signaturePHP W arning:  require_once(phar://go-pear.phar/index.php): failed to open stream: pha r error: invalid url or non-existent phar "phar://go-pear.phar/index.php" in C:\ wamp\bin\php\php5.3.0\PEAR\go-pear.phar on line 1236

 The error message seen when running “go-pear.bat”.

Solution

Thankfully, after searching around – I found the solution from a blogger named Latyr, who blogs in French. Since I speak French, I thought I should offer his solution in English. I expanded it into a few steps, for those that aren’t familiar with WAMP and PHP.

1) Locate the “php.ini” file.  In my case, I found it at this path:

C:\wamp\bin\php\php5.3.0\php.ini

Don’t use the WAMP system tray icon to edit this file. It didn’t work when I tried – you have to manually locate it.

2) Find the following line, in bold:

; http://php.net/phar.require-hash
;phar.require_hash = On

; http://php.net/phar.require-hash

;phar.require_hash = On

3) Uncomment the “;phar.require_hash = On”line by removing the semi-colon.

4) Change “On” to “Off”.

; http://php.net/phar.require-hash

phar.require_hash = Off

5) Save the file.

After I performed those steps, “go-pear.bat”  began working normally again.

In case you’re wondering about  the phar.require_hash option we just disabled, here’s the php.net description:

This option will force all opened Phar archives to contain some kind of signature (currently MD5, SHA1, SHA256 and SHA512 are supported), and will refuse to process any Phar archive that does not contain a signature. tweet

See Also

The solution offered here was made possible by Latyr’s original blog post, entitled “Bug dans PHP5.3.0 Pear.bat”.