Когда я загружаю файлы через php, он записывает файл с правами 644 (-rw-r - r--).
У меня настроена папка / var / www / html с setgid, поэтому все загруженные файлы относятся к группе, которой должен быть разрешен явный доступ (FTP и т. Д.). Однако разрешения 644 не позволяют группе файла записывать, что является проблемой.
Как я могу настроить apache2, чтобы все файлы / каталоги, созданные www-data в папке / var / www / html, имели установленные для них разрешения 775 (-rwxrwxr-x)?
Я запускаю Ubuntu 14.04 на виртуальной машине DigitalOcean с Apache 2.2.
Apache наследует umask
из его родительского процесса (то есть процесса, запускающего Apache). Обычно это должен быть /etc/init.d/{apache,httpd}
сценарий. Таким образом, вы можете поместить в этот сценарий команду umask.
# echo "umask 002" >> /etc/init.d/httpd
а потом:
# /etc/init.d/httpd restart
Или вы также можете запустить эту команду:
# echo "umask 002" >> /etc/sysconfig/httpd
а потом
# /etc/init.d/httpd restart
Вы можете изменить разрешения после загрузки файла с помощью функции php chmod
.
http://php.net/manual/en/function.chmod.php