繁体   English   中英

如何以 root 身份运行 php-fpm

[英]How to run php-fpm as root

我知道以 root 身份运行 php-fpm 的风险。 但是,在某些情况下,人们要这样做,例如设备、访问操作系统资源,甚至出于测试目的。

当我重新启动 php-fpm 进程时,我试图将 php-fpm.d/www.conf 的用户和组更改为 root,但它引发了一个错误:

Starting php-fpm: [26-Jun-2014 00:39:07] ERROR: [pool www] please specify user and group other than root
[26-Jun-2014 00:39:07] ERROR: FPM initialization failed
[FAILED]

我该怎么办。 有人帮忙吗?

看到:

# php-fpm --help
...
 -R, --allow-to-run-as-root
               Allow pool to run as root (disabled by default)

仅在您的命令中添加-R (就像这样和建议)可能不起作用。 这取决于您如何运行命令来启动php-fpm

如果您使用service php-fpm restart并且它使用 /etc/init.d 而不是systemctl (参见此处),那么您必须将 -R 添加到位于/etc/php/<phpversion>/fpm/php-fpm.confDAEMON_ARGS变量/etc/php/<phpversion>/fpm/php-fpm.conf脚本。 (此变量用于do_start()函数。请参见此处)。

如果它使用systemctl那么你必须编辑systemctl使用的脚本,它应该位于/lib/systemd/system/<phpversion>-fpm.service -R附加到ExcecStart变量。 然后运行systemctl daemon-reloadsystemctl start php<version>-fpm (见这里

我使用以下问题/答案/资源来帮助我编译此解决方案。

  1. https://serverfault.com/a/189961
  2. https://serverfault.com/q/788669
  3. https://stackoverflow.com/a/52919706/9530790
  4. https://serverfault.com/a/867334
  5. https://www.geeksforgeeks.org/what-is-init-d-in-linux-service-management/

更新2018年

在容器中运行它是以root身份运行php-fpm的可能正当理由。 可以通过将-R命令行参数传递给它来完成


原始答案:

但是,有些人需要这样做,例如设备,访问操作系统资源

你永远不需要这样做。 而已。 如果您正在管理系统资源,请将php-fpm用户的权限授予该资源,而不是以root身份运行整个过程。 如果您的问题更具体,我可以说明在某种情况下如何做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM