mkdir()没有设置chmod为0777。

3
为什么mkdir不设置CHMOD为0777
mkdir('/var/www/test', 0777);

创建目录后,设置 CHMOD 为 0755
来自 php.net。
bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )

$mode默认应该为0777,但如果您将第二个参数留空,CHMOD仍然设置为0755


1
0755是用户apache php的标准! - JellyBelly
这是一个更好的问题,可以在http://s.tk/unix或http://s.tk/su上得到解答。 - Matt Ball
请查看umask $old = umask(0); chmod("/path/some_dir/some_file.txt", 0755); umask($old); - Brad Christie
3个回答

8

来自http://php.net/mkdir:

注意:在Windows系统中,mode参数会被忽略。

mode参数也会受到当前umask值的影响,你可以使用umask()函数来更改umask值。


0

因为它受当前 umask 的影响。来自PHP mkdir 文档

该模式还会受到当前 umask 的修改,您可以使用 umask() 进行更改。


0
根据mkdir PHP文档

该模式也会受到当前umask的影响,您可以使用umask()进行更改。

这可能是原因吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接