lnmp,php-fpm修改指定的php.ini路径

怎么永久修改php-fpm指定加载的php.ini路径,

我用
/usr/local/php/sbin/php-fpm -y /usr/local/php/etc/php-fpm.conf -c /usr/local/php/etc/php.ini

重启 systemctl restart php-fpm.service 后 , Loaded Configuration File 路径又变了

阅读 9.6k
3 个回答

只能编译 php时候 指定php.ini吧

  1. 你启动php-fpm时通过-c参数指定php.ini文件,这一次肯定是成功的;
  2. restart之后,肯定是又复原了的,不论是通过service还是/etc/init.d/还是systemctl等等方式;
  3. 因为编译的时候已经默认指定好了,注意是默认,所以每次快捷重启肯定都是加载的默认配置文件,至于那个默认的文件在哪里,可以看编译时的输出
新手上路,请多包涵

1、php.ini 的加载位置:

  • PHP-FPM 启动时通过 -c 自定义指定 php.ini 位置,如问题中所示
  • 编译 PHP 时通过 --with-config-file-path=xxx 参数指定 php.ini 的配置文件路径,也是 PHP-FPM 默认缺省加载位置。
如果编译没有指定,默认好像是在 /etc 目录下,具体你可以通过 /php-bin-path/php-config --ini-path 查看你的默认 php.ini 位置

2、systemctlservice 管理 PHP-FPM 的原理:

不管是通过 systemd 还是 initd 管理 PHP-FPM 服务,其实都是通过一段编写好的 shell 程序脚结合 php.pid 文件来管理 PHP-FPM 服务的。

  • systemd 管理程序脚本在 /lib/systemd/system/php-fpm.service 中,在 ExecStart=@EXPANDED_SBINDIR@/php-fpm --nodaemonize --fpm-config @EXPANDED_SYSCONFDIR@/php-fpm.conf 中添加上 -c xxxx 信息即可
  • initd 管理程序脚本在 /etc/init.d/php-fpm 中,同理在 php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID" 加上 -c xxx 信息即可
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题