我正在尝试使用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的安全模式正在“开启”。仍然不知道安全模式究竟做什么的原因并不能让你创建嵌套目录。
但它现在有效。谢谢大家的阅读。
答案 0 :(得分:1)
mkdir()
创建的目录上的模式受当前umask的影响,这就是chmod()
无效的原因。
尝试:
$old_mask = umask(0);
mkdir("/home/site/newdir/anotherdir",0777);
umask($old_mask);