Skip to content

Upgrading from XOOPS 2.5 to 2.7

  • PHP 8.2+ required — PHP 7.x is no longer supported
  • Composer-managed dependencies — Core libraries managed via composer.json
  • PSR-4 autoloading — Module classes can use namespaces
  • Improved XoopsObject — New getVar() type safety, deprecated obj2Array()
  • Bootstrap 5 admin — Admin panel rebuilt with Bootstrap 5
  • PHP 8.2+ available on your server
  • Full database backup (mysqldump -u user -p xoops_db > backup.sql)
  • Full file backup of your installation
  • List of installed modules and their versions
  • Custom theme backed up separately
// 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

Upload the new files, excluding:

  • uploads/ — your uploaded files
  • xoops_data/ — your configuration
  • modules/ — your installed modules
  • themes/ — your themes
  • mainfile.php — your site config
Terminal window
rsync -av --exclude='uploads/' --exclude='xoops_data/' \
--exclude='modules/' --exclude='themes/' --exclude='mainfile.php' \
xoops-2.7/ /var/www/html/

Navigate to https://yourdomain.com/upgrade/ in your browser. The upgrade wizard will apply database migrations.

XOOPS 2.7 modules must be PHP 8.2 compatible. Check the Module Ecosystem for updated versions.

In Admin → Modules, click Update for each installed module.

Remove the XOOPS_MAINTENANCE line from mainfile.php and verify all pages load correctly.

“Class not found” errors after upgrade

  • Run composer dump-autoload in the XOOPS root
  • Clear the xoops_data/caches/ directory

Module broken after update

  • Check the module’s GitHub releases for a 2.7-compatible version
  • The module may need code changes for PHP 8.2 (deprecated functions, typed properties)

Admin panel CSS broken

  • Clear your browser cache
  • Ensure xoops_lib/ was fully replaced during the file upload