【问题标题】:Drupal 9 files storage on Azure App serviceAzure App 服务上的 Drupal 9 文件存储
【发布时间】:2021-08-07 17:51:39
【问题描述】:

一个月以来一直在与这个问题作斗争。使用运行 php8 的 docker 镜像在 Azure App 服务上设置 Drupal 9(基础镜像 drupal:9.1.7-php8.0-apache) 我发现有两种方法可以在 azure 中提供“sites/default/files”公共文件目录:

  1. 将“sites/default/files”文件夹符号链接到“/home/files”文件夹,并在应用程序设置中将 WEBSITES_ENABLE_APP_SERVICE_STORAGE 设置为 true。
  2. 使用路径映射将 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


    【解决方案1】:

    在 Dictionary 块中添加 EnableSendfile On 解决了该问题。

    例子:

    <Directory /media/share/www/>
            EnableSendfile On
            Options Indexes FollowSymLinks Includes ExecCGI
            AllowOverride None
            Require all granted
    </Directory>
    

    【讨论】:

    • 如果我们在 appservice 上使用容器,在 wwwroot 文件夹中添加 apache conf 文件是否有效?
    • @Sobiaholic 这对我有用;将上述内容添加到我的容器的 /etc/apache2/apache2.conf 中,目录指向映射到 azure 文件共享的卷路径(即每个 serverfault.com/questions/1086197/…
    【解决方案2】:

    快速更新:尝试了我能想象到的所有最后一件事。有很多人尝试和帮助,但出现相同的错误 500 或 502。两周没有得到微软支持的答复。

    创建新的应用程序服务不是使用 docker 容器而是 php 7.4 并手动将所有 drupal 文件上传到 /home/site/wwwroot,还将 WEBSITES_ENABLE_APP_SERVICE_STORAGE 设置为 true,以便 /home 目录保持持久性并且网络似乎工作得很好,文件都很好。

    在以前的尝试中,现在 azure ssh 将 /home 目录中的所有文件显示为nobody:nogroup 777,将对此进行进一步调查,因为如果这是真的,这可能会导致一些安全问题(但检查了 settings.php 等文件,它们至少受到网络访问的保护)

    【讨论】:

    • 如何配置此选项?我的意思是,你怎么能保存你的文件夹?
    • 我也遇到了同样的问题
    猜你喜欢
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 2022-01-18
    • 2015-05-20
    • 1970-01-01
    • 2021-08-14
    相关资源
    最近更新 更多