0

我将PHP作为FCGI运行!我将upload_tmp_dir option 设置为 value /home/domain.com/tmp。执行phpinfo()复查时,确认上述设置正确。

然而,当实际上传发生时,上传文件会暂时进入/tmp具有权限的目录apache:apache,当上传完全完成时,上传的文件才会被移动到目标目录,该目录设置在upload_tmp_dir. 文件移动后,它具有适当的权限,即domainowner:domainowner.

FCGI如上所述发生的事情是绝对错误的,并且与正在做的事情mod_phpCGI正在做的事情不同!mod_phpCGI开始直接将文件上传到upload_tmp_dir,然后在上传完成后重命名文件。

我对此几乎没有什么担忧,如下所示:

想象一下,如果 20 个人同时完成上传大约 2GB 的文件会怎样?上传的文件必须从 移动到主目录/tmp,给文件系统造成很多无用的负载!因此,我认为移动比重命名同一目录中的文件更有资源?!除了/tmp挂载为ext3和 home as ext4,更糟糕的是/tmp分区是 16GB 的空间,这与我上面想象的完全是灾难?

问题:

如何以与or相同的方式强制FCGI使用指令?我还没有找到记录的方法来更改它使用的临时目录。upload_tmp_dirCGImod_php

请帮忙!?

4

2 回答 2

0

bugs.php.net讨论了这个问题。可能的解决方案是您需要将任何父目录上的读取属性设置为您的tmp文件夹所在的位置,以使其工作。这可能是一个安全风险。

我建议tmp/home/tmp设置chmod 777hometmp

于 2013-08-12T10:36:13.613 回答
-1

该线程表明这可能是由于安全级别设置所致。如果为“中”,则 FCGI 默认为系统默认值。

不确定它引用的是什么设置,因为它指的是桌面安装。我会做一些挖掘工作。

于 2013-03-30T08:20:33.680 回答