PHP-Script 无法在 Web 根目录之外创建目录

PHP-Script 无法在 Web 根目录之外创建目录

我在 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 问题而是服务器配置问题。

我的问题:

  1. 在 Unix 系统级别或对于 PHP 来说,写入文件(工作)和创建目录(失败)之间有什么区别吗?
  2. 是否有任何 apache 指令可以产生这样的差异?
  3. 是否有任何 php-ini 变量我可以检查并更改以使其正常工作?

相关内容