是否有可能为php(cli)和php-fpm创build单独的php.ini文件,就像在debian和ubuntu上可能有两个文件夹/etc/php/7.0/cli
和/etc/php/7.0/fpm
?
如果我可以为每个子系统加载一个conf.d
目录的独立模块,我也会很酷。
有没有人有一个想法如何可以分别configuration它?
我也尝试使用它在ubuntu 16.04中configuration的结构,但没有成功。
您可以随时为cli版本执行此操作:
php -c /path/to/your/php.ini
并使用通过php-fpm服务的默认值。 或者甚至更好,将其添加到您的login脚本
#〜/ .bashrc #别名和个人function #PHP源码个人ini 别名php ='php -c /path/to/your/php.ini' #colorize ls 别名ls ='ls --color' ...
如果你已经说过你正在使用哪个版本,那会更好
我发现了一些调整来解决我的问题。
第一 :加载一个单独的php.ini
文件:
Arch Linux论坛中的用户从man php
页面发布了这个post:
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.
如果我创build一个/etc/php/php-cli.ini
文件,只有这个文件会被加载,而不是/etc/php/php.ini
和php
cli命令。 php-fpm
仍在加载/etc/php/php.ini
。
第二 :加载不同的模块configuration:
我在PHP文档中find了PHP_INI_SCAN_DIR
环境variables。 因此,我将/usr/lib/systemd/system/php-fpm.service
文件移至/etc/systemd/system/php-fpm.service
,并将以下configuration添加到服务文件中:
[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
加载。 这使我可以分别configurationcli和fpm。
也许这不是最好的解决scheme,但我适合我的用例。 如果每个人都有一个更好的解决scheme,不要犹豫,发布你的答案!