You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整Drupal9项目文件夹结构,实现直接通过项目名路径运行项目

解决Drupal9 Composer项目根目录直接访问的问题

你之前的操作破坏了Drupal Composer项目默认的路径映射关系和自动加载配置,才会导致无法正常运行。按以下两种方案操作即可:

方案1(推荐):调整Web服务器站点根目录配置

无需修改任何项目文件,不影响后续Composer更新、Drupal核心/扩展升级,是官方推荐的使用方式:

  • 若使用Apache,修改站点的DocumentRoot配置为/path/to/your/project_name/web,同步调整对应<Directory>段的路径为相同值,重启Apache后生效
  • 若使用Nginx,修改server块内的root配置为/path/to/your/project_name/web,重载Nginx配置后生效
  • 若使用XAMPP、WAMP等本地集成环境,直接修改站点根目录指向到project_name/web文件夹即可
  • 若使用Drupal自带的临时开发服务器,在project_name根目录下执行命令:php -S localhost:8000 -t web,直接访问localhost:8000即可正常运行

方案2:调整项目结构将Web入口移到根目录

如果确实要求项目根目录就是Web访问根目录,按以下步骤操作:

  1. 进入project_name根目录,将web文件夹内部的所有文件和子文件夹剪切到project_name根目录,不需要移动vendor、composer.json等本来就在根目录的文件
  2. 打开根目录下的composer.json,找到extra配置段,修改web-root路径和扩展安装路径配置:
"extra": {
    "drupal-scaffold": {
        "locations": {
            "web-root": "./"
        }
    },
    "installer-paths": {
        "core": ["type:drupal-core"],
        "libraries/{$name}": ["type:drupal-library"],
        "modules/contrib/{$name}": ["type:drupal-module"],
        "profiles/contrib/{$name}": ["type:drupal-profile"],
        "themes/contrib/{$name}": ["type:drupal-theme"],
        "drush/Commands/contrib/{$name}": ["type:drupal-drush"],
        "modules/custom/{$name}": ["type:drupal-custom-module"],
        "themes/custom/{$name}": ["type:drupal-custom-theme"]
    }
}
  1. 在项目根目录执行composer dump-autoload重新生成自动加载文件
  2. 清理Drupal缓存:已安装Drush的情况下执行drush cr,未安装Drush则手动删除sites/default/files/php/目录下的所有缓存文件
  3. 检查sites/default/settings.php内的$settings['file_public_path']、$settings['file_private_path']等路径配置,若有基于web目录的相对路径,调整为对应根目录的路径即可

注意:调整完成后后续所有Composer安装、更新操作都可以正常执行,不需要再手动修改文件路径。

内容的提问来源于stack exchange,提问作者user3386779

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:54:02