Yii2.0.55在宝塔部署需用PHP 7.1、Nginx 1.16.0、MySQL 5.7.19,根目录设为/frontend/web,清除.user.ini属性,配置伪静态规则并禁用upload目录PHP执行,后台可选子域名或二级路径方式部署。

在宝塔面板上部署 Yii2.0.55 框架项目,需避开 PHP 版本不兼容、伪静态失效、.user.ini 权限残留等常见报错,确保框架能正常路由并访问 backend/web 和 frontend/web 入口。
安装匹配的运行环境
进入宝塔面板「软件商店」→ 搜索并安装 Nginx 1.16.0(Yii2.0.55 经测试最稳定)、MySQL 5.7.19、PHP 7.1(【必须用 7.1,PHP 7.2+ 会导致 yii\base\InvalidConfigException 报错】)。
安装完成后点击 PHP 7.1 的「设置」→「配置修改」→ 将 error_reporting 值改为:E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_WARNING → 保存并重启 PHP。
这一步不能跳过,否则 Yii2 启动时会因警告级错误直接中断加载。
上传并解压 Yii2 项目
进入「文件」→ 打开 /www/wwwroot/ 目录 → 点击「上传」按钮,把本地已打包好的 Yii2.0.55 项目(含 advanced 目录结构)压缩包拖入上传区。
上传完毕后,右键该压缩包 →「解压到当前目录」→ 等待解压完成,得到类似 myapp/ 这样的项目根目录。
注意:不要解压进子目录再移动,否则 Composer autoload 路径会错乱。
清理 .user.ini 权限锁
进入项目根目录(如 /www/wwwroot/myapp/),执行终端命令:
chattr -i .user.ini && rm -f .user.ini
这一步必须做——宝塔默认为 PHP 目录生成的 .user.ini 文件带不可修改属性,若不清除,Yii2 会报 Fatal error: require(): Failed opening required 并拒绝加载核心类。
配置 Nginx 伪静态与入口路径
第一步:添加站点
进入「网站」→「添加站点」→ 域名填你的域名或服务器 IP → 根目录选 /www/wwwroot/myapp/frontend/web → 运行目录设为 / → PHP 版本选 7.1 → 提交。
第二步:配置伪静态
点击刚添加的站点 →「设置」→「配置文件」→ 找到 include enable-php-71.conf; 这一行,在它上方插入以下内容:
location / {<br> try_files $uri $uri/ /index.php?$args;<br>}
第三步:禁止 upload 目录执行 PHP(安全加固)
在同一配置文件中,include enable-php-71.conf; 前再加一段:
location ~* ^/upload/.*\.(php|php5)$ {<br> deny all;<br>}
保存后点击「重载配置」。此时访问域名应能显示 Yii2 默认首页。
部署后台入口(backend/web)
方法一:子目录方式(推荐)
在「网站」→「添加站点」中新建一个子站点,域名填 admin.yourdomain.com 或 yourdomain.com/admin,根目录指向 /www/wwwroot/myapp/backend/web,其余配置同 frontend。
方法二:主站二级路径(需改 Yii 配置)
若坚持用 yourdomain.com/backend,需编辑 /www/wwwroot/myapp/backend/config/main.php,在 'urlManager' 中添加:'baseUrl' => '/backend',并在 Nginx 配置中增加 location 块映射路径。
方法三:反向代理(适合已有主站)
进入主站点「设置」→「反向代理」→ 添加代理:
目标 URL 填 http://127.0.0.1:8081,然后在终端中用 php yii serve --port=8081 启动 backend 内置服务(仅调试用,生产环境不推荐)。


















