升级指南
本指南将帮助您安全地升级 Yuan-ICP 系统到新版本。
升级前准备
1. 备份重要数据
在开始升级前,请务必备份以下内容:
bash
# 备份数据库文件(如果使用SQLite)
cp data/sqlite.db data/sqlite.db.backup.$(date +%Y%m%d)
# 备份配置文件
cp config/database.php config/database.php.backup.$(date +%Y%m%d)
# 备份上传的文件
tar -czf uploads_backup.$(date +%Y%m%d).tar.gz uploads/
2. 检查系统要求
确保您的服务器满足新版本的环境要求
3. 查看更新日志
查看新版本的更新日志,了解变更内容和注意事项
升级步骤
方法一:手动升级(推荐)
下载新版本
bash# 下载最新版本 wget https://github.com/bbb-lsy07/Yuan-ICP/archive/refs/tags/v2.0.0.tar.gz tar -zxvf v2.0.0.tar.gz
替换文件
bash# 备份当前版本 mv yuan-icp yuan-icp-backup # 解压新版本 mv yuan-icp-2.0.0 yuan-icp # 恢复配置文件 cp yuan-icp-backup/config/database.php yuan-icp/config/ cp yuan-icp-backup/config/settings.php yuan-icp/config/ 2>/dev/null || true # 恢复数据文件 cp yuan-icp-backup/data/sqlite.db yuan-icp/data/ # 恢复上传文件 cp -r yuan-icp-backup/uploads/* yuan-icp/uploads/ 2>/dev/null || true cp -r yuan-icp-backup/themes/* yuan-icp/themes/ 2>/dev/null || true cp -r yuan-icp-backup/plugins/* yuan-icp/plugins/ 2>/dev/null || true
运行升级脚本(如果有)
bash# 如果有升级脚本 php upgrade.php
方法二:Git 升级(如果使用Git管理)
bash
# 拉取最新代码
git pull origin main
# 更新依赖
composer install
# 运行数据库迁移(如果有)
php migrate.php
升级后检查
1. 功能测试
- 访问前台首页,检查是否正常显示
- 测试申请功能是否正常工作
- 登录后台,检查所有功能是否正常
2. 数据验证
- 检查现有数据是否完整
- 验证备案申请状态是否正确
- 检查公告和设置是否保留
3. 性能检查
- 检查页面加载速度
- 验证后台操作响应时间
- 测试邮件发送功能(如果配置了)
常见升级问题
数据库结构变更
如果新版本包含数据库结构变更,可能需要手动执行SQL迁移脚本:
sql
-- 示例:添加新字段
ALTER TABLE applications ADD COLUMN new_field VARCHAR(255);
配置文件变更
检查新版本的配置文件格式,可能需要手动更新:
php
// config/settings.php 示例更新
'smtp_port' => 587, // 从465改为587
主题兼容性
如果自定义了主题,检查新版本的主题系统是否有变更:
- 检查模板文件路径是否变化
- 验证模板变量是否兼容
- 测试主题功能是否正常
回滚方案
如果升级失败,可以回滚到之前的版本:
bash
# 停止当前服务
sudo systemctl stop nginx
# 恢复备份
rm -rf yuan-icp
mv yuan-icp-backup yuan-icp
# 恢复文件权限
chmod -R 755 yuan-icp
chown -R www-data:www-data yuan-icp
# 重启服务
sudo systemctl start nginx
最佳实践
- 在测试环境先升级: 在生产环境升级前,先在测试环境测试
- 选择低峰时段: 在访问量少的时候进行升级
- 通知用户: 提前通知用户系统维护时间
- 监控系统: 升级后密切监控系统运行状态
获取帮助
如果遇到升级问题:
- 查看 GitHub Issues
- 参考 更新日志
- 联系 社区支持