必须用 composer create-project drupal/recommended-project,因其预置 installer-paths 和 drupal-scaffold 钩子,确保 web/ 目录结构完整、autoload 正常、Drush 可识别 settings.php;手动安装 drupal/core 会绕过这些机制,导致 web/ 缺失、站点 500 或升级失败。

必须用 composer create-project drupal/recommended-project,其他方式(如解压 tar 包、composer init 后手动加 drupal/core)会导致 web/ 目录缺失、vendor/autoload.php 不可用、Drush 找不到 settings.php,后续升级必然失败。
为什么不能跳过 recommended-project 直接装 core
Drupal 10 的自动加载、模块安装路径、核心文件生成(如 web/index.php、web/.htaccess)全部依赖 drupal/recommended-project 中预置的 installer-paths 和 drupal-scaffold 钩子。手动引入 drupal/core 会绕过这些机制,结果就是:web/ 目录为空或不完整,drush status 报 Could not find a Drupal settings.php file,站点直接 500。
- 官方 tar 包(如
drupal-10.2.0.tar.gz)是为 FTP 部署设计的,结构平铺(core/、modules/在根目录),与 Composer 要求的web/文档根结构冲突 -
composer require drupal/core在空项目中会触发错误的文件复制逻辑,drupal-composer-scaffold插件无法正常运行 - 即使临时能访问首页,
composer update后大概率清空web/内容,因为缺少core-recommended的版本约束和 scaffold 回调
执行 create-project 时的关键参数和路径要求
命令必须在**完全空白的目录**中运行,且目标路径不能包含已有 composer.json 或 vendor/。否则会报错或覆盖已有配置。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 指定精确版本更安全:例如
composer create-project drupal/recommended-project:10.2.0 my-site,避免用dev-main或不带版本号(可能拉到不稳定快照) - 宝塔等面板环境需注意:命令末尾用
"./"表示当前目录,如composer create-project drupal/recommended-project:10.2.0 "./" - 运行后立刻检查
my-site/web/index.php是否存在、my-site/web/sites/default/settings.php是否已生成(若无,需从default.settings.php复制并设权限为 644) - PHP CLI 版本必须 ≥ 8.1:
php -v验证;Windows 用户确认openssl和mbstring已启用
安装后必须做的三件事
刚跑完 create-project 只是骨架就绪,离可运行还差关键几步。漏掉任一环节都会卡在安装向导或后台白屏。
- Web 服务器 DocumentRoot 必须指向
my-site/web/(不是项目根目录),Nginx/Apache 配置里别写错路径 - 确保
my-site/web/sites/default/可写(尤其是settings.php和files/),Linux 下常用chmod 755 sites/default && chmod 644 sites/default/settings.php - 生产环境部署前务必运行
composer install --no-dev --optimize-autoloader,否则vendor/autoload.php加载慢,且开发依赖可能引发安全隐患
常见卡点:zlib_decode() error 和 web/index.php 404
前者几乎全是 Composer 缓存损坏导致,后者基本是 drupal/core 被意外降级或 scaffold 失败。
-
zlib_decode(): data error:立即执行composer clear-cache,再重试create-project -
web/index.php 404:运行composer show drupal/core看实际安装版本,若低于项目要求(如显示 9.5.x),说明composer.json被污染或锁定了旧版;用composer why-not drupal/core:10.2.0查哪个包在阻断升级 - 模块安装中途卡住(如
drupal/pathauto):改用两步法 —— 先composer require drupal/pathauto --no-update,再composer update,避免 scaffold 阶段因网络或权限中断
最易被忽略的是:所有操作必须在项目根目录(含 composer.json 和 web/ 的那一层)执行,进到 web/ 里再跑 composer 命令,100% 失效。

















