php下mkdir不能设置777的问题

在php里,用mkdir可以创建一个目录,按照官方文档的说明,默认mode参数为0777,但实际测试结果,默认情况下为755。

sudo su www-data
php -r "mkdir('test');"
ls -l

显示结果为:

drwxrwxr-x 2 www-data www-data 4096  9月 17 12:05 test

即使指定mode,结果也是一样:

php -r "mkdir('test',0777);"

搜索后发现是需要先行umask处理,参考这个帖子

因此,最终处理方法是:

php -r "$old=umask(0);mkdir('test');umask($old);"

发表评论

电子邮件地址不会被公开。 必填项已用*标注