加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

我们需要将php.ini的位置显式传递给php-fpm吗?

发布时间:2020-12-13 13:51:00 所属栏目:PHP教程 来源:网络整理
导读:我看到一个奇怪的问题,我的php.ini没有被使用,如果我在启动时没有明确地将它传递给php-fpm. 这是我正在使用的暴发脚本: start on (filesystem and net-device-up IFACE=lo)stop on runlevel [016]pre-start script mkdir -p /run/phpend scriptexpect forkr
我看到一个奇怪的问题,我的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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读