У меня проблема с экземпляром ubuntu (Ubuntu 20.04.1 LTS) и apache2 (Apache / 2.4.41 (Ubuntu)). Один виртуальный хост обслуживает некоторые html-файлы и документы из смонтированного общего ресурса cifs. Cifs-share работает нормально, файлы в файловой системе верны.
Однако apache не может генерировать правильные ответы для каждого типа файла, который обслуживается в двоичном формате (например, изображения, текстовые документы, PDF-файлы и т. Д.). Например, когда я загружаю изображение image.gif
, файл загружается и сохраняется на клиенте. При открытии файла в текстовом редакторе на клиенте это выглядит следующим образом:
grade, Keep-Alive
Last-Modified: Thu, 12 Nov 2020 10:01:47 GMT
ETag: "b6b-5b3e600040144"
Accept-Ranges: bytes
Content-Length: 2923
Keep-Alive: timeout=5, max=100
Content-Type: image/gif
GIF89av[binary-string starting...]
Итак, часть заголовков ответов теперь находится в загруженном файле, чего никогда не должно происходить. Я ожидаю, что загруженный файл будет начинаться с GIF89av
и так далее. Обслуживание текстовых файлов (например, html) не является проблемой и работает должным образом.
Однако, когда я копирую тот же файл в корень документа другого виртуального хоста на том же сервере, который не использует смонтированный cifs-share, файл обслуживается правильно (без заголовков ответов в нем).
Итак, я предполагаю, что в этой комбинации смонтированных cifs-share и apache2 есть некоторая проблема, которая приводит к этой ошибке.
Я уже пробовал различные варианты монтирования общего ресурса - но, на мой взгляд, это правильно, поскольку файлы работают непосредственно в файловой системе без apache.
Общий ресурс смонтирован в / etc / fstab
, как описано в
//192.168.0.1/share$ /mnt/share cifs username=user,password=pass,dom=contoso.local 0 0
, что в значительной степени является самым простым способом сделать это. Я испытал такие параметры, как iocharset = utf8
, пробовал разные версии ( vers = 1.0
или vers = 3.1
), но это ничего не изменило. Конфигурация apache также является базовой, поставляется с ubunutu 20, ничего особенного там не добавлено и не изменилось. Я немного столкнулся с mime-типами, но apache должен иметь возможность обслуживать изображение из коробки.
Кроме того, я запустил php-webserver ( php -S 192.168.0.2:8000
) для тестирования в этом каталоге, который возвращает правильные двоичные файлы, что дает мне уверенность, что ошибка где-то в апач.
Что приводит к повреждению ответов Apache и как это исправить?
У меня такая же проблема, похоже, эта проблема возникла недавно, возможно, она связана с версией ядра 20.04? Я также вижу проблему с обычными текстовыми файлами. Удалось ли вам найти решение/обходной путь? (Извините, у меня нет представителя, чтобы оставить комментарий)
Изменить: Я смог найти отчет об ошибке здесь: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900821 У меня сработало отключение EnableMMAP в конфигурации apache:
EnableMMAP off