serverspecのphp_configでのテストがずっと通らずに悩んでいたときのお話しです。
serverspec用のユーザを作成し、sudoできるようにして、テストしていました。
手動でテストした際も、rootユーザでは期待値が戻ってきたのですが、serverspec用ユーザだと値が戻らないという状況でした。
rootユーザの状況
#php -r 'echo get_cfg_var( "date.timezone" );' Asia/Tokyo
serverspec用ユーザの状況
#php -r 'echo get_cfg_var( "date.timezone" );' #
なんでだろうと悩んでいたんですが、下記コマンドを実行して、ん?と思うことが。
php --ini Configuration File (php.ini) Path: /usr/local/lib Loaded Configuration File: /usr/local/lib/php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none)
php --ini Configuration File (php.ini) Path: /etc Loaded Configuration File: /etc/php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none)
php.iniがふたつあったっというオチ・・・orz
phpをソースコードからインストールしてたんですが、どうも私が設定したあとに、誰かがyumでphp関係のモジュールをインストールした模様。
こういうエラーは気づくのに時間がかかりますね・・・。
こういうことが無いように、直接設定せずchefとかのツールでやるべきと改めて痛感しました。