PHP文件夹权限问题


PHP folder permissions problem

我正在尝试使用PHP创建一个文件夹,然后在其中创建另一个文件夹。

如果这是目录结构,我有

/home/site                           (owner : user1)
现在,我用 创建文件夹
mkdir("/home/site/newdir",0777);     (user : apache)

创建目录/home/site/newdir,但该目录的用户为"apache"

现在做

mkdir("/home/site/newdir/anotherdir",0777);

不会在newdir中创建新的目录。

请帮助。我认为这是业主的问题。我不能使用chmod()更改所有者。所有者保持不变。

是什么原因导致的?

EDIT:

<?php
error_reporting(E_ALL);
mkdir("./m",0777);  // works
mkdir("./m/v",0777); // doesnt work

页面上没有错误

var_dump(is_writeable("./m")) // returns bool(true)

EDIT:这已被修复。对于其他可能面临同样问题的人来说,这是因为PHP的安全模式处于"打开"状态。我仍然不知道安全模式到底是怎么做的,它不允许你创建嵌套目录。

但它现在工作。感谢大家的阅读。

mkdir()创建的目录模式受到当前umask的影响,这就是chmod()不能为您工作的原因。

试题:

$old_mask = umask(0);
mkdir("/home/site/newdir/anotherdir",0777);
umask($old_mask);