Μετάβαση στο περιεχόμενο

Αντιμετώπιση προβλημάτων

Λύσεις σε κοινά προβλήματα και τεχνικές εντοπισμού σφαλμάτων για το XOOPS CMS.


Πριν ασχοληθείτε με συγκεκριμένα ζητήματα, ελέγξτε αυτές τις κοινές αιτίες:

  1. Δικαιώματα αρχείου - Οι κατάλογοι χρειάζονται 755, τα αρχεία χρειάζονται 644
  2. PHP Έκδοση - Βεβαιωθείτε ότι PHP 7.4+ (8,x συνιστάται)
  3. Αρχεία καταγραφής σφαλμάτων - Ελέγξτε τα αρχεία καταγραφής σφαλμάτων xoops_data/logs/ και PHP
  4. Cache - Εκκαθάριση προσωρινής μνήμης στο Admin → System → Maintenance

  • Λευκή οθόνη θανάτου (WSOD)
  • Σφάλματα σύνδεσης βάσης δεδομένων
  • Σφάλματα άρνησης άδειας
  • Βλάβες εγκατάστασης μονάδας
  • Σφάλματα συλλογής προτύπων
  • Εγκατάσταση FAQ
  • Ενότητα FAQ
  • Θέμα FAQ
  • Απόδοση FAQ
  • Ενεργοποίηση λειτουργίας εντοπισμού σφαλμάτων
  • Χρήση Ray Debugger
  • Εντοπισμός σφαλμάτων ερωτημάτων βάσης δεδομένων
  • Έξυπνος εντοπισμός σφαλμάτων προτύπων

Συμπτώματα: Κενή λευκή σελίδα, χωρίς μήνυμα σφάλματος

Λύσεις:

  1. Ενεργοποιήστε προσωρινά την εμφάνιση σφαλμάτων PHP:
// Add to mainfile.php temporarily
error_reporting(E_ALL);
ini_set('display_errors', 1);
  1. Ελέγξτε το αρχείο καταγραφής σφαλμάτων PHP:
Terminal window
tail -f /var/log/php/error.log
  1. Συνήθεις αιτίες:

    • Υπέρβαση του ορίου μνήμης
    • Θανατηφόρο συντακτικό σφάλμα PHP
    • Λείπει η απαιτούμενη επέκταση
  2. Διόρθωση προβλημάτων μνήμης:

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

Συμπτώματα: “Δεν είναι δυνατή η σύνδεση στη βάση δεδομένων” ή παρόμοιο

Λύσεις:

  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');
  1. Δοκιμή σύνδεσης με μη αυτόματο τρόπο:
<?php
$conn = new mysqli('localhost', 'user', 'pass', 'database');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
  1. Ελέγξτε MySQL service:
Terminal window
sudo systemctl status mysql
sudo systemctl restart mysql
  1. Επαληθεύστε τα δικαιώματα χρήστη:
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/
  1. Ορισμός σωστής ιδιοκτησίας:
Terminal window
chown -R www-data:www-data /path/to/xoops
  1. Ελέγξτε το 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
  1. Εκκαθάριση προσωρινής μνήμης μονάδας:
// In xoops_data/caches/
rm -rf xoops_cache/*
rm -rf smarty_cache/*
rm -rf smarty_compile/*
  1. Ελέγξτε xoops_version.php syntax:
Terminal window
php -l modules/mymodule/xoops_version.php

Συμπτώματα: Έξυπνα σφάλματα, το πρότυπο δεν βρέθηκε

Λύσεις:

  1. Εκκαθάριση κρυφής μνήμης Smarty:
Terminal window
rm -rf xoops_data/caches/smarty_cache/*
rm -rf xoops_data/caches/smarty_compile/*
  1. Ελέγξτε τη σύνταξη προτύπου:
{* Correct *}
{$variable}
{* Incorrect - missing $ *}
{variable}
  1. Επαλήθευση ύπαρξης προτύπου:
Terminal window
ls modules/mymodule/templates/
  1. Αναγέννηση προτύπων:
    • Διαχειριστής → Σύστημα → Συντήρηση → Πρότυπα → Αναγέννηση

# Ενεργοποίηση XOOPS Λειτουργία εντοπισμού σφαλμάτων

Ενότητα με τίτλο «# Ενεργοποίηση XOOPS Λειτουργία εντοπισμού σφαλμάτων»
// In mainfile.php
define('XOOPS_DEBUG_LEVEL', 2);
// Levels:
// 0 = Off
// 1 = PHP debug
// 2 = PHP + SQL debug
// 3 = PHP + SQL + Smarty templates

Το Ray είναι ένα εξαιρετικό εργαλείο εντοπισμού σφαλμάτων για το 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');
{* Enable in template *}
{debug}
{* Or in PHP *}
$xoopsTpl->debugging = true;

# Καταγραφή ερωτημάτων βάσης δεδομένων

Ενότητα με τίτλο «# Καταγραφή ερωτημάτων βάσης δεδομένων»
// 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 έχει αρκετή μνήμη, επαληθεύστε τα δικαιώματα αρχείων.

Ε: Δεν είναι δυνατή η εγγραφή στο κύριο αρχείο.php during installation A: Ορίστε δικαιώματα: chmod 666 mainfile.php κατά την εγκατάσταση και μετά chmod 444 μετά.

Ε: Δεν δημιουργήθηκαν πίνακες βάσεων δεδομένων Α: Ελέγξτε MySQL user has CREATE TABLE privileges, verify database exists.

Ε: Η σελίδα διαχειριστή της μονάδας είναι κενή Α: Εκκαθαρίστε την προσωρινή μνήμη, ελέγξτε το admin/menu.php της μονάδας για συντακτικά σφάλματα.

Ε: Τα μπλοκ λειτουργιών δεν εμφανίζονται Α: Ελέγξτε τα δικαιώματα αποκλεισμού στο Διαχειριστής → Αποκλεισμοί, επαληθεύστε ότι ο αποκλεισμός έχει εκχωρηθεί σε σελίδες.

Ε: Η ενημέρωση της μονάδας αποτυγχάνει Α: Δημιουργήστε αντίγραφα ασφαλείας της βάσης δεδομένων, δοκιμάστε τις μη αυτόματες ενημερώσεις SQL, ελέγξτε τις απαιτήσεις έκδοσης.

Ε: Το θέμα δεν εφαρμόζεται σωστά Α: Διαγράψτε την προσωρινή μνήμη Smarty, ελέγξτε ότι το theme.html υπάρχει, επαληθεύστε τα δικαιώματα του θέματος.

Ε: Προσαρμοσμένο CSS δεν φορτώνεται Α: Ελέγξτε τη διαδρομή αρχείου, διαγράψτε την προσωρινή μνήμη του προγράμματος περιήγησης, επαληθεύστε τη σύνταξη CSS.

Ε: Οι εικόνες δεν εμφανίζονται Α: Ελέγξτε τις διαδρομές εικόνων, επαληθεύστε τα δικαιώματα των φακέλων μεταφορτώσεων.

Ε: Ο ιστότοπος είναι πολύ αργός Α: Ενεργοποίηση προσωρινής αποθήκευσης, βελτιστοποίηση βάσης δεδομένων, έλεγχος για αργά ερωτήματα, ενεργοποίηση 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!"
-- 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 #αντιμετώπιση προβλημάτων #debugging #faq #errors #solutions

Ενότητα με τίτλο «XOOPS #αντιμετώπιση προβλημάτων #debugging #faq #errors #solutions»