如何为使用php创建的新文件设置默认权限

时间:2013-05-21 14:21:48

标签: php umask

您好我正在运行centos服务器,我想知道如何设置由fopen创建的新创建文件的默认chmod。目前正在进行644但我想要666所以我可以在哪里指定此设置?

2 个答案:

答案 0 :(得分:5)

您可以在fopen()调用之前立即使用umask(),但如果您在多线程服务器上,则不应使用umask - 它将更改所有线程的掩码(例如,此更改)是在进程级别),而不仅仅是你将要使用fopen()的那个。

e.g。

$old = umask(000);
fopen('foo.txt', 'w'); // creates a 0666 file
umask($old) // restore original mask

事实上简单地chmod()会更容易:

fopen('foo.txt', 'w'); // create a mode 'who cares?' file
chmod('foo.txt', 0666); // set it to 0666

答案 1 :(得分:2)

与Linux一样,PHP有一个chmod()命令,可以调用它来更改文件权限。

请参阅此处的文档:http://php.net/manual/en/function.chmod.php

对于默认设置,您可以尝试Patrick Fisher在此处说明的内容:Setting the umask of the Apache user

[root ~]$ echo "umask 000" >> /etc/sysconfig/httpd
[root ~]$ service httpd restart