PHP文件夹权限问题

时间:2011-09-10 16:02:27

标签: php linux file-permissions

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

如果这是我的目录结构

/home/site                           (owner : user1)

现在,我使用

创建文件夹
mkdir("/home/site/newdir",0777);     (user : apache)

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

现在,做

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

不会在newdir中创建另一个目录。

请帮忙。我认为这是一个所有者问题。 我无法使用chmod()更改所有者。所有者保持不变。

可能导致这种情况的原因是什么?

编辑:

<?php
error_reporting(E_ALL);

mkdir("./m",0777);  // works
mkdir("./m/v",0777); // doesnt work

页面上没有错误。

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

编辑:这已得到修复。对于可能面临同样问题的其他人来说,这是因为PHP的安全模式正在“开启”。仍然不知道安全模式究竟做什么的原因并不能让你创建嵌套目录。

但它现在有效。谢谢大家的阅读。

1 个答案:

答案 0 :(得分:1)

mkdir()创建的目录上的模式受当前umask的影响,这就是chmod()无效的原因。

尝试:

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