我正在使用mkdir为文件结构创建2个嵌套目录。它创建的目录始终设置为0755.但我使用的代码是。
mkdir('path_one/path_two', 0777, true);
我已经尝试过做
chmod('path_one/path_two', 0777);
但是只将最终目录设置为0777.什么会导致mkdir无法正常运行?
答案 0 :(得分:8)
mkdir功能正常。创建的中间目录基于当前的umask设置。你想要这样的东西:
umask(0777);
mkdir('path_one/path_two', 0777, true);
答案 1 :(得分:2)
来自php manual:
模式也会被当前的umask修改,您可以更改 使用umask()。
请注意umask()
中{<1}}中设置的任何位都在mkdir()
使用的结果中未设置。默认的umask是0022,mkdir的默认创建模式是0777,结果值为0755.这适用于所有创建的目录。