Windows 環境の PHP 5.3.5 で PEAR を利用できるようにする

SERVER


PHP 5.3.5 on Windows における PEAR インストール時のエラーについて

PEAR (PHP Extension and Application Repository) という PHP ライブラリ提供サービスを利用することで、PHP の各種ライブラリーを手軽にインストールすることができるようになっています。

以前に PHP 5.3.0 を利用していた時は EZ-NET: Windows 環境で PEAR を利用できるようにする で記したようにして PEAR を利用する環境を作ることができたのですけど、PHP 5.3.5 にインストールし直してからは、PEAR をインストールしようとしてみると、次のようなエラーが発生してしまうようになりました。

Below is a suggested file layout for your new PEAR installation.

To change individual locations, type the number in front of the directory.

Type 'all' to change all of them or simply press Enter to accept these locations.

 

 1. Installation prefix ($prefix) : C:\Program Files (x86)\PHP

 2. Temporary files directory     : $prefix\temp

 3. Binaries directory            : $prefix

 4. PHP code directory ($php_dir) : $prefix\pear

 5. Documentation base directory  : $php_dir\docs

 6. Data base directory           : $php_dir\data

 7. Tests base directory          : $php_dir\tests

 8. php.exe path                  :

 

1-8, 'all' or Enter to continue:

 

**ERROR**: no php.exe found in this folder.

これは単純に "php.ini" の設定ファイル内で "open_basedir" を設定していたために発生したものだったようで、これだけなら以前の PHP 5.3.0 に PEAR をインストールした際にも起こり得るものでした。

 

でも、これを修正して再度 PEAR のインストールを行ってみようとしたのですけど、Windows の PHP 5.3.5 環境では、今まで通りの方法では、次のようなエラーが発生してしまいました。

Error while opening {C:/Program Files (x86)/PHP/temp/docs/html/Structures_Graph/

Structures_Graph_Manipulator_TopologicalSorter.html

 

 

 

 

} in write binary

mode 

Warning: unlink(C:\PHP\temp\Structures_Graph-1.0.4.tgz): Permission denied in C:\Program Files (x86)\PHP\PEAR\go-pear.php on line 1231

この原因を調べてみると、どうやらこれまで PEAR のインストールに使用していた "PEAR\go-pear.php" が PHP 5.3.5 には対応していないことが原因だったようでした。

 

PHP 5.3.5 on Windows に PEAR をインストールする

PHP 5.3.5 に対応している PEAR インストールプログラムは、平成 23 年 2 月 12 日現在、http://pear.php.net/go-pear.phar から取得できるようになっていました。このページを表示して、そこに表示されたテキストを "go-pear.phar" という名前で PHP をインストールしたのと同じフォルダー (C:\Program Files (x86)\PHP) に用意します。

そして、同じく PHP をインストールしたフォルダー内に、以下の内容で "go-pear.bat" を作成します。

@ECHO OFF

set PHP_BIN=php.exe

%PHP_BIN% go-pear.phar

pause

そして、この "go-pear.bat" をダブルクリックすることで、PEAR のインストールを開始します。

 

インストールの雰囲気は、これまでの "go-pear.php" とはまた雰囲気がしました。次のような問いが表示されるので、それに適宜答えて行きます。

Are you installing a system-wide PEAR or a local copy?

(system|local) [system] :

ここでは [Enter] を押して、そのまま次へ進みました。

Below is a suggested file layout for your new PEAR installation.

To change individual locations, type the number in front of the directory.

Type 'all' to change all of them or simply press Enter to accept these locations.

 

 1. Installation base ($prefix)                   : C:\Program Files (x86)\PHP

 2. Temporary directory for processing            : C:\Program Files (x86)\PHP\tmp

 3. Temporary directory for downloads             : C:\Program Files (x86)\PHP\tmp

 4. Binaries directory                            : C:\Program Files (x86)\PHP

 5. PHP code directory ($php_dir)                 : C:\Program Files (x86)\PHP\pear

 6. Documentation directory                       : C:\Program Files (x86)\PHP\docs

 7. Data directory                                : C:\Program Files (x86)\PHP\data

 8. User-modifiable configuration files directory : C:\Program Files (x86)\PHP\cfg

 9. Public Web Files directory                    : C:\Program Files (x86)\PHP\www

10. Tests directory                               : C:\Program Files (x86)\PHP\tests

11. Name of configuration file                    : C:\Windows\pear.ini

12. Path to CLI php.exe                           : .

 

1-12, 'all' or Enter to continue:

次のこの場面では、いっけん正しく検出されていそうなのですが、ひとつ "12. Path to CLI php.exe" の部分を修正しておきます。

"1-12, 'all' or Enter to continue:" に対して "12" を入力します。すると、フォルダーを選択するダイアログが表示されるので、PHP がインストールされているフォルダー (C:\Program Files (x86)\PHP) を選択すると、12 番の項目が絶対パスで表示されるようになりました。

こうしておかないと、後で PEAR を利用する際に "pear" コマンドをわざわざ PHP のディレクトリーまで移動してからでないと利用できなくなってしまい不便なので、ここでこのように設定しておきます。

 

後は流れに沿って進めて行きます。

Would you like to alter php.ini ? [Y/n] :

ここは [Enter] を押して、"php.ini" の設定を更新してもらいます。

Current include path           : .;C:\php\pear

Configured directory           : C:\Program Files (x86)\PHP\pear

Currently used php.ini (guess) : C:\Program Files (x86)\PHP\php.ini

Press Enter to continue:

すると "php.ini" の設定変更についてのレポートが表示されました。

"Current include path" のところが間違っているのではないかと思いましたけど、とりあえず "php.ini" ファイル内では "include_path" として "C:\Program Files (x86)\PHP" が登録されているようなので、たぶん問題はないのでしょう。

ともあれ [Enter] を押して、次のレポートが表示されました。

** WARNING! Old version found at C:\Program Files (x86)\PHP, please remove it or be sure to use the new c:\program files (x86)\php\pear.bat command 

The 'pear' command is now at your service at c:\program files (x86)\php\pear.bat

 

* WINDOWS ENVIRONMENT VARIABLES *

For convenience, a REG file is available under C:\Program Files (x86)\PHPPEAR_ENV.reg .

This file creates ENV variables for the current user.

 

Double-click this file to add it to the current user registry.

古い "pear.bat" コマンドが "C:\Program Files (x86)\PHP" で見つかったというようなメッセージが表示されましたけど、新しいパスと同じようだったので、これは無視して大丈夫なのではないかと判断してみました。

 

ともあれこれで "go-pear.phar" での作業は終了です。

最後に、PHP のインストール先に作成された "PEAR_ENV.reg" をダブルクリックして実行して、コマンドプロンプトから "pear" をすぐに実行できるようにしておきます。これを実行後に Windows を再起動することで、コマンドプロンプト内で、どのディレクトリーからでも "pear" コマンドを実行できる準備が整いました。

なお、PEAR の利用方法については、Linux で PEAR 環境を用意してみた時に記した Linux の使い方: PHP ライブラリ提供サービス "PEAR" を利用できるようにする (CentOS 5.5) の方に記していますので、そちらを参考にしてみてください。