drupal - DDEV Drupal 环境中的私有(private)文件

标签 drupal ddev

这里有一些神秘的东西:我正在使用 Docker 和 DDEV 在 Windows WSL2 上运行 Drupal 9 安装,效果很好。现在我决定为图像设置一个私有(private)文件目录。我已经按照所有说明(例如,与 web 目录处于同一级别的私有(private)目录)这样做了。我对 cPanel 上的实时服务器做了同样的事情。然后我创建了一个只有图像字段的简单测试实体,指定上传的图像进入私有(private)目录。

cPanel 服务器版本的工作完全符合预期——当我创建一个新的图像实体时,该图像直接进入了私有(private)目录。所以我很确定我的程序是正确的。

但是 DDEV 版本做了一些神秘的事情。当我创建一个新的图像实体时,一切都很顺利,实体已创建,我可以看到图像等。但是私有(private)目录是空的。此外,如果我搜索整个 WSL2 文件系统,也找不到图像文件。然而它就在那里,在某个地方。我已经创建了几个这样的实体,现在有大约十个图像文件的一个很好的列表,所有这些都显示得很好。并且所有这些在 WSL2 文件系统中都找不到(至少通过文件名搜索),并且肯定不在指定的私有(private)目录中。

那么他们在哪里??关于这个谜团有什么想法吗? :-)

谢谢!

附言我只注意到一条线索。第一次,我不小心将我的私有(private)文件目录指定在 web 目录下面。然后它正常工作,我看到了上传的图像文件。但是如您所知,说明是它不应该在 web 目录中,而应该在它之外,而不是 HTTPS 可访问的。所以也许 DDEV 具有某种不寻常的特性,这使得在 Web 目录之外拥有私有(private)目录成为一个问题。

最佳答案

要在 ddev 中使用 Drupal 8.9 配置私有(private)文件系统,请执行以下操作:

  1. 在/var/www/html 中创建私有(private)文件夹,例如/var/www/html/privatefiles(不在 html 之上,它会在 ddev 重启时被删除)

  2. 确保该文件夹可由网络服务器写入,如网络文件夹

     drwxr-xr-x  2 myuser   myuser  4096 january  15 16:36 privatefiles/
     drwxr-xr-x  8 myuser   myuser  4096 january  15 18:59 web/
    
  3. 在您的 settings.php 中设置 $settings['file_private_path'] 值

     $settings['file_private_path'] = '/var/www/html/privatefiles';
    
  4. 清除缓存,Drupal 将在您指定的文件夹中生成适当的 .htaccess 文件

  5. 确认在 admin/report/status 中未发现文件系统或私有(private)文件目录错误。可以在 admin/config/media/file-system 查看设置。

关于drupal - DDEV Drupal 环境中的私有(private)文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64370060/

相关文章:

drupal - 如何将摘要行添加到 Drupal View ?

php - Drupal hook_submit写入数据库

php - 如何使用 ddev 和 PhpStorm 逐步调试 drush 命令?

drupal - 自定义 Drupal 模块不创建任何表

drupal - 通过 Paypal 在 5 个月内处理信用卡

ruby-on-rails - Drupal 没有 "Community Plumbing"了?我的下一步发展该怎么做?

docker - Web和数据库容器旁边的ddev设置中的其他SQL Server数据库容器

svg - 如何为 Imagemagick 启用 SVG 支持

ubuntu - 操作系统升级期间 Docker 卷丢失(和 DDEV 数据库)

php - 在带有 .htaccess 的 .html 页面上运行 php