Yii2.0.55和Yii1.1部署后需依次验证入口可访问性、框架初始化、数据库连接及关键路由响应:Yii2须将宝塔根目录设为/web,访问根URL应显示“Congratulations!”;Yii1.1需带index.php访问并确保require_once路径正确;均需通过命令行或代码验证DB连接激活;路由测试需确认伪静态生效且CSRF在测试环境关闭。

Yii2.0.55和Yii1.1项目部署完成后,需分别验证入口文件可访问性、框架初始化状态、数据库连接可用性及关键路由响应是否正常,避免因目录结构错位、PHP版本不兼容或配置未生效导致白屏或500错误。
Yii2.0.55部署后验证入口与基础响应
打开浏览器,访问站点根URL(如http://your-domain.com/),观察是否显示“Congratulations!”欢迎页。
若返回403/404,说明宝塔站点根目录未设为/web子目录——【必须将宝塔网站根目录指向项目/web目录,而非项目根目录】。
若返回500且日志中出现Failed opening required '.../requirements.php',证明入口文件加载路径错误,根源仍是根目录高了一级。
执行命令验证PHP环境:进入项目根目录→php yii serve --port=8080→访问http://localhost:8080。能正常打开即排除代码层问题,聚焦服务器配置。
Yii1.1部署后验证index.php能否触发框架启动
直接访问http://your-domain.com/index.php(注意带index.php),页面应显示首页内容或重定向到登录页。
若报错Fatal error: Class 'Yii' not found,检查index.php中require_once($yii);路径是否正确——Yii1.1的$yii变量通常指向framework/yii.php,路径错则整个框架无法加载。
若页面空白但HTTP状态码为200,开启PHP错误显示:在index.php顶部加入ini_set('display_errors', 1); error_reporting(E_ALL);,刷新即可暴露致命错误。
统一验证数据库连接是否就绪
方法一:运行命令行检测(推荐)
进入项目根目录→执行php protected/yiic shell(Yii1.1)或php yii(Yii2)→输入db(Yii2)或echo Yii::app()->db->connectionString;(Yii1.1)→无报错即连接配置已加载。
方法二:临时加诊断代码
在index.php末尾追加:var_dump(Yii::app()->db->getActive());(Yii1.1)或var_dump(\Yii::$app->db->getIsActive());(Yii2)→返回true表示连接已激活。
注意:Yii1.1中若protected/config/main.php里'connectionString'值含中文或空格未转义,会导致PDO构造失败且无明确提示——请用urlencode()处理特殊字符。
验证关键业务路由是否可响应
第一步:确认URL规则启用状态
Yii2:检查config/web.php中'urlManager'是否启用'enablePrettyUrl' => true,并确认伪静态已生效(宝塔选Laravel5模板或手动填Nginx规则)。
第二步:测试核心路由
访问http://your-domain.com/site/login(Yii2)或http://your-domain.com/index.php?r=site/login(Yii1.1)→应返回登录表单HTML,而非404或空白页。
第三步:检查CSRF是否干扰测试
若验收测试中表单提交返回400,立即检查tests/_config/test.php(Yii2)或protected/tests/bootstrap.php(Yii1.1)中是否关闭CSRF:'enableCsrfValidation' => false。
这一步操作起来很简单,直接把enableCsrfValidation设为false就行,否则所有POST请求都会被拦截。


















