PHP mkdir 0777失败chmod 0777工作

时间:2010-12-08 17:30:47

标签: php chmod mkdir

使用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,不知道吗?

3 个答案:

答案 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不尊重。