Назад |
Перейти на главную страницу
PHP-Script не может создавать каталоги вне корневого веб-сайта
У меня странная проблема с установкой drupal 8 на Ubuntu 18.4.
Модуль Drupal Webform - это не может создать необходимые каталоги. Поэтому загрузка файла не удалась.
Возникает ошибка
- если я использую частную файловую систему Drupal (например, рекомендованную), которая по соображениям безопасности расположена за пределами корневого веб-сервера (виртуальных) серверов.
- только на производственном сервере, а не на моей локальной машине разработки.
Следовательно, это проблема конфигурации сервера.
Что я пробовал:
- Настройка и использование общедоступной файловой системы (расположенной в корневом веб-каталоге): она работает, но представляет собой угрозу безопасности, поэтому на самом деле не является решением.
- Проверяемый владелец файла и разрешение:
- Веб-сервер работает как php-fpm под учетной записью пользователя ftp, проверенной с помощью php_info ().
- все файлы 755, как рекомендуется
- все файлы, принадлежащие ftp-пользователю, под которым работает веб-сервер
- Проверено с помощью chmod до 777: нет эффекта, все равно не работает.
- Создал необходимые каталоги вручную с помощью терминала. Это не было проблемой. Реакция: загрузка файла возможна, скрипт умеет записывать файлы туда. Но это не решение, потому что скрипту необходимо создавать собственные каталоги во время выполнения с именами, которые я не могу предсказать.
- Добавлен путь к частной файловой системе в директиву php open_basedir: без разницы, загрузка по-прежнему не выполняется, не может создавать каталоги.
- Поиск в Интернете нашел еще 2 похожих вопроса -> Я не один, но никто не ответил.
- На вопрос на drupal.stackexchange.com, они говорят, что это не проблема с drupal, а проблема с конфигурацией сервера.
Мои вопросы:
- Есть ли разница на уровне системы Unix или PHP между записью файлов (работает) и созданием каталогов (не удается)?
- Есть ли какая-либо директива apache, которая имеет такое значение?
- Есть ли какая-нибудь переменная php-ini, которую я могу проверить и изменить, чтобы эта работа работала?