Хранилище файлов Drupal 9 в службе приложений Azure

Я боролся с проблемой для месяц сейчас. Установите Drupal 9 в службе приложений Azure с образами докеров под управлением php8 (базовый образ drupal: 9.1.7-php8.0-apache). Я обнаружил, что есть два способа создания общедоступных файлов «sites / default / files» каталог, обслуживаемый в azure:

Символьная ссылка "sites / default / files" с папкой "/ home / files" и для WEBSITES_ENABLE_APP_SERVICE_STORAGE значение true в настройках приложения. Подключите общий файловый ресурс Azure непосредственно поверх "sites /" default / files "с использованием сопоставления путей (в настоящее время находится в предварительной версии). Оба варианта работают, мои файлы успешно загружены, и я могу видеть их в хранилищах. Drupal также видит эти файлы, НО каждый раз, когда я пытаюсь получить доступ к любому из загруженных файлов, я получаю ошибку 500 с единственной ошибкой Failed to forward request to application. Обнаружено исключение System.Net.Http.HttpRequestException после 119.915 мс с сообщением: Получена недопустимая строка состояния: 'anges: bytes'. Проверьте журналы приложения, чтобы убедиться, что приложение правильно обрабатывает HTTP-трафик. Если я удалю загруженный файл, приложение отреагирует и покажет, что файл не найден.

Кажется, что лазурь обычно обслуживает только текстовые файлы, потому что файлы css / js / txt доставляются нормально, только изображения. Допустим, я загружаю изображение sample.png, оно показывает ошибку 500. Если я изменю это изображение на образец.txt, он без проблем показывает даже не текст, а все изображение, если я загружу этот файл sample.txt и поменяю его на sample.png, изображение будет нормально отображаться в Windows. Поэтому я предполагаю, что это проблема только с изображениями (EDIT: пробовал .zip и .docx, также получая ошибку 500).

Если я отключу постоянное хранилище (любой из параметров, упомянутых выше), файлы будут загружены правильно, ошибок не будет, но проблема в том, что каждый раз при перезапуске или развертывании приложения файлы исчезают.

В журнале Drupal нет ошибок. Журналы Apache больше не содержат полезной информации (GET, похоже, в порядке и возвращает 200). Пробовали возиться с apache.conf, с php.ini, с обоими файлами .htaccess, допускающими всевозможные неприятности, но до сих пор понятия не имею. Несколько коллег изучали это, и, похоже, ничего не работает.

0
задан 18 May 2021 в 18:14
1 ответ

Быстрое обновление: пробовал все, что мог вообразить. Если бы множество людей пытались помочь, но появляется та же ошибка 500 или 502. Две недели нет ответа от службы поддержки microsoft.

Создал новую службу приложений не с контейнерами докеров, а с php 7.4, и вручную загрузил все файлы drupal в / home / site / wwwroot, также установил для WEBSITES_ENABLE_APP_SERVICE_STORAGE значение true, чтобы каталог / home оставался постоянным, и Интернет, похоже, работал нормально, файлы все в порядке.

В предыдущих попытках и сейчас azure ssh показывает все файлы внутри / home dir как никто: nogroup 777 будет исследовать это дальше, так как это может привести к некоторым проблемам безопасности, если это правда (но проверил файлы settings.php и т. Д., И они защищены как минимум от веб-доступа)

0
ответ дан 28 July 2021 в 14:41

Теги

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