嗨,我正在运行一个 centos 服务器,我想知道如何设置由 php 创建的新文件(如 fopen)的默认 chmod。目前它正在执行 644 但我想要 666 那么我在哪里可以指定此设置?
问问题
20610 次
2 回答
5
您可以umask()
在 fopen() 调用之前立即使用,但如果您在多线程服务器上,则不应使用 umask - 它会更改所有线程的掩码(例如,此更改是在进程级别),而不是只是您将要在其中使用 fopen() 的那个。
例如
$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
于 2013-05-21T14:37:04.207 回答
2
与 Linux 一样,PHP 有一个 chmod() 命令,可以调用该命令来更改文件权限。
请参阅此处的文档:http: //php.net/manual/en/function.chmod.php
对于默认设置,您可以尝试Patrick Fisher在这里所说的:设置 Apache 用户的 umask
[root ~]$ echo "umask 000" >> /etc/sysconfig/httpd
[root ~]$ service httpd restart
于 2013-05-21T14:23:28.130 回答