php.iniの正しい設置場所を確認する

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.timezoneAsia/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]

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください