应使用 composer create-project 安装 yii2,它自动拉取完整骨架(含 web 入口、配置、基础命令),避免手动 require 导致的 404、命令缺失等问题;基础版用 yii2-app-basic,高级版用 yii2-app-advanced,并加 --stability=stable 防 dev 分支。

phpEnv 本身不直接“安装 Yii”,它只是个 PHP 版本管理工具(类似 pyenv、nvm),真正安装 Yii 的动作仍由 Composer 完成。你得先用 phpEnv 切到兼容版本(PHP ≥7.4),再用 composer create-project 拉项目,否则会卡在扩展缺失或类找不到的错误里。
确认 phpEnv 已激活正确 PHP 版本
Yii2 不支持 PHP 7.3 及以下,而 phpEnv 默认可能装的是旧版。别只看 php -v 输出,还要检查实际加载的 php.ini:
- 运行
php --ini看 CLI 模式用的是哪个配置文件 - 执行
php -m | grep -E "pdo|mbstring|openssl",确保pdo_mysql(非仅pdo)、mbstring、openssl都在列表中 - 如果缺扩展,需编辑对应 php.ini(路径来自
php --ini),取消注释如extension=mbstring这类行,然后重启终端或重新phpenv rehash
用 Composer 创建 Yii2 项目时绕过常见卡点
phpEnv 环境下 Composer 极易因网络或权限失败,尤其在国内。不是 Yii 有问题,而是环境没通:
- 先设国内镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 避免首次拉项目时被 GitHub API 限流:提前登录 GitHub 并生成 Personal Token,再执行
composer config -g github-oauth.github.com your_token_here - 用最小验证命令测试是否真能跑通:
composer create-project --no-install yiisoft/yii2-app-basic test && echo "OK",成功再进目录composer install --no-dev - 别用
--prefer-source——它会 clone 大量 git 仓库,在 phpEnv 下容易超时或权限错乱
Web 服务器入口必须指向 web/ 目录
phpEnv 不提供 Apache/Nginx,你得自己配 Web 服务(比如用 php -S 或 Nginx)。无论哪种,DocumentRoot 必须是项目里的 web/ 子目录,不是项目根目录:
- 用 PHP 内置服务器调试:
cd yii-basic && php -S localhost:8000 -t web/,否则会报Class 'Yii' not found - 若配 Nginx,
root指向/path/to/yii-basic/web,且必须加 URL 重写规则(try_files $uri $uri/ /index.php?$args),否则/site/about这类路由 404 -
runtime/和assets/目录需可写,Linux 下常用chmod 755 runtime assets,Windows 下注意杀毒软件可能拦截写入
cookieValidationKey 必须手动补全(归档方式才需)
用 phpEnv + Composer 安装时,cookieValidationKey 会自动生成;但如果你是解压官方归档包再丢进 phpEnv 环境,这个密钥为空,会导致所有表单提交失败、CSRF 验证不通过:
- 打开
config/web.php,找到'cookieValidationKey' => ''这一行 - 替换成至少 32 位随机字符串,例如:
'cookieValidationKey' => 'Zk9XQ3JjRmFyUWxTbGhKdU1vRnNjV2xL' - 别用时间戳、简单数字或中文——PHP 会静默忽略非法字符,导致 key 实际为空
最常被忽略的是 phpEnv 和 Web 服务的耦合点:phpEnv 管 PHP 版本和 CLI,但 Web 服务(如 Nginx+PHP-FPM)可能用的是系统默认 PHP 或另一个 phpEnv 版本。务必确认 php-fpm -v 和 php -v 输出一致,否则 phpinfo() 里看到的扩展和你 CLI 下验证的根本不是一回事。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











