تخطَّ إلى المحتوى

ترقية XOOPS من 2.5 إلى 2.7

  • PHP 8.2+ مطلوب — لم يعد PHP 7.x مدعوماً
  • المكتبات المدارة بواسطة Composer — المكتبات الأساسية مدارة عبر composer.json
  • تحميل تلقائي PSR-4 — فئات الوحدات يمكنها استخدام النطاقات
  • تحسين XoopsObject — وظيفة getVar() الجديدة الآمنة للنوع، واستهلاك obj2Array() المرحلة الانتقالية
  • لوحة المسؤول Bootstrap 5 — تم إعادة بناء لوحة المسؤول باستخدام Bootstrap 5

قائمة التحقق قبل الترقية

Section titled “قائمة التحقق قبل الترقية”
  • PHP 8.2+ متاح على الخادم
  • نسخة احتياطية كاملة من قاعدة البيانات (mysqldump -u user -p xoops_db > backup.sql)
  • نسخة احتياطية كاملة من تثبيتك
  • قائمة بالوحدات المثبتة والإصدارات الخاصة بها
  • المظهر المخصص النسخ الاحتياطية بشكل منفصل

1. ضع الموقع في وضع الصيانة

Section titled “1. ضع الموقع في وضع الصيانة”
// mainfile.php — أضف مؤقتاً
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/

4. قم بتشغيل سكريبت الترقية

Section titled “4. قم بتشغيل سكريبت الترقية”

انتقل إلى https://yourdomain.com/upgrade/ في متصفحك. سيقوم معالج الترقية بتطبيق ترحيل قاعدة البيانات.

وحدات XOOPS 2.7 يجب أن تكون متوافقة مع PHP 8.2. تحقق من نظام الوحدات للإصدارات المحدثة.

في المسؤول → الوحدات، انقر فوق تحديث لكل وحدة مثبتة.

6. أزل وضع الصيانة واختبر

Section titled “6. أزل وضع الصيانة واختبر”

أزل سطر XOOPS_MAINTENANCE من mainfile.php و تحقق من أن جميع الصفحات يتم تحميلها بشكل صحيح.

أخطاء “لم يتم العثور على فئة” بعد الترقية

  • قم بتشغيل composer dump-autoload في جذر XOOPS
  • امسح دليل xoops_data/caches/

وحدة معطلة بعد التحديث

  • تحقق من إصدارات GitHub الخاصة بالوحدة للحصول على إصدار متوافق مع 2.7
  • قد تحتاج الوحدة إلى تغييرات في الكود لـ PHP 8.2 (الدوال المستهلكة، الخصائص المكتوبة)

CSS لوحة المسؤول معطل

  • امسح ذاكرة المتصفح
  • تأكد من استبدال xoops_lib/ بشكل كامل أثناء تحميل الملف