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

どや


ブックマークに追加する