使用PHP 5.2.14,这就是发生的事情
[user@VE213 public_html]$ php -r "mkdir('directory', 0777);"
[user@VE213 public_html]$ ls -lt
drwxrwxr-x 2 rankranger rankranger 4096 Dec 8 17:28 directory
[user@VE213 public_html]$ php -r "chmod('directory', 0777);"
[user@VE213 public_html]$ ls -lt
drwxrwxrwx 2 rankranger rankranger 4096 Dec 8 17:28 directory
在php bug列表中没有找到任何相关的bug,不知道吗?
答案 0 :(得分:16)
$old = umask(0);
mkdir($dir,0777);
umask($old);
阅读本文, http://php.net/manual/en/function.mkdir.php
另外,请检查您创建新目录的顶级目录。
实施例)
PWD /数据/日志
$dir="/data/log/query";
$old = umask(0);
mkdir($dir,0777);
umask($old);
/ data / log必须为0777.
答案 1 :(得分:6)
这不是错误。请参阅http://php.net/umask - 您可能拥有0002的umask。您创建的权限是yourmode & ~umask
,因此所有人的写入位都需要远离0777。
答案 2 :(得分:5)
按文件记录工作。 mkdir尊重umask,chmod不尊重。