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