Как установить разрешения по умолчанию для новых файлов, созданных с помощью 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