0

如果我正在运行 fastCGI,我会在我的服务器上使用 open_basedir 将文件从一个域移动到另一个域时遇到问题吗?

我将要从以下位置移动上传的文件:

/var/www/vhosts/example-1.com/httpdocs/

到:

/var/www/vhosts/example-2.com/httpdocs/

考虑到用户特定于所使用的域,FastCGI 会允许这样做吗?因此对于 example-1.com,用户将是 example-1。如果我定义了 open_basedir 指令,该用户能否将文件移动到 example-2 目录?

4

1 回答 1

2

听起来好像没有使用 suEXEC,所以 FastCGI 很可能会以与 Web 服务器相同的用户身份运行(apache、nobody、daemon、lighttpd 等)。

在这种情况下,FastCGI 用户将无权在各个用户目录中创建和写入文件。如果您将其中一个虚拟主机中的“上传”文件夹的权限设置为 777,则它可以将文件保存在那里。需要注意的是,这些文件将归 webserver 用户(apache 等)所有,现在 vhost 用户将不拥有这些文件,也无法修改它们。无论 open_basedir 是什么情况都是如此。如果这是您的专用服务器并且您所有的虚拟主机都是您的,您可以将某些文件/文件夹上的所有权更改为网络服务器的所有权,但最好使用 suEXEC,因为在这种情况下,FastCGI 将使用虚拟主机用户写入文件作为所有者。

将文件复制到另一个虚拟主机时,您仍然会遇到权限问题,因为它们将由不同的用户拥有,但您可以让脚本将它们分配给目标用户,或者将所有用户添加到一个公共组中,以便他们可以有组读/写权限。

suExec 是一个更安全的选项,但正确设置可能很复杂。您使用的是 Apache、lighttpd 还是其他?

于 2012-01-28T21:17:04.857 回答