開始時に_php.ini
_に明示的に渡さない場合、_php-fpm
_が使用されないという奇妙な問題が発生します。
これは私が使用しているアップスタートスクリプトです。
_start on (filesystem and net-device-up IFACE=lo)
stop on runlevel [016]
pre-start script
mkdir -p /run/php
end script
expect fork
respawn
exec /usr/local/php/sbin/php-fpm --fpm-config /etc/php/php-fpm.conf
_
PHPが上記で開始されている場合、Configuration File (php.ini) Path
に含まれていても、私の_php.ini
_は使用されません。
これはphpinfo()
の関連部分です:
_Configuration File (php.ini) Path /etc/php/
Loaded Configuration File (none)
Scan this dir for additional .ini files (none)
Additional .ini files parsed (none)
_
Upstartスクリプトの最後の行を変更して_php-fpm
_を_php.ini
_に明示的にポイントする場合:
_exec /usr/local/php/sbin/php-fpm --fpm-config /etc/php/php-fpm.conf -c /etc/php/php.ini
_
次に、_php.ini
_が読み込まれていることがわかります。
_Configuration File (php.ini) Path /etc/php/
Loaded Configuration File /etc/php/php.ini
Scan this dir for additional .ini files (none)
Additional .ini files parsed (none)
_
これはなぜですか?これはphp-fpmの癖ですか?
マイナーアップデート:これは、_apt-get
_を使用してインストールされたphp5-fpmの問題でもあるようです。
次のコマンドを実行して、Ubuntu Server 12.04仮想マシンにテストインストールしました。
_Sudo apt-get install nginx php5-fpm
_
PHP-FPMとnginxはインストール後に開始され、すべてが正常に見えました。次に、nginxの構成でphpの設定のコメントを外し、テストphpinfo()
ファイルを配置してPHPの設定を検査しました。
関連するビットは次のとおりです。
_Configuration File (php.ini) Path /etc/php5/fpm
Loaded Configuration File (none)
Scan this dir for additional .ini files /etc/php5/fpm/conf.d
Additional .ini files parsed /etc/php5/fpm/conf.d/10-pdo.ini
_
_php.ini
_もロードされていないことに注意しました。ただし、_/etc/php5/fpm
_にアクセスすると、_php.ini
_が存在することがわかります。また、PHP-FPMの起動スクリプトを確認したところ、iniファイルをPHPにリンクするために_-c
_パラメータが使用されていませんでした。これは、php.iniがPHP-FPMによって自動的にロードされることを期待する人々にとって、混乱を招く可能性があります。
いいえ、開始時にphp.ini
ファイルをphp-fpm
に明示的に渡す必要はありません。
まず、php5-fpm
を使用してインストールされたapt-get
を扱います。サーバーを再起動すると、php.ini
が読み込まれました。奇妙でしたが、うまくいきました。
私の質問に戻ります。
PHP with --with-config-file-path=/etc/php/
をコンパイルしたことに注意してください。この問題は、--with-config-file-path
を使用するときにフォルダーに末尾のスラッシュを追加したことが原因です。
私の場合、make clean
を実行して、古いコンパイル済みバイナリを削除しました。次に、--with-config-file-path=/etc/php
を使用してconfigureを実行しました(フォルダーの末尾にスラッシュがないことに注意してください)。次にmake
とmake install
。
これが完了すると、php.ini
スイッチを使用してphp-fpmに渡すかどうかに関係なく、/etc/php
の-c
が自動的に読み込まれます。