跳转到内容

从XOOPS 2.5 升级到 2.7

:::注意[先备份] 升级前务必备份数据库和文件。没有例外。 :::

  • PHP 8.2+ 必需 — PHP 7.x 不再受支持
  • Composer-managed 依赖项 — 通过composer.json 管理的核心库
  • PSR-4 自动加载 — 模区块类可以使用命名空间
  • 改进了 XOOPSObject — 新的 getVar() 类型安全,已弃用 obj2Array()
  • Bootstrap 5 admin — 使用 Bootstrap 5 重建管理面板
  • PHP 8.2+ 在您的服务器上可用
  • 完整数据库备份 (mysqldump -u user -p XOOPS_db > backup.sql)
  • 安装的完整文件备份
  • 已安装模区块及其版本列表
  • 自定义主题单独备份
// mainfile.php — add temporarily
define('XOOPS_MAINTENANCE', true);
Terminal window
wget https://github.com/XOOPS/XoopsCore27/releases/latest/download/xoops-2.7.x.zip
unzip xoops-2.7.x.zip

上传新文件,不包括

  • uploads/ — 您上传的文件
  • XOOPS_data/ — 您的配置
  • modules/ — 您安装的模区块
  • themes/ — 你的主题
  • mainfile.php — 您的站点配置
Terminal window
rsync -av --exclude='uploads/' --exclude='xoops_data/' \
--exclude='modules/' --exclude='themes/' --exclude='mainfile.php' \
xoops-2.7/ /var/www/html/

在浏览器中导航至https://yourdomain.com/upgrade/。 升级向导将应用数据库迁移。

XOOPS 2.7 模区块必须兼容 PHP 8.2。 检查Module Ecosystem以获取更新版本。

在管理 → 模区块中,针对每个已安装的模区块单击“更新”。

mainfile.php 中删除 XOOPS_MAINTENANCE 行并 验证所有页面加载正确。

升级后出现“找不到类”错误

  • 在 XOOPS 根目录中运行 composer dump-autoload
  • 清除XOOPS_data/caches/目录

更新后模区块损坏

  • 检查模区块的 GitHub 版本是否有 2.7-compatible 版本
  • 模区块可能需要针对 PHP 8.2 进行代码更改(不推荐使用的函数、类型化属性)

管理面板CSS损坏

  • 清除浏览器缓存
  • 确保XOOPS_lib/在文件上传期间被完全替换