最稳妥的Yii2安装方式是用composer create-project,因其自动配置autoload、脚本钩子和dev依赖,避免yii命令不可用或调试失效;官方提供basic(轻量)和advanced(前后端分离)模板,选型取决于项目规模与目录结构需求。

直接用 composer create-project 安装 Yii2 是最稳妥的方式,不建议手动下载 ZIP 或改 composer.json 后再 composer install —— 容易漏掉 autoload 配置、脚本钩子或 dev 依赖,导致 yii 命令不可用或调试工具失效。
用 create-project 初始化标准应用
Yii2 官方维护两个基础模板:yii2-basic(轻量)和 yii2-app-advanced(前后端分离结构)。选哪个取决于项目规模,不是“高级模板功能更多”,而是目录组织和部署方式不同。
- 新建空目录,执行:
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
- 想用高级模板:
composer create-project --prefer-dist yiisoft/yii2-app-advanced advanced
- 加
--stability=stable可避免意外拉到 RC 版(尤其在 Composer 2.2+ 默认行为更激进时) - 如果卡在
Cloning into ...或提示 GitHub rate limit,说明 Composer 正在走 Git 协议而非 ZIP;加-vvv看日志,然后运行composer config -g github-oauth.github.com "your_token"配置 token
composer.json 里不能删 scripts 和 autoload
Yii2 模板的 composer.json 包含关键配置:比如 "post-create-project-cmd" 自动初始化环境、"autoload-dev" 加载测试类、"psr-4" 映射 @app 别名。删了会导致 Yii::setAlias('@app', ...) 失效,或 phpunit 找不到 TestCase。
- 别手动改
"autoload": {"psr-4": {...}}里的路径,除非你重命名了frontend/或common/目录 -
"scripts"中的"exec 'chmod +x yii'"在 Windows 下会报错,但可忽略——Composer 会跳过非 POSIX 命令 - 如果之后要加扩展(如
yiisoft/yii2-redis),直接composer require yiisoft/yii2-redis,别手写到require里再install
安装后必须跑一次 init 脚本
尤其是 yii2-app-advanced,create-project 只复制骨架,环境配置(开发/生产)、权限、数据库配置占位符都靠 init 生成。跳过这步,访问首页会报 Invalid Configuration – yii\base\InvalidConfigException,因为 environments/dev/frontend/web/index.php 还没被写入真实配置。
- 进入项目根目录,执行:
php init
- 选
0(Development)或1(Production),回车确认 - Windows 用户若提示
'php' is not recognized,请确保 PHP 已加入系统 PATH,或用绝对路径调用,例如:C:\php\php.exe init -
init不会覆盖已修改的配置文件(如common/config/main-local.php),但会跳过未生成的目录(比如你删了environments就彻底无法初始化)
最容易被忽略的是 init 的执行时机和 environments 目录的存在性——很多人以为 create-project 已完成全部设置,结果在 Nginx/Apache 配置完还 500,其实只是 web/index.php 没指向正确的入口配置文件。










