index.php
及assets
等目录置于网站根目录(通常为public_html或www),严格设置文件权限(如755/644),配置好数据库连接信息,并确保服务器满足PHP版本等要求,上传代码后访问域名即可运行。部署Yii2到虚拟主机的完整指南
虚拟主机环境准备
-
确认环境要求
确保虚拟主机满足Yii2最低配置:- PHP ≥ 7.4(推荐8.0+)
- 启用PDO、MySQLi、OpenSSL、GD扩展
- 支持
mod_rewrite
(Apache)或等效URL重写(Nginx) - 禁用
safe_mode
,开启allow_url_fopen
-
验证环境兼容性
通过主机控制面板检查:- PHP版本:执行
<?php phpinfo(); ?>
查看 - 扩展支持:在phpinfo中搜索PDO/MySQLi
- 目录权限:确认可写目录权限≥755
- PHP版本:执行
提示:若环境不满足,联系主机商升级配置或更换主机
项目文件部署流程
步骤1:优化生产环境配置
// config/web.php 修改 'components' => [ 'cache' => [ 'class' => 'yiicachingFileCache', // 文件缓存适配虚拟主机 ], 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, // 隐藏index.php 'rules' => [ ... ], ], ],
步骤2:上传项目文件
- 本地执行生产构建:
composer install --no-dev --optimize-autoloader php yii asset/compress config/assets-prod.php
- 通过FTP/SFTP上传以下目录:
/assets
/config
/vendor
/web
→ 设为网站根目录- 其他必要目录(如/runtime)
步骤3:关键权限配置
chmod 755 runtime # 日志和缓存写入 chmod 755 web/assets # 前端资源编译
安全加固措施
-
目录保护
在虚拟主机控制面板设置:- 禁止访问
/vendor
、/config
目录 - 限制
.env
文件访问(若使用)
- 禁止访问
-
配置robots.txt
User-agent: * Disallow: /backend/ # 保护后台路径 Disallow: /runtime/
-
数据库安全
- 使用独立数据库账号(非root)
- 通过主机面板创建专用数据库
常见问题解决方案
问题1:500内部服务器错误
- 检查点:
- 确认
.htaccess
已上传(Apache环境):RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
- 查看
/runtime/logs/app.log
错误详情
- 确认
问题2:CSS/JS加载失败
- 解决方案:
- 执行资源发布命令:
php yii asset/compress config/assets-prod.php
- 清除浏览器缓存
- 执行资源发布命令:
问题3:数据库连接失败
- 验证
config/db.php
配置:return [ 'dsn' => 'mysql:host=主机商提供的数据库地址;dbname=数据库名', 'username' => '用户前缀_用户名', // 注意主机商命名规则 'password' => '密码', 'charset' => 'utf8', ];
性能优化建议
-
启用OPcache
在主机面板开启PHP OPcache(减少30%+加载时间) -
设置缓存头
在web/.htaccess
添加:<FilesMatch ".(ico|css|js)$"> Header set Cache-Control "max-age=2592000" </FilesMatch>
-
定期清理
添加定时任务清除缓存:# 主机控制面板添加Cron 0 3 * * * /usr/bin/php /path/to/yii cache/flush-all
维护最佳实践
-
更新策略
- 本地测试后通过Git/FTP增量更新
- 避免直接修改生产环境代码
-
备份方案
- 启用主机商每日自动备份
- 使用Yii2备份模块:
php yii backup/create
引用说明
本文操作基于Yii2官方部署文档(Yii Definitive Guide)及主流虚拟主机服务商(如cPanel/Plesk)最佳实践,安全建议参考OWASP Web安全标准,性能方案遵循Google Core Web Vitals优化指南,数据库配置需根据主机商提供的连接参数调整。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/46105.html