Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 mkdir 通常为文件结构创建 2 个嵌套目录。它创建的目录始终设置为 0755。但是我使用的代码是。
mkdir('path_one/path_two', 0777, true);
我试过然后做
chmod('path_one/path_two', 0777);
但这只会将最终目录设置为 0777。什么会导致 mkdir 无法正常运行?
mkdir 运行正常。创建的中间目录是根据当前的 umask 设置的。你想要这样的东西:
umask(0777); mkdir('path_one/path_two', 0777, true);
从php 手册:
该模式也由当前的 umask 修改,您可以使用umask()进行更改。
请注意,设置的任何umask()位在. 默认 umask 为 0022,mkdir 的默认创建模式为 0777,其结果值为 0755。这适用于所有创建的目录。mkdir()
umask()
mkdir()