【发布时间】:2021-08-07 17:51:39
【问题描述】:
一个月以来一直在与这个问题作斗争。使用运行 php8 的 docker 镜像在 Azure App 服务上设置 Drupal 9(基础镜像 drupal:9.1.7-php8.0-apache) 我发现有两种方法可以在 azure 中提供“sites/default/files”公共文件目录:
- 将“sites/default/files”文件夹符号链接到“/home/files”文件夹,并在应用程序设置中将 WEBSITES_ENABLE_APP_SERVICE_STORAGE 设置为 true。
- 使用路径映射将 Azure 文件共享直接装载到“sites/default/files”文件夹的顶部(当前处于预览状态)。
这两个选项都有效,我的文件已成功上传,我可以在存储中看到它们。 Drupal 也可以看到这些文件,但是每次我尝试访问任何上传的文件时,都会收到 500 错误,唯一的错误是 Failed to forward request to application. Encountered a System.Net.Http.HttpRequestException exception after 119.915ms with message: Received an invalid status line: 'anges: bytes'.. Check application logs to verify the application is properly handling HTTP traffic. 如果我删除上传的文件,应用程序会做出反应并显示找不到该文件。
如果我禁用持久存储(上述任何选项),文件会正确上传,不会显示任何错误,但问题是每次重新启动或部署应用程序时,文件都会消失。
Drupal 的日志中没有错误。 Apache 日志没有更多有用的信息(GET 似乎没问题并返回 200)。尝试过使用 apache.conf,使用 php.ini,使用两个 .htaccess 文件来允许各种讨厌的事情,但仍然没有任何线索。让多个同事对此进行了调查,但似乎没有任何效果。
【问题讨论】:
标签: azure docker file drupal storage