استكشاف الأخطاء والإصلاح
حلول للمشاكل الشائعة وتقنيات التصحيح لـ XOOPS CMS.
التشخيص السريع
Section titled “التشخيص السريع”قبل الخوض في مشاكل محددة، تحقق من هذه الأسباب الشائعة:
- أذونات الملفات - المجلدات تحتاج 755، الملفات تحتاج 644
- إصدار PHP - تأكد من PHP 7.4+ (8.x مُنصح به)
- سجلات الأخطاء - تحقق من
xoops_data/logs/وسجلات أخطاء PHP - التخزين المؤقت - امسح التخزين المؤقت في Admin → System → Maintenance
محتويات القسم
Section titled “محتويات القسم”المشاكل الشائعة
Section titled “المشاكل الشائعة”- White Screen of Death (WSOD)
- أخطاء اتصال قاعدة البيانات
- أخطاء Permission Denied
- فشل تثبيت الوحدة
- أخطاء تجميع النموذج
الأسئلة الشائعة
Section titled “الأسئلة الشائعة”- Installation FAQ
- Module FAQ
- Theme FAQ
- Performance FAQ
التصحيح
Section titled “التصحيح”- Enabling Debug Mode
- Using Ray Debugger
- Database Query Debugging
- Smarty Template Debugging
المشاكل الشائعة والحلول
Section titled “المشاكل الشائعة والحلول”White Screen of Death (WSOD)
Section titled “White Screen of Death (WSOD)”الأعراض: صفحة بيضاء فارغة، بدون رسالة خطأ
الحلول:
-
فعّل عرض أخطاء PHP مؤقتاً:
// أضف إلى mainfile.php مؤقتاًerror_reporting(E_ALL);ini_set('display_errors', 1); -
تحقق من سجل أخطاء PHP:
Terminal window tail -f /var/log/php/error.log -
الأسباب الشائعة:
- تم تجاوز حد الذاكرة
- خطأ بناء جملة PHP مميت
- امتداد مطلوب مفقود
-
أصلح مشاكل الذاكرة:
// في mainfile.php أو php.iniini_set('memory_limit', '256M');
أخطاء اتصال قاعدة البيانات
Section titled “أخطاء اتصال قاعدة البيانات”الأعراض: “Unable to connect to database” أو ما شابه
الحلول:
-
تحقق من بيانات الاعتماد في mainfile.php:
define('XOOPS_DB_HOST', 'localhost');define('XOOPS_DB_USER', 'your_username');define('XOOPS_DB_PASS', 'your_password');define('XOOPS_DB_NAME', 'your_database'); -
اختبر الاتصال يدوياً:
<?php$conn = new mysqli('localhost', 'user', 'pass', 'database');if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);}echo "Connected successfully"; -
تحقق من خدمة MySQL:
Terminal window sudo systemctl status mysqlsudo systemctl restart mysql -
تحقق من أذونات المستخدم:
GRANT ALL PRIVILEGES ON xoops.* TO 'user'@'localhost';FLUSH PRIVILEGES;
أخطاء Permission Denied
Section titled “أخطاء Permission Denied”الأعراض: لا يمكن تحميل الملفات، لا يمكن حفظ الإعدادات
الحلول:
-
عيّن الأذونات الصحيحة:
Terminal window # المجلداتfind /path/to/xoops -type d -exec chmod 755 {} \;# الملفاتfind /path/to/xoops -type f -exec chmod 644 {} \;# المجلدات القابلة للكتابةchmod -R 777 xoops_data/chmod -R 777 uploads/ -
عيّن ملكية صحيحة:
Terminal window chown -R www-data:www-data /path/to/xoops -
تحقق من SELinux (CentOS/RHEL):
Terminal window # فحص الحالةsestatus# السماح لـ httpd بالكتابةsetsebool -P httpd_unified 1
فشل تثبيت الوحدة
Section titled “فشل تثبيت الوحدة”الأعراض: لن تثبّت الوحدة، أخطاء SQL
الحلول:
-
تحقق من متطلبات الوحدة:
- توافق إصدار PHP
- امتدادات PHP المطلوبة
- توافق إصدار XOOPS
-
تثبيت SQL يدوي:
Terminal window mysql -u user -p database < modules/mymodule/sql/mysql.sql -
امسح ذاكرة التخزين المؤقت للوحدة:
// في xoops_data/caches/rm -rf xoops_cache/*rm -rf smarty_cache/*rm -rf smarty_compile/* -
تحقق من بناء جملة xoops_version.php:
Terminal window php -l modules/mymodule/xoops_version.php
أخطاء تجميع النموذج
Section titled “أخطاء تجميع النموذج”الأعراض: أخطاء Smarty، لم يتم العثور على النموذج
الحلول:
-
امسح ذاكرة التخزين المؤقت لـ Smarty:
Terminal window rm -rf xoops_data/caches/smarty_cache/*rm -rf xoops_data/caches/smarty_compile/* -
تحقق من بناء جملة النموذج:
{* صحيح *}{$variable}{* غير صحيح - $ مفقود *}{variable} -
تحقق من وجود النموذج:
Terminal window ls modules/mymodule/templates/ -
أعد إنشاء النماذج:
- Admin → System → Maintenance → Templates → Regenerate
تقنيات التصحيح
Section titled “تقنيات التصحيح”تفعيل وضع تصحيح XOOPS
Section titled “تفعيل وضع تصحيح XOOPS”// في mainfile.phpdefine('XOOPS_DEBUG_LEVEL', 2);
// المستويات:// 0 = مطفأ// 1 = تصحيح PHP// 2 = تصحيح PHP + SQL// 3 = تصحيح PHP + SQL + قوالس Smartyاستخدام Ray Debugger
Section titled “استخدام Ray Debugger”Ray أداة تصحيح ممتازة لـ PHP:
// تثبيت عبر Composercomposer require spatie/ray --dev
// الاستخدام في الكود الخاص بكray($variable);ray($object)->expand();ray()->measure();
// استعلامات قاعدة البياناتray($sql)->label('Query');وحدة تصحيح Smarty
Section titled “وحدة تصحيح Smarty”{* فعّل في النموذج *}{debug}
{* أو في PHP *}$xoopsTpl->debugging = true;تسجيل الاستعلام في قاعدة البيانات
Section titled “تسجيل الاستعلام في قاعدة البيانات”// فعّل تسجيل الاستعلام$GLOBALS['xoopsDB']->setLogger(new XoopsLogger());
// احصل على جميع الاستعلامات$queries = $GLOBALS['xoopsLogger']->queries;foreach ($queries as $query) { echo $query['sql'] . " - " . $query['time'] . "s\n";}الأسئلة الشائعة
Section titled “الأسئلة الشائعة”التثبيت
Section titled “التثبيت”س: يعرض معالج التثبيت صفحة فارغة ج: تحقق من سجلات أخطاء PHP، تأكد من أن PHP لديه ذاكرة كافية، تحقق من أذونات الملفات.
س: لا يمكن الكتابة إلى mainfile.php أثناء التثبيت
ج: عيّن الأذونات: chmod 666 mainfile.php أثناء التثبيت، ثم chmod 444 بعده.
س: جداول قاعدة البيانات لا يتم إنشاؤها ج: تحقق من أن مستخدم MySQL لديه امتيازات CREATE TABLE، تحقق من وجود قاعدة البيانات.
الوحدات
Section titled “الوحدات”س: صفحة إدارة الوحدة فارغة ج: امسح التخزين المؤقت، تحقق من admin/menu.php للوحدة من أجل أخطاء بناء الجملة.
س: كتل الوحدة لا تظهر ج: تحقق من أذونات الكتلة في Admin → Blocks، تحقق من أن الكتلة مخصصة للصفحات.
س: فشل تحديث الوحدة ج: احسب النسخة الاحتياطية من قاعدة البيانات، جرّب تحديثات SQL اليدوية، تحقق من متطلبات الإصدار.
القوالس
Section titled “القوالس”س: لا ينطبق القالب بشكل صحيح ج: امسح ذاكرة التخزين المؤقت لـ Smarty، تحقق من وجود theme.html، تحقق من أذونات القالب.
س: CSS المخصص لا ينحمّل ج: تحقق من مسار الملف، امسح ذاكرة تخزين المتصفح المؤقتة، تحقق من بناء جملة CSS.
س: الصور لا تُعرض ج: تحقق من مسارات الصور، تحقق من أذونات مجلد التحميلات.
الأداء
Section titled “الأداء”س: الموقع بطيء جداً ج: فعّل التخزين المؤقت، حسّن قاعدة البيانات، تحقق من الاستعلامات البطيئة، فعّل OpCache.
س: استخدام عالي للذاكرة ج: زيادة memory_limit، حسّن الاستعلامات الكبيرة، نفّذ التقسيم إلى صفحات.
أوامر الصيانة
Section titled “أوامر الصيانة”امسح كل التخزين المؤقت
Section titled “امسح كل التخزين المؤقت”#!/bin/bashrm -rf xoops_data/caches/xoops_cache/*rm -rf xoops_data/caches/smarty_cache/*rm -rf xoops_data/caches/smarty_compile/*echo "Cache cleared!"تحسين قاعدة البيانات
Section titled “تحسين قاعدة البيانات”-- حسّن جميع الجداولOPTIMIZE TABLE xoops_config;OPTIMIZE TABLE xoops_users;OPTIMIZE TABLE xoops_session;-- كرّر للجداول الأخرى
-- أو حسّن الكل دفعة واحدةmysqlcheck -o -u user -p databaseفحص سلامة الملف
Section titled “فحص سلامة الملف”# قارن مع التثبيت الطازجdiff -r /path/to/xoops /path/to/fresh-xoopsالوثائق ذات الصلة
Section titled “الوثائق ذات الصلة”- Getting Started
- Security Best Practices
- XOOPS 4.0 Roadmap
الموارد الخارجية
Section titled “الموارد الخارجية”#xoops #troubleshooting #debugging #faq #errors #solutions