Как установить разрешения по умолчанию для новых файлов, созданных с помощью php

Привет я запускаю сервер Centos, и я хочу знать, как я могу установить chmod по умолчанию для вновь созданного файла, который создается php, как fopen. На данный момент он делает 644, но я хочу 666, так где я могу указать этот параметр?

2 ответа

Решение

Как и в Linux, в PHP есть команда chmod(), которая может быть вызвана для изменения прав доступа к файлу.

Смотрите документацию здесь: http://php.net/manual/en/function.chmod.php

Для настройки по умолчанию вы можете попробовать то, о чем здесь говорит Patrick Fisher: Настройка umask пользователя Apache

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

Ты можешь использовать 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
Другие вопросы по тегам