hogehoge foobar Blog Style Beta

Web,Mac,Linux,JavaScript,Perl,PHP,RegExp,Git,Vim,Redmineなど技術的なことのメモや、ちょっと便利そうなものの紹介をしています。

PEARをプロキシ経由でインストールする方法

PHPPEAR を使ってライブラリをインストールするときに、プロキシが邪魔をしてインストール出来ないことがあったので、備忘録として書いておきます。

プロキシ経由での PEAR インストール失敗する場合

PEAR の プロキシ設定が正しくない状態でインストールを行うと、以下のようなエラーメッセージが表示され、インストールが失敗ます。

pear install のエラー

以下の例では「Cache_Lite」をインストールしようとしています。
「No releases available for package "〇〇〇"」や「Package "〇〇〇" is not valid」といったメッセージが表示されます。

# pear install Cache_Lite
No releases available for package "pear.php.net/Cache_Lite"
Cannot initialize 'Cache_Lite', invalid or missing package file
Package "Cache_Lite" is not valid
pear channel-update のエラー

「pear channel-update」も同様にエラーが発生し、処理が失敗します。

# pear channel-update pear.php.net
Retrieving channel.xml from remote server
Cannot retrieve channel.xml for channel "pear.php.net"

PEAR の プロキシ設定の確認方法

PEAR の プロキシ設定の状態を確認するには「pear config-show」を使用します。
「pear config-show」を実行すると、PEAR に設定されているパラメタがリスト表示されます。

プロキシの設定については、「http_proxy」というパラメタ名になります。
以下の例では、「http_proxy 」となっており、プロキシの情報として何も設定されていない状態になります。

# pear config-show 
Configuration (channel pear.php.net):
=====================================
Auto-discover new Channels     auto_discover    
Default Channel                default_channel  pear.php.net
HTTP Proxy Server Address      http_proxy            -> プロキシが設定されていない
(〜 以下省略 〜)

PEAR の プロキシ設定方法

PEAR の プロキシ設定をする場合、「pear config-set」を使用します。
「pear config-set」を実行する際は、引数として「パラメタ名」と「設定する値」を指定します。

# pear config-set パラメタ名 設定する値

今回はプロキシの設定なので、パラメタ名として「http_proxy」を指定します。
認証の必要ないプロキシの場合は以下のようなコマンドになります。

# pear config-set http_proxy http://your-proxy:portno

認証が必要なプロキシの場合は、プロキシの情報として「user_id:password@」を指定します。

# pear config-set http_proxy http://user_id:password@your-proxy:portno

プロキシの設定をした後で、「pear config-show」で設定値の状態を確認すると、以下のように表示されます。

# pear config-show 
Configuration (channel pear.php.net):
=====================================
Auto-discover new Channels     auto_discover    
Default Channel                default_channel  pear.php.net
HTTP Proxy Server Address      http_proxy       http://user_id:password@your-proxy:portno
(〜 以下省略 〜)

設定が完了したら、あとは通常どおり「pear install」や「pear channel-update」を実行することが出来るようになります。

pear install の成功例
# pear install Cache_Lite
downloading Cache_Lite-1.7.9.tgz ...
Starting to download Cache_Lite-1.7.9.tgz (30,318 bytes)
.........done: 30,318 bytes
install ok: channel://pear.php.net/Cache_Lite-1.7.9
pear channel-update の成功例
# pear channel-update pear.php.net
Retrieving channel.xml from remote server
Update of Channel "pear.php.net" succeeded

今回参考にしたページ

CentOSにyum経由でPEARをインストールする方法 - Layer8 Reference
http://jp.layer8.sh/reference/entry/show/id/2402

pearのHTTPプロキシ設定 ≪ ku
http://ido.nu/kuma/2009/12/15/pear-http-proxy-setting/