Αντιμετώπιση προβλημάτων
Λύσεις σε κοινά προβλήματα και τεχνικές εντοπισμού σφαλμάτων για το XOOPS CMS.
📋 Γρήγορη διάγνωση
Ενότητα με τίτλο «📋 Γρήγορη διάγνωση»Πριν ασχοληθείτε με συγκεκριμένα ζητήματα, ελέγξτε αυτές τις κοινές αιτίες:
- Δικαιώματα αρχείου - Οι κατάλογοι χρειάζονται 755, τα αρχεία χρειάζονται 644
- PHP Έκδοση - Βεβαιωθείτε ότι PHP 7.4+ (8,x συνιστάται)
- Αρχεία καταγραφής σφαλμάτων - Ελέγξτε τα αρχεία καταγραφής σφαλμάτων
xoops_data/logs/και PHP - Cache - Εκκαθάριση προσωρινής μνήμης στο Admin → System → Maintenance
🗂️ Περιεχόμενα ενότητας
Ενότητα με τίτλο «🗂️ Περιεχόμενα ενότητας»# Κοινά Θέματα
Ενότητα με τίτλο «# Κοινά Θέματα»- Λευκή οθόνη θανάτου (WSOD)
- Σφάλματα σύνδεσης βάσης δεδομένων
- Σφάλματα άρνησης άδειας
- Βλάβες εγκατάστασης μονάδας
- Σφάλματα συλλογής προτύπων
- Εγκατάσταση FAQ
- Ενότητα FAQ
- Θέμα FAQ
- Απόδοση FAQ
# Εντοπισμός σφαλμάτων
Ενότητα με τίτλο «# Εντοπισμός σφαλμάτων»- Ενεργοποίηση λειτουργίας εντοπισμού σφαλμάτων
- Χρήση Ray Debugger
- Εντοπισμός σφαλμάτων ερωτημάτων βάσης δεδομένων
- Έξυπνος εντοπισμός σφαλμάτων προτύπων
🚨 Κοινά Θέματα & Λύσεις
Ενότητα με τίτλο «🚨 Κοινά Θέματα & Λύσεις»# Λευκή οθόνη θανάτου (WSOD)
Ενότητα με τίτλο «# Λευκή οθόνη θανάτου (WSOD)»Συμπτώματα: Κενή λευκή σελίδα, χωρίς μήνυμα σφάλματος
Λύσεις:
- Ενεργοποιήστε προσωρινά την εμφάνιση σφαλμάτων PHP:
// Add to mainfile.php temporarily error_reporting(E_ALL); ini_set('display_errors', 1);- Ελέγξτε το αρχείο καταγραφής σφαλμάτων PHP:
tail -f /var/log/php/error.log-
Συνήθεις αιτίες:
- Υπέρβαση του ορίου μνήμης
- Θανατηφόρο συντακτικό σφάλμα PHP
- Λείπει η απαιτούμενη επέκταση
-
Διόρθωση προβλημάτων μνήμης:
// In mainfile.php or php.ini ini_set('memory_limit', '256M');# Σφάλματα σύνδεσης βάσης δεδομένων
Ενότητα με τίτλο «# Σφάλματα σύνδεσης βάσης δεδομένων»Συμπτώματα: “Δεν είναι δυνατή η σύνδεση στη βάση δεδομένων” ή παρόμοιο
Λύσεις:
- Επαληθεύστε τα διαπιστευτήρια στο 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 service:
sudo systemctl status mysql sudo systemctl restart mysql- Επαληθεύστε τα δικαιώματα χρήστη:
GRANT ALL PRIVILEGES ON xoops.* TO 'user'@'localhost'; FLUSH PRIVILEGES;# Σφάλματα άρνησης άδειας
Ενότητα με τίτλο «# Σφάλματα άρνησης άδειας»Συμπτώματα: Δεν είναι δυνατή η αποστολή αρχείων, δεν είναι δυνατή η αποθήκευση ρυθμίσεων
Λύσεις:
- Ορίστε τα σωστά δικαιώματα:
# 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/- Ορισμός σωστής ιδιοκτησίας:
chown -R www-data:www-data /path/to/xoops- Ελέγξτε το SELinux (CentOS/RHEL):
# Check status sestatus
# Allow httpd to write setsebool -P httpd_unified 1# Αποτυχίες εγκατάστασης μονάδας
Ενότητα με τίτλο «# Αποτυχίες εγκατάστασης μονάδας»Συμπτώματα: Η μονάδα δεν θα εγκατασταθεί, SQL σφάλματα
Λύσεις:
-
Ελέγξτε τις απαιτήσεις της μονάδας:
- Συμβατότητα έκδοσης PHP
- Απαιτούμενες επεκτάσεις PHP
- Συμβατότητα έκδοσης XOOPS
-
Χειροκίνητη εγκατάσταση SQL:
mysql -u user -p database < modules/mymodule/sql/mysql.sql- Εκκαθάριση προσωρινής μνήμης μονάδας:
// In xoops_data/caches/ rm -rf xoops_cache/* rm -rf smarty_cache/* rm -rf smarty_compile/*- Ελέγξτε xoops_version.php syntax:
php -l modules/mymodule/xoops_version.php# Σφάλματα συλλογής προτύπων
Ενότητα με τίτλο «# Σφάλματα συλλογής προτύπων»Συμπτώματα: Έξυπνα σφάλματα, το πρότυπο δεν βρέθηκε
Λύσεις:
- Εκκαθάριση κρυφής μνήμης Smarty:
rm -rf xoops_data/caches/smarty_cache/* rm -rf xoops_data/caches/smarty_compile/*- Ελέγξτε τη σύνταξη προτύπου:
{* Correct *} {$variable}
{* Incorrect - missing $ *} {variable}- Επαλήθευση ύπαρξης προτύπου:
ls modules/mymodule/templates/- Αναγέννηση προτύπων:
- Διαχειριστής → Σύστημα → Συντήρηση → Πρότυπα → Αναγέννηση
🐛 Τεχνικές εντοπισμού σφαλμάτων
Ενότητα με τίτλο «🐛 Τεχνικές εντοπισμού σφαλμάτων»# Ενεργοποίηση XOOPS Λειτουργία εντοπισμού σφαλμάτων
Ενότητα με τίτλο «# Ενεργοποίηση XOOPS Λειτουργία εντοπισμού σφαλμάτων»// In mainfile.phpdefine('XOOPS_DEBUG_LEVEL', 2);
// Levels:// 0 = Off// 1 = PHP debug// 2 = PHP + SQL debug// 3 = PHP + SQL + Smarty templates# Χρήση Ray Debugger
Ενότητα με τίτλο «# Χρήση Ray Debugger»Το Ray είναι ένα εξαιρετικό εργαλείο εντοπισμού σφαλμάτων για το PHP:
// Install via Composercomposer require spatie/ray --dev
// Usage in your coderay($variable);ray($object)->expand();ray()->measure();
// Database queriesray($sql)->label('Query');# Smarty Debug Console
Ενότητα με τίτλο «# Smarty Debug Console»{* 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, βελτιστοποιήστε μεγάλα ερωτήματα, εφαρμόστε σελιδοποίηση.
🔧 Εντολές Συντήρησης
Ενότητα με τίτλο «🔧 Εντολές Συντήρησης»# Εκκαθάριση όλων των κρυφών μνήμων
Ενότητα με τίτλο «# Εκκαθάριση όλων των κρυφών μνήμων»#!/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!"# Βελτιστοποίηση βάσης δεδομένων
Ενότητα με τίτλο «# Βελτιστοποίηση βάσης δεδομένων»-- Optimize all tablesOPTIMIZE TABLE xoops_config;OPTIMIZE TABLE xoops_users;OPTIMIZE TABLE xoops_session;-- Repeat for other tables
-- Or optimize all at oncemysqlcheck -o -u user -p database# Ελέγξτε την ακεραιότητα του αρχείου
Ενότητα με τίτλο «# Ελέγξτε την ακεραιότητα του αρχείου»# Compare against fresh installdiff -r /path/to/xoops /path/to/fresh-xoops🔗 Σχετική τεκμηρίωση
Ενότητα με τίτλο «🔗 Σχετική τεκμηρίωση»- Ξεκινώντας
- Βέλτιστες πρακτικές ασφάλειας
- XOOPS 4.0 Οδικός χάρτης