OS: Ubuntu Server 16.04
Nginx 1.12.2
PHP 7.2.3
Nginxの稼働する環境へPHPをソースからインストールする、となればNginx 1.4.x on Unix systemsを参照するのは道理である。公式の文書であるから全幅の信頼を寄せて盲従してしまうのもやはり無理からぬ事である。これが裏目に出た。第四番目の手続きである。
4. Obtain and move configuration files to their correct locations cp php.ini-development /usr/local/php/php.ini
Nginx 1.4.x (Unix システム用)
指示の通りにphp.iniを/usr/local/phpへと配したのちに、設定を編集するも反映されない。具体的にはdate.timezone
をAsia/Tokyo
にセットしたが、結果はno value
のままである。
$ sudo vi /usr/local/php/php.ini ;date.timezone = date.timezone = Asia/Tokyo $ php -i | grep date.timezone date.timezone => no value => no value
調べるとどうやらphp.iniの設置場所が悪いようである。php.iniのパスとして示されていたのは公式文書の/usr/local/phpではなく/usr/local/libであった。
$ php -i | grep php.ini Configuration File (php.ini) Path => /usr/local/lib
そこでphp.iniを/usr/local/libへと移動させると、設定ファイルがロードされていることが確認できた。設定も反映されるようになって無事、解決を見たのである。
$ sudo mv /usr/local/php/php.ini /usr/local/lib $ php -i | grep php.ini Configuration File (php.ini) Path => /usr/local/lib Loaded Configuration File => /usr/local/lib/php.ini $ php -i | grep date.timezone date.timezone => Asia/Tokyo => Asia/Tokyo
改めてconfigureのヘルプを確認してみるとデフォルトでは/usr/local/libへphp.iniを求めにゆく旨、記載されていた。
$ ./configure --help (snip) --prefix=PREFIX install architecture-independent files in PREFIX [/usr/local] --with-config-file-path=PATH Set the path in which to look for php.ini [PREFIX/lib]