用 composer create-project 安装 yii2 最稳妥,标准版推荐新手;基础版执行 php yii serve,高级版必须先运行 ./init 初始化配置,否则数据库等组件无法使用。

直接用 composer create-project 就能装好 Yii2,但默认装的是 2.0.x 的稳定版(如 2.0.49),不是最新 RC 或 dev 分支;想装特定版本或跳过交互式配置,得加参数或改配置。
用 create-project 装标准版(推荐新手)
这是最稳妥的方式,会自动拉取 yiisoft/yii2-app-basic 或 yiisoft/yii2-app-advanced 模板,并执行初始化脚本。
- 装基础版:
composer create-project --prefer-dist yiisoft/yii2-app-basic basic - 装高级版:
composer create-project --prefer-dist yiisoft/yii2-app-advanced advanced - 加
--stability=dev才能装带-dev后缀的开发版(比如2.0.x-dev),否则即使指定"2.0.x@dev"也会被忽略 - 如果本地已存在同名目录,
create-project会报错退出,不会覆盖;要重装得先删掉目录 - 国内用户建议提前配好阿里云或腾讯云镜像源,否则
composer install阶段容易卡在yiisoft/yii2包上
require 方式只适合已有项目追加 Yii2 组件
别用 composer require yiisoft/yii2 往空项目里硬塞核心包——Yii2 不是普通库,它依赖模板结构、引导文件(web/index.php)、配置约定。单独 require 只会得到一堆类,跑不起来。
- 仅适用于:你已在维护一个非 Yii 项目,想局部引入
yii\helpers\ArrayHelper这类工具类 - 若真要集成完整框架,必须从模板起步,或手动补全
config/、controllers/、runtime/等目录和权限设置 -
require时注意 PHP 版本约束:yiisoft/yii22.0.40+ 要求 PHP >= 7.4,低于该版本会触发Your requirements could not be resolved
安装后立刻检查 composer.lock 和 vendor/yiisoft/yii2/VERSION
Yii2 的实际运行版本不看 composer.json 里写的,而取决于 composer.lock 锁定的提交哈希或 tag;有时 composer update 会意外升到不兼容的 minor 版(比如 2.0.48 → 2.0.49),导致 ArrayHelper::merge() 行为变化。
- 执行
cat vendor/yiisoft/yii2/VERSION确认真实版本号 - 对比
composer.lock中yiisoft/yii2条目的version字段,确保和文档/团队约定一致 - 如果项目需长期稳定,建议把
"yiisoft/yii2": "2.0.48.0"写死(带补零),避免 Composer 把2.0.48解析成2.0.48.0或2.0.48.999
最常被跳过的一步:装完立刻跑 php yii serve(基础版)或 ./init(高级版)。不执行初始化,environments/ 不会复制到 common/config/,console/config/main.php 里数据库配置还是占位符——这时候连 php yii migrate 都会报错说找不到 db 组件。










