是否可以为PHP(cli)和PHP-fpm创建单独的PHP.ini文件,就像在debian和ubuntu上可以使用两个文件夹/etc/PHP/7.0/cli和/etc/PHP/7.0/fpm一样?
如果我可以为每个子系统加载带有conf.d目录的独立模块,我也会很酷.
有谁知道如何单独配置它?
我也尝试使用在ubuntu 16.04中配置的结构,但没有成功.
解决方法
我找到了一些调整来解决我的问题.
一个arch linux论坛中的用户从man PHP页面发布了这个:
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.
如果我创建一个/etc/PHP/PHP-cli.ini文件,只会加载这个文件,而不是使用PHP cli命令加载/etc/PHP/PHP.ini. PHP-fpm仍在加载/etc/PHP/PHP.ini.
第二:加载不同的模块配置:
我在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
重新启动/重新加载服务后,PHP-fpm只加载/etc/PHP/fpm/conf.d中的文件,而不再加载/etc/PHP/conf.d中的文件.这允许我分别配置cli和fpm.