FCGI和upload_tmp_dir PHP指令无法正常工作

时间:2013-03-30 08:11:55

标签: php cgi fastcgi mod-fcgid

我将 PHP 作为 FCGI 运行!我将upload_tmp_dir选项设置为值/home/domain.com/tmp。执行phpinfo()进行复核时,确认上述设置正确无误。

然而,当实际上传时,上传文件暂时转到/tmp目录,权限为apache:apache,当上传完全 时,上传的文件正被移动到目标目录,该目录在upload_tmp_dir中设置。移动文件后,它具有正确的权限,domainowner:domainowner

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

我对此的关注很少,如下:

想象一下,如果20个人同时完成上传大约2GB的文件会怎么样?上传的文件必须从/tmp移动到主目录,在文件系统上创建大量无用的负载!因此,我认为移动更有资源,而不仅仅是在同一目录中重命名文件?!除了/tmp安装为ext3,主页安装为ext4,更糟糕的是/tmp分区是16GB的空间,这是我上面想象的完全灾难?

问题:

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

请帮忙!?

2 个答案:

答案 0 :(得分:0)

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

我建议在tmp设置 chmod 777 中为/home/tmphome

创建tmp

答案 1 :(得分:-1)

This thread表示可能是由于安全级别设置造成的。如果是'medium',那么FCGI默认为系统默认值。

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