2011年8月8日月曜日

Macでユーザー毎のPEARを構築

Mac[Lion]でPhingやPhpDocumentor等、PHPのツールを使用する必要があったためPHPのコマンドライン(CLI)環境を構築した。

PHP自身はもともとインストールされているものを使用し、システム関連の設定を変更することなく個人用の環境を構築する。

PEARのインストール

pearのホームは~/pearとする
その他PEARの作業用ディレクトリも作っておく

$ mkdir ~/pear
$ mkdir ~/pear/work

$ mkdir ~/pear/work/temp
$ mkdir ~/pear/work/cache

$ mkdir ~/pear/work/downloads

go-pear.pharを取ってくる。

$ cd ~/pear
$ wget http://pear.php.net/go-pear.phar

wgetコマンドがインストールされていない場合はPortsから取得
$ sudo port install wget

ダウンロードしたPharを実行
$ php ./go-pear.phar

各ディレクトリを聞かれるので以下を設定。もちろん値は自由だが以下は参考。

 1. Installation base ($prefix)                   : /Users/xxx/pear
 2. Temporary directory for processing            : /Users/xxx/pear/work/temp
 3. Temporary directory for downloads             : /Users/xxx/pear/work/downloads
 4. Binaries directory                            : /Users/xxx/pear/bin
 5. PHP code directory ($php_dir)                 : /Users/xxx/pear/php
 6. Documentation directory                       : /Users/xxx/pear/docs
 7. Data directory                                : /Users/xxx/pear/data
 8. User-modifiable configuration files directory : /Users/xxx/pear/cfg
 9. Public Web Files directory                    : /Users/xxx/pear/www
10. Tests directory                               : /Users/xxx/pear/tests
11. Name of configuration file                    : /Users/xxx/.pearrc

設定後php.iniを変更するかと聞かれるが後に設定するためNoを指定。

インストールを終了した後、環境変数の設定
$ vi ~/.profile
export PATH=~/pear/bin: xxxxxx <= 追加

反映
$ source ~/.profile
これでpear/bin内の各コマンドが実行できる。

以下のコマンドで現在の設定内容を確認できる。
$ pear config-show

各値を再度設定したい場合は以下のように行う
$ pear config-set キー名 値

例えばキャッシュディレクトリを変更する場合
$ pear config-set cache_dir /Users/xxx/pear/work/cache

これらの設定は各ユーザの設定がシステムの値を上書きするため
システム本来の設定にはなんら影響がない。

しかし、これだけではphp.iniのinclude_pathが合わないため
コマンドでエラーが発生する。
phpコマンドの設定ファイルの状況を確認するには以下のコマンド
$ php --ini (ハイフン2つ)

通常だと/private/etc/php.iniが読み込まれているはずだ。
sudo で設定を書き換えることもできるが、好ましくない。
よって環境変数によって個人用のphp.iniを読み込ませる。

オリジナルをコピー
$ cp /etc/php.ini.default ~/pear/php-cli.ini

include_pathを修正
$ vi ~/pear/php-cli.ini
...
include_path = ".:ユーザーディレクトリ/pear/php"
...

環境変数の設定
$ vi ~/.profile
export PHPRC=~/pear  <= 追加

変数を反映
source ~/.profile

これでユーザー用に作成したphp.iniをコマンドラインで読み込ませることができる。
確認は以下で、作成したファイルが読み込まれていれば完了

$ php --ini