如何在 Arch Linux 上为 php(cli)和 php-fpm 创建单独的配置文件

如何在 Arch Linux 上为 php(cli)和 php-fpm 创建单独的配置文件

是否可以为 php(cli)和 php-fpm 创建单独的 php.ini 文件,就像在 debian 和 ubuntu 上使用两个文件夹/etc/php/7.0/cli一样/etc/php/7.0/fpm

conf.d如果我可以为每个子系统加载带有目录的独立模块,那我会觉得很酷。

有谁知道我该如何单独配置它?

我也尝试使用像在 ubuntu 16.04 中配置的结构,但没有成功。

答案1

我找到了一些可以解决我的问题的调整方法。

第一的:加载单独的php.ini文件:

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文件,则只会加载此文件,而不会/etc/php/php.ini使用phpcli 命令。php-fpm仍在加载/etc/php/php.ini

第二:加载不同的模块配置:

我发现php 文档环境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。

也许这不是最好的解决方案,但适合我的用例。如果每个人都有更好的解决方案,请毫不犹豫地发布您的答案!

答案2

您始终可以对 CLI 版本执行此操作:

php -c /路径/到/你的/php.ini

保留通过 php-fpm 提供的默认设置。或者更好的是,将其添加到您的登录脚本中

# ~/.bashrc
# 别名和个人功能

# PHP 源个人 ini
别名 php='php -c /path/to/your/php.ini'

# 为 ls 着色
别名 ls='ls --color'
...

如果你能说明你正在使用的版本,那就更好了

相关内容