Gå til indhold

Fejlfinding

Løsninger på almindelige problemer og fejlfindingsteknikker for XOOPS CMS.


Før du dykker ned i specifikke problemer, skal du kontrollere disse almindelige årsager:

  1. Filtilladelser - Mapper skal have 755, filer skal have 644
  2. PHP version - Sørg for, at PHP 7.4+ (8.x anbefales)
  3. Fejllogfiler - Tjek xoops_data/logs/ og PHP fejllogfiler
  4. Cache - Ryd cache i Admin → System → Vedligeholdelse

  • White Screen of Death (WSOD)
  • Databaseforbindelsesfejl
  • Tilladelse nægtet fejl
  • Modulinstallationsfejl
  • Skabelonkompileringsfejl
  • Installation FAQ
  • Modul FAQ
  • Tema FAQ
  • Ydeevne FAQ
  • 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”

Symptomer: Tom hvid side, ingen fejlmeddelelse

Løsninger:

  1. Aktiver PHP fejlvisning midlertidigt:
// Føj midlertidigt til mainfile.php
fejlrapportering(E_ALL);
ini_set('display_errors', 1);
  1. Tjek PHP fejllog:
Terminal window
hale -f /var/log/php/error.log
  1. Almindelige årsager:

    • Hukommelsesgrænsen er overskredet
    • Fatal PHP syntaksfejl
    • Mangler nødvendig forlængelse
  2. Ret hukommelsesproblemer:

// I mainfile.php eller php.ini
ini_set('memory_limit', '256M');

Symptomer: “Kan ikke oprette forbindelse til database” eller lignende

Løsninger:

  1. 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');
  1. 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";
  1. Tjek MySQL-tjenesten:
Terminal window
sudo systemctl status mysql
sudo systemctl genstart mysql
  1. Bekræft brugertilladelser:
GRANT ALL PRIVILEGES ON xoops.* TO 'user'@'localhost';
FLUSH PRIVILEGES;

Symptomer: Kan ikke uploade filer, kan ikke gemme indstillinger

Løsninger:

  1. Indstil korrekte tilladelser:
Terminal window
# 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/
  1. Indstil korrekt ejerskab:
Terminal window
chown -R www-data:www-data /path/to/xoops
  1. Tjek SELinux (CentOS/RHEL):
Terminal window
# Tjek status
sestatus
# Tillad httpd at skrive
setsebool -P httpd_unified 1

Symptomer: Modulet installeres ikke, SQL fejl

Løsninger:

  1. Tjek modulkrav:

    • PHP version kompatibilitet
    • Nødvendige PHP-udvidelser
    • XOOPS version kompatibilitet
  2. Manuel SQL installation:

Terminal window
mysql -u bruger -p database < modules/mymodule/sql/mysql.sql
  1. Ryd modulcache:
// I xoops_data/caches/
rm -rf xoops_cache/*
rm -rf smarty_cache/*
rm -rf smarty_compile/*
  1. Tjek syntaks for xoops_version.php:
Terminal window
php -l modules/mymodule/xoops_version.php

Symptomer: Smarte fejl, skabelon blev ikke fundet

**Løsninger:**1. Ryd Smarty-cache:

Terminal window
rm -rf xoops_data/caches/smarty_cache/*
rm -rf xoops_data/caches/smarty_compile/*
  1. Tjek skabelonsyntaks:
{* Korrekt *}
{$variable}
{* Forkert - mangler $ *}
{variabel}
  1. Bekræft, at skabelonen eksisterer:
Terminal window
ls moduler/mitmodul/skabeloner/
  1. Regenerer skabeloner:
    • Admin → System → Vedligeholdelse → Skabeloner → Gendan

// In mainfile.php
define('XOOPS_DEBUG_LEVEL', 2);
// Levels:
// 0 = Off
// 1 = PHP debug
// 2 = PHP + SQL debug
// 3 = PHP + SQL + Smarty templates

Ray er et fremragende fejlfindingsværktøj til 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";
}

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.

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.

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.

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.


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

  • Kom godt i gang
  • Bedste praksis for sikkerhed
  • XOOPS 4.0 køreplan


#xoops #fejlfinding #fejlfinding #faq #fejl #løsninger