Ubuntuでphp.iniのパスが指定出来ない件
phpをソースからビルドする場合、configureのオプション--with-config-file-pathでphp.iniを格納するパスを指定することが出来ます。例えば、
./configure --with-config-file-path=/etc
とすれば、/etc/php.iniを探すようになります。
以下、完っ全に間違いでした。make distcleanしたら普通に指定が有効になりました。phpinfo取って、「Configuration File (php.ini) Path」が設定出来ているからといって、それ以上検証しなかった俺が無知で無能でクズでした。ごめんよUbuntu。
ところが、手元のUbuntu7.04ではどうもこの指定が効かないようです。いろいろ試してみたところUbuntuでは「--with-config-file-pathの指定に関わらず、phpをインストールしたディレクトリ下のetc/php.iniを読みに行ってしまう」のではないかと思われます。/opt/phpにインストールした場合は、/opt/php/etc/php.iniが設定ファイルとなります。
php5.2.2と5.2.3で試してみましたが、いずれも同様でした。CentOS4.4では--with-config-file-pathで指定したディレクトリを探してくれるので、これはUbuntu特有(Debian全般かも知れませんが)の問題だと思われます。
以前、Ubuntuでphp5.2.3がビルド出来ないとエントリしましたが、configureのオプションを変えたら問題なくコンパイル出来ました。今回のconfigureはこんな感じ。再インストールしてしまったので以前の環境とは比べていませんが、apxsの指定でしょうかね…
./configure --disable-all \ --enable-libxml \ --enable-mbstring \ --enable-mbregex \ --enable-memory-limit \ --enable-xml \ --enable-zend-multibyte \ --prefix=/opt/php_vers/5.2.3 \ --with-apxs2=/usr/bin/apxs2 \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/opt/etc/php.d \ --with-pcre-regex \ --with-pear=/opt/php_vers/5.2.3/share/pear \
ビルド時点では出来るだけ機能を組み込まず、モジュールを動的に読み込むのが近頃のトレンドらしいので、それを視野に入れて。とりあえずこんな感じで始めてみようかなと。
てな感じで、Ubuntuでphpをビルドする時はちょっと気を付けないとダメっぽいです。どうしても/etc/php.iniとかに置きたかったら、シンボリックリンク張るとかしかなさそうですかね…