Fejlfinding
Løsninger på almindelige problemer og fejlfindingsteknikker for XOOPS CMS.
📋 Hurtig diagnose
Sektion kaldt “📋 Hurtig diagnose”Før du dykker ned i specifikke problemer, skal du kontrollere disse almindelige årsager:
- Filtilladelser - Mapper skal have 755, filer skal have 644
- PHP version - Sørg for, at PHP 7.4+ (8.x anbefales)
- Fejllogfiler - Tjek
xoops_data/logs/og PHP fejllogfiler - Cache - Ryd cache i Admin → System → Vedligeholdelse
🗂️ Indhold i afsnittet
Sektion kaldt “🗂️ Indhold i afsnittet”Almindelige problemer
Sektion kaldt “Almindelige problemer”- White Screen of Death (WSOD)
- Databaseforbindelsesfejl
- Tilladelse nægtet fejl
- Modulinstallationsfejl
- Skabelonkompileringsfejl
- Installation FAQ
- Modul FAQ
- Tema FAQ
- Ydeevne FAQ
Fejlretning
Sektion kaldt “Fejlretning”- Aktivering af fejlretningstilstand
- Brug af Ray Debugger
- Fejlfinding af databaseforespørgsler
- Smart skabelonfejlfinding
🚨 Almindelige problemer og løsninger
Sektion kaldt “🚨 Almindelige problemer og løsninger”White Screen of Death (WSOD)
Sektion kaldt “White Screen of Death (WSOD)”Symptomer: Tom hvid side, ingen fejlmeddelelse
Løsninger:
- Aktiver PHP fejlvisning midlertidigt:
// Føj midlertidigt til mainfile.php fejlrapportering(E_ALL); ini_set('display_errors', 1);- Tjek PHP fejllog:
hale -f /var/log/php/error.log-
Almindelige årsager:
- Hukommelsesgrænsen er overskredet
- Fatal PHP syntaksfejl
- Mangler nødvendig forlængelse
-
Ret hukommelsesproblemer:
// I mainfile.php eller php.ini ini_set('memory_limit', '256M');Databaseforbindelsesfejl
Sektion kaldt “Databaseforbindelsesfejl”Symptomer: “Kan ikke oprette forbindelse til database” eller lignende
Løsninger:
- Bekræft legitimationsoplysninger i mainfile.php:
define('XOOPS_DB_HOST', 'localhost'); define('XOOPS_DB_USER', 'dit_brugernavn'); define('XOOPS_DB_PASS', 'dit_adgangskode'); define('XOOPS_DB_NAME', 'din_database');- Test forbindelsen manuelt:
<?php $conn = new mysqli('localhost', 'bruger', 'pass', 'database'); if ($conn->connect_error) { die("Forbindelsen mislykkedes: " . $conn->connect_error); } echo "Forbundet med succes";- Tjek MySQL-tjenesten:
sudo systemctl status mysql sudo systemctl genstart mysql- Bekræft brugertilladelser:
GRANT ALL PRIVILEGES ON xoops.* TO 'user'@'localhost'; FLUSH PRIVILEGES;Tilladelse nægtet fejl
Sektion kaldt “Tilladelse nægtet fejl”Symptomer: Kan ikke uploade filer, kan ikke gemme indstillinger
Løsninger:
- Indstil korrekte tilladelser:
# Mapper find /path/to/xoops -type d -exec chmod 755 {} \;
# Filer find /path/to/xoops -type f -exec chmod 644 {} \;
# Skrivbare mapper chmod -R 777 xoops_data/ chmod -R 777 uploads/- Indstil korrekt ejerskab:
chown -R www-data:www-data /path/to/xoops- Tjek SELinux (CentOS/RHEL):
# Tjek status sestatus
# Tillad httpd at skrive setsebool -P httpd_unified 1Modulinstallationsfejl
Sektion kaldt “Modulinstallationsfejl”Symptomer: Modulet installeres ikke, SQL fejl
Løsninger:
-
Tjek modulkrav:
- PHP version kompatibilitet
- Nødvendige PHP-udvidelser
- XOOPS version kompatibilitet
-
Manuel SQL installation:
mysql -u bruger -p database < modules/mymodule/sql/mysql.sql- Ryd modulcache:
// I xoops_data/caches/ rm -rf xoops_cache/* rm -rf smarty_cache/* rm -rf smarty_compile/*- Tjek syntaks for xoops_version.php:
php -l modules/mymodule/xoops_version.phpSkabelonkompileringsfejl
Sektion kaldt “Skabelonkompileringsfejl”Symptomer: Smarte fejl, skabelon blev ikke fundet
**Løsninger:**1. Ryd Smarty-cache:
rm -rf xoops_data/caches/smarty_cache/* rm -rf xoops_data/caches/smarty_compile/*- Tjek skabelonsyntaks:
{* Korrekt *} {$variable}
{* Forkert - mangler $ *} {variabel}- Bekræft, at skabelonen eksisterer:
ls moduler/mitmodul/skabeloner/- Regenerer skabeloner:
- Admin → System → Vedligeholdelse → Skabeloner → Gendan
🐛 Fejlretningsteknikker
Sektion kaldt “🐛 Fejlretningsteknikker”Aktiver XOOPS Debug Mode
Sektion kaldt “Aktiver XOOPS Debug Mode”// In mainfile.phpdefine('XOOPS_DEBUG_LEVEL', 2);
// Levels:// 0 = Off// 1 = PHP debug// 2 = PHP + SQL debug// 3 = PHP + SQL + Smarty templatesBrug af Ray Debugger
Sektion kaldt “Brug af Ray Debugger”Ray er et fremragende fejlfindingsværktøj til 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
Sektion kaldt “Smarty Debug Console”{* Enable in template *}{debug}
{* Or in PHP *}$xoopsTpl->debugging = true;Databaseforespørgselslogning
Sektion kaldt “Databaseforespørgselslogning”// 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";}❓ Ofte stillede spørgsmål
Sektion kaldt “❓ Ofte stillede spørgsmål”Installation
Sektion kaldt “Installation”Sp: Installationsguiden viser tom side A: Tjek PHP fejllogfiler, sørg for, at PHP har nok hukommelse, bekræft filtilladelser.
Sp: Kan ikke skrive til mainfile.php under installationen
A: Indstil tilladelser: chmod 666 mainfile.php under installationen, derefter chmod 444 efter.
Sp: Databasetabeller er ikke oprettet A: Kontroller, at MySQL-brugeren har CREATE TABLE-privilegier, bekræft, at databasen eksisterer.
Moduler
Sektion kaldt “Moduler”Sp: Moduladministratorsiden er tom A: Ryd cache, tjek modulets admin/menu.php for syntaksfejl.
Sp: Modulblokke vises ikke A: Kontroller blokeringstilladelser i Admin → Blokerer, bekræft blokering er tildelt sider.
Sp: Modulopdatering mislykkes A: Sikkerhedskopier database, prøv manuelle SQL-opdateringer, tjek versionskravene.
Temaer
Sektion kaldt “Temaer”Sp.: Temaet gælder ikke korrekt A: Ryd Smarty cache, kontroller theme.html eksisterer, bekræft tematilladelser.
Sp: Custom CSS indlæses ikke A: Tjek filstien, ryd browserens cache, bekræft CSS syntaks.
Sp: Billeder vises ikke A: Tjek billedstier, bekræft upload-mappetilladelser.
Ydeevne
Sektion kaldt “Ydeevne”Sp: Siden er meget langsom A: Aktiver cachelagring, optimer databasen, tjek for langsomme forespørgsler, aktiver OpCache.
Sp: Højt hukommelsesforbrug A: Forøg memory_limit, optimer store forespørgsler, implementer paginering.
🔧 Vedligeholdelseskommandoer
Sektion kaldt “🔧 Vedligeholdelseskommandoer”Ryd alle caches
Sektion kaldt “Ryd alle caches”#!/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!"Databaseoptimering
Sektion kaldt “Databaseoptimering”-- 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 databaseTjek filintegritet
Sektion kaldt “Tjek filintegritet”# Compare against fresh installdiff -r /path/to/xoops /path/to/fresh-xoops🔗 Relateret dokumentation
Sektion kaldt “🔗 Relateret dokumentation”- Kom godt i gang
- Bedste praksis for sikkerhed
- XOOPS 4.0 køreplan
📚 Eksterne ressourcer
Sektion kaldt “📚 Eksterne ressourcer”#xoops #fejlfinding #fejlfinding #faq #fejl #løsninger