是否可以为PHP(cli)和PHP-fpm创建单独的PHP.ini文件,就像在debian和ubuntu上可以使用两个文件夹/etc/PHP/7.0/cli和/etc/PHP/7.0/fpm一样?
@H_301_2@如果我可以为每个子系统加载带有conf.d目录的独立模块,我也会很酷.
@H_301_2@有谁知道如何单独配置它?
@H_301_2@我也尝试使用在ubuntu 16.04中配置的结构,但没有成功.
解决方法
我找到了一些调整来解决我的问题.
@H_301_2@首先:加载一个单独的PHP.ini文件:
@H_301_2@一个arch linux论坛中的用户从man PHP页面发布了这个:
因此,我已将/usr/lib/systemd/system/PHP-fpm.service文件移至/etc/systemd/system/PHP-fpm.service,并将以下配置添加到服务文件中:
FILES PHP-cli.ini The configuration file for the CLI version of PHP. PHP.ini The standard configuration file will only be used when PHP-cli.ini cannot be found.@H_301_2@如果我创建一个/etc/PHP/PHP-cli.ini文件,只会加载这个文件,而不是使用PHP cli命令加载/etc/PHP/PHP.ini. PHP-fpm仍在加载/etc/PHP/PHP.ini. @H_301_2@第二:加载不同的模块配置: @H_301_2@我在php documentation中找到了PHP_INI_SCAN_DIR环境变量.
因此,我已将/usr/lib/systemd/system/PHP-fpm.service文件移至/etc/systemd/system/PHP-fpm.service,并将以下配置添加到服务文件中:
[Unit] Description=The PHP FastCGI Process Manager After=syslog.target network.target [Service] Type=notify Environment="PHP_INI_SCAN_DIR=/etc/PHP/fpm/conf.d" ; <-- I have added this line PIDFile=/run/PHP-fpm/PHP-fpm.pid ExecStart=/usr/bin/PHP-fpm --nodaemonize --fpm-config /etc/PHP/PHP-fpm.conf ExecReload=/bin/kill -USR2 $MAINPID [Install] WantedBy=multi-user.target@H_301_2@重新启动/重新加载服务后,PHP-fpm只加载/etc/PHP/fpm/conf.d中的文件,而不再加载/etc/PHP/conf.d中的文件.这允许我分别配置cli和fpm. @H_301_2@也许这不是最好的解决方案,但我适合我的用例.如果每个人都有更好的解决方案,请不要犹豫,发布您的答案!