3

问题

我正在尝试通过 PHP 将文件上传到我自己的服务器。如果文件夹不存在,我首先尝试创建文件夹;

mkdir($folder, 0700);

我的脚本正在创建文件夹,但 apache 是文件夹(和文件)的所有者,所以我无法访问我上传的文件。

我在我的服务器中关闭了安全模式。我仍然找不到解决这个问题的方法。

如果有人能帮我解决这个问题,我会很高兴。

注意: 我试过 0755,0777 没有任何改变。Apache 是所创建文件夹的所有者。

4

4 回答 4

2

我建议重新配置 Web 服务器以使用suEXECsuPHP。这种方法的缺点是您被迫在 CGI 模式下使用 PHP,而不是作为 Apache mod。不过,我还没有看到这在中低流量网站上成为问题。主要好处是您的脚本将作为拥有它们的任何人运行,因此您的脚本创建的任何新目录或文件都将自动归该用户所有。

最终,如果您的问题只是创建新目录而不是文件,并且您没有存储任何不应该被窥探读取的内容,那么chmod($path, 0755);将解决您的问题。

于 2012-01-05T18:34:31.443 回答
1

The following code snippet creates directories with permissions 777(or any specified permissions):

 $oldumask = umask(0);
 mkdir($path, 0777);
 umask($oldumask);
于 2012-01-05T19:02:35.820 回答
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
于 2012-01-05T18:36:54.683 回答
0

Why do you set permissions to 700 in the first place? 755 will allow "anyone" to read your files and folders, and in most cases it's actually acceptable.

于 2012-01-05T18:39:42.657 回答