问题
我正在尝试通过PHP将文件上传到我自己的服务器。如果文件夹不存在,首先我尝试创建文件夹;
mkdir($folder, 0700);
我的脚本正在创建文件夹,但是apache是文件夹(和文件)的所有者,因此我无法访问我上传的文件。
我的服务器中有safe_mode。我仍然无法找到解决方案。
如果有人能帮我解决这个问题,我会很高兴。
注意: 我试过0755,0777没有改变任何东西。 Apache是创建的文件夹的所有者。
答案 0 :(得分:2)
我建议重新配置网络服务器以使用suEXEC或suPHP。这种方法的缺点是你被迫在CGI模式下使用PHP而不是Apache mod。不过,我还没有看到这在中低流量网站上成为一个问题。主要好处是您的脚本将以拥有它们的人的身份运行,因此您的脚本所做的任何新目录或文件将自动归所述用户所有。
最终,如果您的问题只是创建了新目录而不是文件和,那么您不会存储任何不应该通过窥探方式阅读的内容,然后chmod($path, 0755);
将解决您的问题。
答案 1 :(得分:1)
以下代码段创建具有权限777(或任何指定权限)的目录:
$oldumask = umask(0);
mkdir($path, 0777);
umask($oldumask);
答案 2 :(得分:0)
当然。上传目录必须other
可写/可访问,即:xx7:
// fill APPPATH with a suitable directoy name
if ( ! file_exists(APPPATH . 'uploads'))
{
mkdir(APPPATH . 'uploads', 0757, TRUE);
}
7: owner permissions, ie: rwx
5: group permissions, ie: rx
7: other permissions, ie: rwx
答案 3 :(得分:0)
为什么首先将权限设置为700? 755将允许“任何人”阅读您的文件和文件夹,在大多数情况下,它实际上是可以接受的。