Fatal error: Class ‘PEAR’ not found in /PATH/TO/go-pear.php on line 697

問題

さくらのレンタルサーバ スタンダードに「PEAR パッケージマネージャの取得とインストール(ホスティング環境でのPEAR)」の方法でPEARをインストールしようとしたところ、

のエラーで停止してしまった。

Fatal error: Class ‘PEAR’ not found in /path/to/go-pear.php on line 697

Fatal error: Class ‘PEAR’ not found in /path/to/go-pear.php on line 697

環境

さくらのレンタルサーバ スタンダード

解決方法

ダウンロードした http://pear.php.net/go-pear のスクリプトを以下の通り変更する。
(今回のソースだと115行目から120行目)

原因

上記、「変更前」の「$bootstrap_files」にあるURLは、全て「変更後」のURLに301リダイレクトされている。
go-pear のソース1055行目あたりにある download_url() で、fsockopen() を使用しているが、fsockopen() は301リダイレクトを追従してくれないため、各ファイルをダウンロードできず、PEARクラスが無いよエラーでコケる。
ので、301リダイレクト先のURLを指定してあげる。(「raw.github.com」を「raw.githubusercontent.com」に変更する。)

参考

Fatal error: Class ‘PEAR’ not found in /home/user1/public_html/go-pear.php on line 697 – Stack Overflow