Сценарий PHP, не могущий создать каталог с 777 полномочиями

У меня есть сценарий, который автоматически создает каталог, если он не существует и устанавливает полномочия на 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
1
задан 1 September 2014 в 21:52

1 ответ

www-data пользователь, которого apache2 веб-сервер выполняет как в Ubuntu. (Обычно, что у пользователя есть UID 33, число, которое Вы видите.) Так созданное использование файлов веб-сервера принадлежат тому файлу. Когда Вы создаете файл таким образом, , umask сервера играет роль, и любыми полномочиями, которые Вы устанавливаете, управляет umask.

можно работать вокруг этого тремя способами:

  1. Использование chmod PHP функционируют для установки разрешения после создания.
  2. Использование umask PHP функционируют для установки umask перед созданием. Предупредите, это установит umask для всех потоков в многопоточном сервере и может иметь непреднамеренные последствия.
  3. Набор umask для самого веб-сервера. Это хуже, чем (2) в том каждом процессе, и каждый сайт, настроенный в сервере, затронут.

наилучший вариант состоит в том, чтобы использовать (1). Взгляните на это, ТАК ответьте за пример (1), это ТАК вопрос для обсуждения (2) и этот вопрос о SF для примера (3).

4
ответ дан 10 November 2019 в 18:44

Другие вопросы по тегам:

Похожие вопросы: