PEARをプロキシ経由でインストールする方法
PHP で PEAR を使ってライブラリをインストールするときに、プロキシが邪魔をしてインストール出来ないことがあったので、備忘録として書いておきます。
プロキシ経由での 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_discoverDefault 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_discoverDefault 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/