我们需要将php.ini的位置显式传递给php-fpm吗?
我看到一个奇怪的问题,我的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启动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的人来说,这可能会让人感到困惑.
不,我们没有明确需要在启动时将php.ini文件传递给php-fpm.
让我们首先处理使用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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |