LoginSignup
3
4

More than 5 years have passed since last update.

pearのローカルコピーを任意のディレクトリにインストールする

Posted at

フレームワークを使ってアプリケーションを開発しているとき、PEARのローカルコピーを、vendorディレクトリなどサードパーティーライブラリを格納するディレクトリにインストールしたくなりません?

Symfony2.3の場合だと、composerでうまくインストールできるのかもしれませんが…
よくわからなかったので力技で。

以下、Symfony 2.3 / Cent OS上での手順をメモしました。


Symfony2のインストールディレクトリ

/home/webuser/symfony

pearのインストールディレクトリ

/home/webuser/symfony/vendor/pear/

pearのローカル設定ファイル

/home/webuser/symfony/app/.pearrc


# PEARの設定ファイルを作成
pear config-create /home/webuser/symfony/app/ /home/webuser/symfony/app/.pearrc

# vendor下にpearがインストールされるよう、設定を変更
pear -c /home/webuser/symfony/app/.pearrc config-set bin_dir      /home/webuser/symfony/vendor/pear
pear -c /home/webuser/symfony/app/.pearrc config-set doc_dir      /home/webuser/symfony/vendor/pear/docs
pear -c /home/webuser/symfony/app/.pearrc config-set ext_dir      /home/webuser/symfony/vendor/pear/ext
pear -c /home/webuser/symfony/app/.pearrc config-set php_dir      /home/webuser/symfony/vendor/pear/php
pear -c /home/webuser/symfony/app/.pearrc config-set cache_dir    /home/webuser/symfony/vendor/pear/cache
pear -c /home/webuser/symfony/app/.pearrc config-set cfg_dir      /home/webuser/symfony/vendor/pear/cfg
pear -c /home/webuser/symfony/app/.pearrc config-set data_dir     /home/webuser/symfony/vendor/pear/data
pear -c /home/webuser/symfony/app/.pearrc config-set download_dir /home/webuser/symfony/vendor/pear/download
pear -c /home/webuser/symfony/app/.pearrc config-set temp_dir     /home/webuser/symfony/vendor/pear/temp
pear -c /home/webuser/symfony/app/.pearrc config-set test_dir     /home/webuser/symfony/vendor/pear/tests
pear -c /home/webuser/symfony/app/.pearrc config-set www_dir      /home/webuser/symfony/vendor/pear/www

# 設定を確認
pear -c /home/webuser/symfony/app/.pearrc config-show

これで準備が完了です。
ライブラリをインストールするときは、今回作成したローカル設定ファイルとともにコマンドを実行します。


たとえば、 AWS SDK2 for PHPを使ってS3にファイルをアップロードする ためにaws/sdkをインストールします。

# 必要なチャネルを登録
pear -c /home/webuser/symfony/app/.pearrc channel-discover pear.amazonwebservices.com
pear -c /home/webuser/symfony/app/.pearrc channel-discover guzzlephp.org/pear
pear -c /home/webuser/symfony/app/.pearrc channel-discover pear.symfony.com

# インストール
pear -c /home/webuser/symfony/app/.pearrc install aws/sdk 

次に、Symfony2からこのライブラリを利用できるよう、include_pathを追加します。

※標準の設定ファイルでインストールされたPEARライブラリが既にある場合、include_pathに注意してください。include_pathに既存のPEARライブラリが配置されたディレクトリが登録されていると、二重に読み込まれることがあります。

autoload.php
<?php
// 追記
set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__ . '/../vendor/pear/php');
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4