У меня есть сценарий, который автоматически создает каталог, если он не существует и устанавливает полномочия на 777. Проблема, она только устанавливает полномочия на 755:
if (!file_exists($this->get_upload_dir()))
mkdir($this->get_upload_dir(), 0777);
Если я проверяю владельца каталога, он создал, он показывает www-data [33]
. Я не уверен что 33 средства. www-data
пользователь использование сервера для создания каталогов? Если так, как я могу позволить этому создавать каталог с 777 полномочиями?
Также отметьте, я уже установил следующую команду:
sudo chown -R www-data:www-data /var/www/html
www-data
пользователь, которого apache2
веб-сервер выполняет как в Ubuntu. (Обычно, что у пользователя есть UID 33, число, которое Вы видите.) Так созданное использование файлов веб-сервера принадлежат тому файлу. Когда Вы создаете файл таким образом, , umask сервера играет роль, и любыми полномочиями, которые Вы устанавливаете, управляет umask.
можно работать вокруг этого тремя способами:
chmod
PHP функционируют для установки разрешения после создания. umask
PHP функционируют для установки umask перед созданием. Предупредите, это установит umask для всех потоков в многопоточном сервере и может иметь непреднамеренные последствия. umask
для самого веб-сервера. Это хуже, чем (2) в том каждом процессе, и каждый сайт, настроенный в сервере, затронут. наилучший вариант состоит в том, чтобы использовать (1). Взгляните на это, ТАК ответьте за пример (1), это ТАК вопрос для обсуждения (2) и этот вопрос о SF для примера (3).