דלגו לתוכן

פתרון בעיות

פתרונות לבעיות נפוצות וטכניקות ניפוי באגים עבור XOOPS CMS.


לפני שצולל לבעיות ספציפיות, בדוק את הסיבות הנפוצות הבאות:

  1. הרשאות קבצים - ספריות צריכות 755, קבצים צריכים 644
  2. גרסת PHP - ודא PHP 7.4+ (8.x מומלץ)
  3. יומני שגיאות - בדוק את יומני השגיאות xoops_data/logs/ ו-PHP
  4. cache - נקה cache בניהול ← מערכת ← תחזוקה

  • מסך מוות לבן (WSOD)
  • שגיאות חיבור למסד נתונים
  • שגיאות של הרשאה נדחתה
  • כשלים בהתקנת מודול
  • שגיאות הידור של תבניות
  • התקנה FAQ
  • מודול FAQ
  • ערכת נושא FAQ
  • ביצועים FAQ
  • הפעלת מצב ניפוי באגים
  • שימוש ב-Ray Debugger
  • איתור באגים של שאילתות מסד נתונים
  • Smarty איתור באגים בתבנית

🚨 בעיות ופתרונות נפוצים

Section titled “🚨 בעיות ופתרונות נפוצים”

סימפטומים: דף לבן ריק, ללא הודעת שגיאה

פתרונות:

  1. אפשר תצוגת שגיאה PHP באופן זמני:

    // Add to mainfile.php temporarily
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
  2. בדוק את יומן השגיאות של PHP:

    Terminal window
    tail -f /var/log/php/error.log
  3. סיבות נפוצות:

    • חרגת ממגבלת הזיכרון
    • שגיאת תחביר קטלנית PHP
    • חסרה הארכה נדרשת
  4. תקן בעיות זיכרון:

    // In mainfile.php or php.ini
    ini_set('memory_limit', '256M');

שגיאות חיבור מסד נתונים

Section titled “שגיאות חיבור מסד נתונים”

סימפטומים: “לא ניתן להתחבר למסד נתונים” או דומה

פתרונות:

  1. אמת את האישורים ב-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');
  2. בדוק את החיבור באופן ידני:

    <?php
    $conn = new mysqli('localhost', 'user', 'pass', 'database');
    if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    }
    echo "Connected successfully";
  3. בדוק את שירות MySQL:

    Terminal window
    sudo systemctl status mysql
    sudo systemctl restart mysql
  4. אמת הרשאות משתמש:

    GRANT ALL PRIVILEGES ON xoops.* TO 'user'@'localhost';
    FLUSH PRIVILEGES;

תסמינים: לא יכול להעלות קבצים, לא יכול לשמור הגדרות

פתרונות:

  1. הגדר הרשאות נכונות:

    Terminal window
    # Directories
    find /path/to/xoops -type d -exec chmod 755 {} \;
    # Files
    find /path/to/xoops -type f -exec chmod 644 {} \;
    # Writable directories
    chmod -R 777 xoops_data/
    chmod -R 777 uploads/
  2. הגדר בעלות נכונה:

    Terminal window
    chown -R www-data:www-data /path/to/xoops
  3. בדוק את SELinux (CentOS/RHEL):

    Terminal window
    # Check status
    sestatus
    # Allow httpd to write
    setsebool -P httpd_unified 1

סימפטומים: המודול לא יותקן, שגיאות SQL

פתרונות:

  1. בדוק את דרישות המודול:

    • תאימות לגרסת PHP
    • הרחבות PHP נדרשות
    • תאימות לגרסת XOOPS
  2. התקנה ידנית של SQL:

    Terminal window
    mysql -u user -p database < modules/mymodule/sql/mysql.sql
  3. נקה את cache המודול:

    // In xoops_data/caches/
    rm -rf xoops_cache/*
    rm -rf smarty_cache/*
    rm -rf smarty_compile/*
  4. בדוק את תחביר xoops_version.php:

    Terminal window
    php -l modules/mymodule/xoops_version.php

סימפטומים: שגיאות Smarty, התבנית לא נמצאה

פתרונות:

  1. נקה cache Smarty:

    Terminal window
    rm -rf xoops_data/caches/smarty_cache/*
    rm -rf xoops_data/caches/smarty_compile/*
  2. בדוק את תחביר התבנית:

    {* Correct *}
    {$variable}
    {* Incorrect - missing $ *}
    {variable}
  3. אמת שתבנית קיימת:

    Terminal window
    ls modules/mymodule/templates/
  4. צור מחדש תבניות:

    • ניהול → מערכת → תחזוקה → תבניות → צור מחדש

הפעל את מצב ניפוי באגים XOOPS

Section titled “הפעל את מצב ניפוי באגים XOOPS”
// In mainfile.php
define('XOOPS_DEBUG_LEVEL', 2);
// Levels:
// 0 = Off
// 1 = PHP debug
// 2 = PHP + SQL debug
// 3 = PHP + SQL + Smarty templates

ריי הוא כלי ניפוי באגים מצוין עבור PHP:

// Install via Composer
composer require spatie/ray --dev
// Usage in your code
ray($variable);
ray($object)->expand();
ray()->measure();
// Database queries
ray($sql)->label('Query');

Smarty קונסולת ניפוי באגים

Section titled “Smarty קונסולת ניפוי באגים”
{* Enable in template *}
{debug}
{* Or in PHP *}
$xoopsTpl->debugging = true;

רישום שאילתות במסד נתונים

Section titled “רישום שאילתות במסד נתונים”
// Enable query logging
$GLOBALS['xoopsDB']->setLogger(new XoopsLogger());
// Get all queries
$queries = $GLOBALS['xoopsLogger']->queries;
foreach ($queries as $query) {
echo $query['sql'] . " - " . $query['time'] . "s\n";
}

ש: אשף ההתקנה מציג עמוד ריק ת: בדוק את יומני השגיאות של PHP, ודא של-PHP יש מספיק זיכרון, ודא הרשאות הקובץ.

ש: לא ניתן לכתוב ל-mainfile.php במהלך ההתקנה ת: הגדר הרשאות: chmod 666 mainfile.php במהלך ההתקנה, ולאחר מכן chmod 444.

ש: טבלאות מסד נתונים לא נוצרו ת: בדוק של-MySQL יש הרשאות CREATE TABLE, ודא שבסיס הנתונים קיים.

ש: דף ניהול המודול ריק ת: נקה את הcache, בדוק את admin/menu.php של המודול עבור שגיאות תחביר.

ש: בלוקים של מודול לא מוצגים ת: בדוק הרשאות חסימה ב-Admin → חסימות, ודא שהחסימה מוקצה לדפים.

ש: עדכון המודול נכשל ת: גיבוי מסד נתונים, נסה עדכוני SQL ידניים, בדוק את דרישות הגרסה.

ש: הנושא לא חל כהלכה ת: נקה את הcache Smarty, בדוק את קיים של theme.html, ודא הרשאות ערכת הנושא.

ש: CSS מותאם אישית לא נטען ת: בדוק את נתיב הקובץ, נקה את הcache של הדפדפן, ודא תחביר CSS.

ש: תמונות לא מוצגות ת: בדוק נתיבי תמונה, ודא הרשאות תיקיית העלאות.

ש: האתר איטי מאוד ת: הפעל שמירה בcache, בצע אופטימיזציה של מסד הנתונים, בדוק אם יש שאילתות איטיות, הפעל את OpCache.

ש: שימוש גבוה בזיכרון ת: הגדל את memory_limit, בצע אופטימיזציה של שאילתות גדולות, יישם עימוד.


clear_cache.sh
#!/bin/bash
rm -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 all tables
OPTIMIZE TABLE xoops_config;
OPTIMIZE TABLE xoops_users;
OPTIMIZE TABLE xoops_session;
-- Repeat for other tables
-- Or optimize all at once
mysqlcheck -o -u user -p database
Terminal window
# Compare against fresh install
diff -r /path/to/xoops /path/to/fresh-xoops

  • תחילת העבודה
  • שיטות עבודה מומלצות לאבטחה
  • XOOPS 4.0 מפת דרכים


#xoops #פתרון בעיות #ניפוי באגים #שאלות נפוצות #שגיאות #פתרונות