Composer安装Yii2框架教程 一键下载Yii2高级版方法【演示】

5次阅读

直接用 composer create-project 命令可快速安装 yii2 高级模板,但常因 php 版本低于7.4、官方源慢、未配国内镜像及忽略 init 脚本而失败;推荐使用 –prefer-dist –no-scripts 参数组合,并手动运行 php init 初始化。

Composer安装Yii2框架教程 一键下载Yii2高级版方法【演示】

直接用 composer create-project 命令就能拉下 Yii2 高级模板,不需要手动下载 ZIP 或配置 git 子模块——但默认命令会卡在权限、镜像、PHP 版本三道坎上。

为什么 composer create-project yiisoft/yii2-app-advanced 经常失败

这个命令本身没错,但实际执行时大概率报错,常见原因有:

  • yii2-app-advancedcomposer.json 要求 PHP >= 7.4,而本地是 7.3 或更低版本 → 直接终止
  • 官方源响应慢或超时,尤其在国内,composer install 阶段卡在 cloning yii2resolving dependencies
  • 未提前设置国内镜像(如阿里云、腾讯云),Composer 默认走 packagist.org,DNS 解析+连接不稳定
  • 高级模板需要运行 init 脚本切换开发/生产环境,但很多人忽略这步,导致 frontend/web/index.php 报 500 错误

推荐命令:带镜像 + 指定 PHP 版本兼容写法

一行命令搞定下载 + 安装 + 初始化,前提是已安装 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 覆盖所有已有文件(避免残留旧配置)

必须改的两个路径配置(否则 404)

Yii2 高级版默认不启用 apache/nginxDocumentRoot 重写规则,访问 http://localhost/ 会 404。关键要确认两处:

  • Web 服务器入口必须指向 frontend/web/(不是项目根目录),例如 Nginx 的 root 设为 /path/to/advanced-project/frontend/web
  • frontend/config/main-local.php 中的 'cookieValidationKey' 必须非空,否则登录页白屏;若为空,可临时设为 'cookieValidationKey' => 'random-String-here'

高级模板里 backendfrontend 是分离应用,共用一套 common,但路由、数据库配置、用户认证逻辑各自独立——这点容易被忽略,导致改了 frontend 的 DB 配置,backend 还连着旧库。

text=ZqhQzanResources