我正在尝试使用 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 的安全模式处于“开启”状态。仍然不知道安全模式究竟做了什么不允许您创建嵌套目录的原因。
但现在可以了。感谢大家阅读。
最佳答案
mkdir()
创建的目录模式受您当前的 umask 影响,这就是为什么 chmod()
不适合您的原因。
尝试:
$old_mask = umask(0);
mkdir("/home/site/newdir/anotherdir",0777);
umask($old_mask);
关于PHP文件夹权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7372891/