Yii2基础版和高级版是两个独立项目骨架,命令、目录结构、启动方式均不同:基础版用composer create-project --prefer-dist yiisoft/yii2-app-basic basic,单入口web/;高级版用composer create-project --prefer-dist yiisoft/yii2-app-advanced advanced,需执行php init并配置前后端DOCUMENT_ROOT。

直接用 composer create-project 装 Yii2,高级版和基础版不是“选模板”,而是两个独立项目骨架,命令不同、目录结构不同、启动方式也不同——装错一个,后续路由、入口文件、配置加载全会出问题。
基础版安装:适合快速验证或轻量后端 API
基础版只有一个 web/ 入口目录,index.php 直接在根下,没有前后端分离的 frontend/backend 结构。它默认不带 Gii、用户登录等模块,更干净。
执行命令:
WOC-YII是rschome.com基于yii framework 1.1.8框架所开发的一款开源简易站群管理系统。它的功能与WOC完全一样。目前版本为V1.3,新版本正在开发中,同时欢迎大家参与到开发中来! WOC-YII 1.3在1.2的基础上优化了登录系统(密码加密),优化了权限控制系统,新增seo管理功能,新增自动安装向导! 程序框架:yiiframework1.1.8 配置文件:p
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
注意点:
-
yiisoft/yii2-app-basic是官方包名,别写成yii2-basic或漏掉yiisoft/命名空间 - 安装后进
basic/目录,用php yii serve启动(PHP 7.4+ 内置服务器),别直接跑web/index.php—— 因为没配 Web 服务器重写规则时,index.php无法正确解析路由 - 数据库配置在
config/db.php,不是main-local.php
高级版安装:适合中大型项目,含前后端分离结构
高级版自带 frontend 和 backend 两个应用,共用 common 层,console 支持命令行任务。但它的入口路径更绕,web/ 不在项目根目录,而是在 frontend/web/ 和 backend/web/ 下。
执行命令:
composer create-project --prefer-dist yiisoft/yii2-app-advanced advanced
关键后续操作:
- 必须先运行
init:进入advanced/目录后执行php init,选Development模式,它会生成environments/下的配置并软链到frontend/web/、backend/web/等位置 - 没跑
init就直接访问frontend/web/index.php,大概率报错Class 'Yii' not found或Invalid Parameter – yii\base\InvalidParamException -
frontend/web/和backend/web/的index.php都要单独配置 Web 服务器的DOCUMENT_ROOT,不能把整个advanced/当根目录
常见错误:composer 安装卡住或报错
Yii2 依赖多,国内直连 Packagist 经常超时或 404。别硬等,优先换源:
- 全局换阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 如果提示
failed to open stream: php_network_getaddresses: getaddrinfo failed,说明 DNS 解析失败,不是网络不通,换源后重试即可 - 遇到
require yisoft/yii2 ~2.0.46报冲突?检查是否本地已装过其他 Yii2 项目并锁定了旧版本,删掉composer.lock和vendor/后重装 - PHP 版本低于 7.4 会直接失败——Yii2.0.x 最低要求 PHP 7.4,
php -v必须确认清楚
装完第一件事:验证 autoloader 和入口路径
不管基础版还是高级版,只要看到 Class 'Yii' not found,90% 是因为 vendor/autoload.php 没被正确引入,或 index.php 找不到 Yii::createWebApplication() 所需的配置路径。
快速自查:
- 打开
web/index.php(基础版)或frontend/web/index.php(高级版),确认第 13 行左右有:require __DIR__ . '/../vendor/autoload.php'; - 确认
../vendor/路径真实存在且可读;高级版里这个..是从web/往上一级,指向的是frontend/目录,不是项目根目录 - 基础版的
config/web.php在根目录下;高级版的对应文件在environments/dev/frontend/config/main-local.php,init后才生效
路径差一级,整个应用就起不来。别跳过 ls -la 看一眼 vendor 和 config 是否真在预期位置。









