我在 Ubuntu 18.4 上安装 drupal 8 时遇到了一个奇怪的问题。
Drupal Webform 模块是无法创建所需的目录.因此文件上传失败。
发生错误
- 如果我使用 Drupal 私有文件系统(如推荐的),出于安全原因,它位于(虚拟)服务器 Web 根目录之外。
- 仅在生产服务器上,而不在我的本地开发机器上。
因此这肯定是服务器配置问题。
我已尝试过:
- 配置和使用公共文件系统(位于 Web 根目录中):它可以工作,但存在安全风险,因此并不是真正的解决方案。
- 检查文件所有者和权限:
- Web 服务器在 ftp-user-account 下作为 php-fpm 运行,并通过 php_info() 进行检查。
- 所有文件均为推荐的 755
- FTP 用户拥有的所有文件,Web 服务器在其下运行
- 测试将 chmod 改为 777:无效果,仍然失败。
- 使用终端手动创建所需目录。这没有问题。反应:可以上传文件,脚本能够在那里写入文件。但这不是解决方案,因为脚本需要在运行时创建自己的目录,其名称我无法预测。
- 将私有文件系统的路径添加到 php 的 open_basedir 指令中:没有区别,上传仍然失败,无法创建目录。
- 在网上搜索发现另外 2 个类似的问题 -> 我不是一个人,但没有人回答。
- 在 drupal.stackexchange.com 上询问,但他们说这不是 drupal 问题而是服务器配置问题。
我的问题:
- 在 Unix 系统级别或对于 PHP 来说,写入文件(工作)和创建目录(失败)之间有什么区别吗?
- 是否有任何 apache 指令可以产生这样的差异?
- 是否有任何 php-ini 变量我可以检查并更改以使其正常工作?