这是我正在使用的暴发脚本:
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启动PHP,我的PHP.ini永远不会被使用,即使它位于配置文件(PHP.ini)Path中.
这是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的启动脚本,并且-c参数未用于将ini文件链接到PHP.对于希望PHP-FPM自动加载PHP.ini的人来说,这可能会让人感到困惑.