如何使用 Apache 和 FastCGI 以另一个用户身份运行 PHP 文件?

如何使用 Apache 和 FastCGI 以另一个用户身份运行 PHP 文件?

根据较老的问题,例如使用 mod_fcgid 而不是 mod_phpPHP 作为 CGI 还是 Apache 模块?(和切向地一些其他 问题)我了解到,以 CGI 或 FastCGI 方式运行 PHP 会使我的 .php 文件作为所有者而不是阿帕奇用户(运行 Apache 的用户)。

phpinfo();函数说明Server API = CGI/FastCGI

然而,当我测试正在运行的用户时,它仍然是阿帕奇<?php echo exec('whoami'); ?>返回阿帕奇

我也尝试过Jeremy Bouse 建议在我提到的一个问题中,但 PHPwhoami仍然返回阿帕奇


phpinfo 的“服务器 API”等于“CGI/FastCGI”这一事实是否足以让普通用户以所有者身份运行 php 文件?

(这是否甚至表明 PHP 没有使用 mod_php 运行?)

或者是否仍有一些管理任务需要完成或某些内容可能配置错误?

答案1

我认为运行 PHP FastCGI 的(最新且)最佳方式是使用PHP-FPM,在众多选项中还允许为不同的网站使用不同的用户。

来自官方网站

能够启动具有不同 uid/gid/chroot/environment 和不同 php.ini 的工作程序(取代 safe_mode)

但仅使用 FastCGI 还不足以使用文件所有者(并且不存在“自动使用文件所有者”这一说法:你必须实际配置它虚拟主机由虚拟主机组成(或根据您的意愿)。

答案2

执行可以以 apache 用户以外的用户身份运行 cgi。如果您想以这种方式运行 PHP,您可能还会对以下内容感兴趣苏普

相关内容