phpコマンドを実行したら、こんな感じで、Warningメッセージが数十行、どどどどど~っと大量に出た [E:coldsweats02]
# php -v
PHP Warning: Module 'pgsql' already loaded in Unknown on line 0
PHP Warning: Module 'imap' already loaded in Unknown on line 0
PHP Warning: Module 'posix' already loaded in Unknown on line 0
~略~
PHP Warning: Module 'http' already loaded in Unknown on line 0
PHP Warning: Module 'apc' already loaded in Unknown on line 0
PHP Warning: Module 'sqlite3' already loaded in Unknown on line 0
PHP 5.3.6 with Suhosin-Patch (cli) (built: May 31 2011 15:09:33)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
なんだこれは?と思って、ネット検索してみると、同じモジュールを複数回読み込んでいる場合に出るwarningメッセージだそうで、たとえば設定ファイルの記述ミスなどのために、extensionを2回読み込むなどの可能性がある、とか。
身に覚えがないので、portupgrade -fしてportsであれこれ再インストールしてみるなどして、やっぱり直らない、とか思っているうちに、やっとわかった。
# php -i
~略~
PHP Warning: Module 'apc' already loaded in Unknown on line 0
PHP Warning: Module 'sqlite3' already loaded in Unknown on line 0
Additional .ini files parsed => /usr/local/etc/php/extensions-.ini,
/usr/local/etc/php/extensions.ini
/usr/local/etc/php/extensions.ini というファイル以外に、もう一つ、別のファイルが読み込まれている。
# ls -l
total 4
-rw-r--r-- 1 root wheel 920 5月 31 17:17 extensions-.ini
-rw-r--r-- 1 root wheel 920 6月 14 16:46 extensions.ini
ああ、思い出した。これまで、pecl-*をportupgradeしたとき、モジュールの登録順序のせいか、warningメッセージが出ることがよくあったので、古い設定ファイルをバックアップとして残しておいたんだった。
どうやら /usr/local/etc/php/extensions.ini だけでなく、/usr/local/etc/php/*.ini すべてをphpが読んでしまうらしい。
だから、バックアップファイルを残しておきたいなら、extensions-.iniではなくextensions.ini-にしておけばよかった、というわけだった [E:coldsweats01]
0 件のコメント:
コメントを投稿