这是我正在使用的暴发脚本:
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的人来说,这可能会让人感到困惑.
让我们首先处理使用apt-get安装的php5-fpm.一旦我重新启动服务器,php.ini就被加载了.这很奇怪,但它确实奏效了.
回到我的问题.
请注意,我用–with-config-file-path = / etc / php /编译了PHP.使用–with-config-file-path时,向文件夹添加尾部斜杠会导致此问题.
在我的情况下,我运行make clean来清理旧的编译二进制文件.然后我用–with-config-file-path = / etc / php运行configure(注意文件夹没有斜杠).然后制作并安装.
完成后,您会发现/ etc / php中的php.ini会自动加载,无论我们是否使用-c开关将其传递给php-fpm.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。