【发布时间】:2011-11-14 10:22:32
【问题描述】:
我正在尝试使用 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 的安全模式处于“开启”状态。仍然不知道为什么安全模式不允许您创建嵌套目录。
但是现在可以了。感谢大家阅读。
【问题讨论】:
-
您正在创建具有 0777 权限的目录,这一定不是权限问题。尝试在 /home/site/newdir 中创建目录时 PHP 是否显示任何错误?
-
没有错误。 var_dump(is_writeable("./m")) 返回真。检查我编辑的帖子。
-
mkdir("./m/v", 0777, true);呢? -
已修复。请查看原帖。感谢大家的帮助。
-
注意:
chmod永远不能更改文件或目录的所有者,这不是它的作用。chown会这样做,但是在任何合理的服务器设置下,您将无法实际使用它(您需要是 root)。
标签: php linux file-permissions