Вчера я наконец смог заставить свой процесс apache записывать файлы в каталог, установив для umask значение 002 в скрипте / etc / sysconfig / httpd, но мне было интересно, можно ли установить эту директиву umask на уровне конфигурации?
Я стараюсь сделать это по причинам переносимости, потому что мои конфигурации vhost контролируются версией и публикуются на удаленных серверах. Я бы предпочел, чтобы меня не заставляли вручную настраивать httpd-скрипт каждого сервера (пока марионеток нет).
Спасибо.
-- Редактировать --
Использование Ruby / Capistrano для развертывания кода и файлов конфигурации
Использование PHP mkdir () при создании файлов, загружаемых пользователями.
Вместо того, чтобы устанавливать для каталога значение 777, я создаю конкретного пользователя / группу «filer», которая будет владеть каталогом. Затем добавьте пользователя apache в группу. Если я не установлю umask на 002, то я получаю сообщения об ошибках с отказом в разрешении, потому что пользователь apache! = Пользователь файла, но пользователь apache находится в группе файлов.
Поскольку вы используете код PHP, вы можете просто использовать функции PHP chmod()
и umask()
в зависимости от необходимости.
Основная umask Apache, похоже, настроена только так, как вы уже выяснили, а не где-либо в самой конфигурации, поэтому лучше всего делать это в приложении / коде.