7

使用 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 错误列表中没有找到任何相关的错误,有什么想法吗?

4

3 回答 3

18
$old = umask(0);
mkdir($dir,0777);
umask($old);

阅读这个, http ://php.net/manual/en/function.mkdir.php

另外,检查您创建新目录的顶级目录。

例子)

密码/数据/日志

$dir="/data/log/query";
$old = umask(0); 
mkdir($dir,0777); 
umask($old); 

/data/log 必须是 0777。

于 2012-08-09T02:43:14.167 回答
6

这不是错误。请参阅http://php.net/umask - 您可能有一个 0002 的 umask。您创建的权限是yourmode & ~umask,因此它会将每个人的写入位从 0777 中取出。

于 2010-12-08T17:33:00.490 回答
5

按照记录工作。mkdir 尊重 umask,chmod 不尊重。

于 2010-12-08T17:32:26.327 回答