
直接用 composer create-project 命令可快速安装 Yii2 高级模板,但常因 PHP 版本低于7.4、官方源慢、未配国内镜像及忽略 init 脚本而失败;推荐使用 --prefer-dist --no-scripts 参数组合,并手动运行 php init 初始化。
直接用 composer create-project 命令就能拉下 Yii2 高级模板,不需要手动下载 ZIP 或配置 Git 子模块——但默认命令会卡在权限、镜像、PHP 版本三道坎上。
composer create-project yiisoft/yii2-app-advanced 经常失败这个命令本身没错,但实际执行时大概率报错,常见原因有:
yii2-app-advanced 的 composer.json 要求 PHP >= 7.4,而本地是 7.3 或更低版本 → 直接终止composer install 阶段卡在 cloning yii2 或 resolving dependencies
init 脚本切换开发/生产环境,但很多人忽略这步,导致 frontend/web/index.php 报 500 错误一行命令搞定下载 + 安装 + 初始化,前提是已安装 Composer 并配置好国内镜像:
composer create-project --prefer-dist --no-scripts yiisoft/yii2-app-advanced advanced-project cd advanced-project php init --env=Development --overwrite=All
说明:
--prefer-dist 强制走压缩包安装,比 --prefer-source 快且稳定--no-scripts 跳过自动执行 post-create-project-cmd,避免因环境不全导致初始化中断php init 必须手动运行,--env=Development 生成可调试的配置,--overwrite=All 覆盖所有已有文件(避免残留旧配置)Yii2 高级版默认不启用 Apache/Nginx 的 DocumentRoot 重写规则,访问 http://localhost/ 会 404。关键要确认两处:
frontend/web/(不是项目根目录),例如 Nginx 的 root 设为 /path/to/advanced-project/frontend/web
frontend/config/main-local.php 中的 'cookieValidationKey' 必须非空,否则登录页白屏;若为空,可临时设为 'cookieValidationKey' => 'random-string-here'
高级模板里 backend 和 frontend 是分离应用,共用一套 common,但路由、数据库配置、用户认证逻辑各自独立——这点容易被忽略,导致改了 frontend 的 DB 配置,backend 还连着旧库。