yii2启动失败主因是入口路径错误或环境不全:basic版可直接php yii serve,advanced版必须指定--docroot="frontend/web/"或--docroot="backend/web/";需确保php 7.4+及openssl、mbstring、pdo等扩展启用,并验证index.php中require __dir__ . '/../vendor/autoload.php'路径正确。

Yii2安装后无法启动,多数不是框架坏了,而是没找准入口位置或环境没配齐。特别是用php yii serve时直接报错“Document root does not exist”,本质是命令找不到web/目录——它压根不知道该跑前台还是后台。
高级版必须手动指定 web 目录
Basic模板执行php yii serve能默认运行,因为只有一个web/;Advanced模板含frontend和backend两个独立应用,内置服务器不支持自动识别。
- 启动前台:运行
php yii serve --docroot="frontend/web/" - 启动后台:运行
php yii serve --docroot="backend/web/" - 不能省略
--docroot参数,否则会默认找console/web这类根本不存在的路径
确认 PHP 环境已就绪
内置服务器依赖 PHP 自带的 CLI SAPI,但很多本地环境(如phpEnv、旧版WAMP)默认禁用关键扩展或路径混乱。
- 终端执行
php -v,确保版本≥7.4(推荐8.1–8.2) - 运行
php -m | grep -E "openssl|mbstring|pdo|curl"(macOS/Linux)或逐个检查php -m输出(Windows),缺一不可 - 若
php --ini显示配置文件路径异常(比如指向空目录),说明PHP未正确加载php.ini,需手动指定:php -c /path/to/php.ini yii serve --docroot=...
绕过 web 服务器配置的快捷验证法
不用配Nginx/Apache也能快速验证项目是否健康,关键是让index.php能被正确加载并找到vendor/autoload.php。
- 进入
frontend/web或backend/web目录,直接运行:php index.php - 如果报
Class 'Yii' not found,说明vendor/autoload.php路径错误——检查index.php中require __DIR__ . '/../vendor/autoload.php';的相对路径是否准确 - 若提示
failed to open stream: No such file or directory,大概率是当前工作目录不在web/下,先cd进去再试
别用 phpEnv 或精简包跑 Yii2
phpEnv、某些绿色版集成包因缺失Composer支持、扩展硬编码、php.ini路径错乱,会导致composer install静默失败或autoload.php无法注册。
- Windows推荐用XAMPP(勾选openssl/mbstring/pdo)或官方PHP二进制包+手动配置PATH
- macOS建议用Homebrew安装PHP:
brew install php,再全局安装Composer - Linux用户优先用
ondrej/phpPPA源安装,避免系统默认PHP版本过低或扩展缺失











