phpに独自の設定をしたいんだけど、その方法が分からなくて困っていた。
いくつか方法はあるんだけど、どれも使い物にならない。
※システム/etc/php.iniユーザー~/php.iniとします。
/etc/php.iniを編集するのは論外。
$ /usr/bin/php -d a=1 -d b=2 foo.php
や
$ echo -e "a=1/\/inb=2" > ~/.php/my-php.ini $ /usr/bin/php -c ~/.php foo.php
な方法だと動くには動くけど、毎回オプション付きで/usr/bin/phpを実行するハメになる。(=透過的じゃない)
aliasしとけばいいじゃんって話もあるけど、aliasでは#! /usr/bin/phpなファイルの実行には効かない。
(例えば $ pear で良かったものを php -c ~/.php /usr/bin/pear とかせないかん。そんなアホな)
全ての#! /usr/bin/phpなファイルに対して shebangを書き換えたり、コマンド毎にaliasするのもバカバカしい。
で、最近になってやっと見つけたのが環境変数PHP_INI_SCAN_DIR。たすかったー。
これに指定されたディレクトリから*.iniのファイルを読み込んでくれる。やったー。
ただしディレクトリ1個しか指定できない。えーなんでよー。
もしconfigureで--with-config-file-scan-dirが既に指定されていた場合、
PHP_INI_SCAN_DIRを設定するとそっちを読んでくれなくなる。アホー。
なのでシンボリックリンクで華麗にスルー。もーphpはホントに毎回毎回かゆいところに手が届かん、というかクソ。
$ mkdir ~/.php $ cd ~/.php $ ln -s /etc/php.d/* . $ vi my-php.ini # 名前は.iniで終わっていれば何でもいい。 $ export PHP_INI_SCAN_DIR=~/.php
どや


