Přeskočit na obsah

Odstraňování problémů

Řešení běžných problémů a techniky ladění pro XOOPS CMS.


📋 Rychlá diagnostika

Sekce “📋 Rychlá diagnostika”

Než se ponoříte do konkrétních problémů, zkontrolujte tyto běžné příčiny:

  1. Oprávnění k souborům – Adresáře potřebují 755, soubory 644
  2. Verze PHP – Zajistěte PHP 7.4+ (doporučeno 8.x)
  3. Protokoly chyb – Zkontrolujte protokoly chyb xoops_data/logs/ a PHP
  4. Cache – Vymazání mezipaměti v Admin → System → Maintenance

  • Bílá obrazovka smrti (WSOD)
  • Chyby připojení k databázi
  • Chyby s povolením
  • Selhání instalace modulu
  • Chyby při kompilaci šablony
  • Instalace FAQ
  • Modul FAQ
  • Motiv FAQ
  • Výkon FAQ
  • Povolení režimu ladění
  • Použití Ray Debugger
  • Ladění databázových dotazů
  • Ladění šablony Smarty

🚨 Běžné problémy a řešení

Sekce “🚨 Běžné problémy a řešení”

Bílá obrazovka smrti (WSOD)

Sekce “Bílá obrazovka smrti (WSOD)”

Příznaky: Prázdná bílá stránka, žádná chybová zpráva

Řešení:

  1. Dočasně povolit zobrazení chyb PHP:
// Add to mainfile.php temporarily
error_reporting(E_ALL);
ini_set('display_errors', 1);
  1. Zkontrolujte protokol chyb PHP:
Terminál
tail -f /var/log/php/error.log
  1. Běžné příčiny:

    • Překročen limit paměti
    • Závažná chyba syntaxe PHP
    • Chybí požadované rozšíření
  2. Oprava problémů s pamětí:

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

Chyby připojení k databázi

Sekce “Chyby připojení k databázi”

Příznaky: „Nelze se připojit k databázi“ nebo podobně

Řešení:

  1. Ověřte přihlašovací údaje v 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. Otestujte připojení ručně:
<?php
$conn = new mysqli('localhost', 'user', 'pass', 'database');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
  1. Zkontrolujte službu MySQL:
Terminál
sudo systemctl status mysql
sudo systemctl restart mysql
  1. Ověřte uživatelská oprávnění:
GRANT ALL PRIVILEGES ON xoops.* TO 'user'@'localhost';
FLUSH PRIVILEGES;

Chyby odepření oprávnění

Sekce “Chyby odepření oprávnění”

Příznaky: Nelze nahrát soubory, nelze uložit nastavení

Řešení:

  1. Nastavte správná oprávnění:
Terminál
# 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. Nastavte správné vlastnictví:
Terminál
chown -R www-data:www-data /path/to/xoops
  1. Zkontrolujte SELinux (CentOS/RHEL):
Terminál
# Check status
sestatus
# Allow httpd to write
setsebool -P httpd_unified 1

Selhání instalace modulu

Sekce “Selhání instalace modulu”

Příznaky: Modul nelze nainstalovat, chyby SQL

Řešení:

  1. Zkontrolujte požadavky na modul:

    • Kompatibilita verze PHP
    • Požadovaná rozšíření PHP
    • Kompatibilita verze XOOPS
  2. Manuální instalace SQL:

Terminál
mysql -u user -p database < modules/mymodule/sql/mysql.sql
  1. Vymažte mezipaměť modulu:
// In xoops_data/caches/
rm -rf xoops_cache/*
rm -rf smarty_cache/*
rm -rf smarty_compile/*
  1. Zkontrolujte syntaxi xoops_version.php:
Terminál
php -l modules/mymodule/xoops_version.php

Chyby kompilace šablony

Sekce “Chyby kompilace šablony”

Příznaky: Chyby Smarty, šablona nebyla nalezena

Řešení:

  1. Vymažte mezipaměť Smarty:
Terminál
rm -rf xoops_data/caches/smarty_cache/*
rm -rf xoops_data/caches/smarty_compile/*
  1. Zkontrolujte syntaxi šablony:
{* Correct *}
{$variable}
{* Incorrect - missing $ *}
{variable}
  1. Ověřte existenci šablony:
Terminál
ls modules/mymodule/templates/
  1. Regenerujte šablony:
    • Správce → Systém → Údržba → Šablony → Obnovit

Povolit režim ladění XOOPS

Sekce “Povolit režim ladění 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 je vynikající ladicí nástroj pro 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;

Protokolování databázových dotazů

Sekce “Protokolování databázových dotazů”
// 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";
}

❓ Často kladené otázky

Sekce “❓ Často kladené otázky”

Otázka: Průvodce instalací zobrazuje prázdnou stránku Odpověď: Zkontrolujte protokoly chyb PHP, ujistěte se, že PHP má dostatek paměti, ověřte oprávnění k souboru.

O: Během instalace nelze zapisovat do mainfile.php A: Nastavte oprávnění: chmod 666 mainfile.php během instalace, poté chmod 444.

Otázka: Databázové tabulky nebyly vytvořeny Odpověď: Zkontrolujte, zda má uživatel MySQL oprávnění CREATE TABLE, ověřte existenci databáze.

Otázka: Stránka správce modulu je prázdná A: Vymažte mezipaměť, zkontrolujte syntaktické chyby modulu admin/menu.php.

Otázka: Bloky modulů se nezobrazují A: Zkontrolujte oprávnění blokování v Admin → Bloky, ověřte, zda je blokování přiřazeno stránkám.

Otázka: Aktualizace modulu se nezdaří A: Zálohujte databázi, vyzkoušejte ruční aktualizace SQL, zkontrolujte požadavky na verzi.

Otázka: Motiv se nepoužívá správně Odpověď: Vymažte mezipaměť Smarty, zkontrolujte, zda existuje theme.html, ověřte oprávnění k motivu.

Otázka: Vlastní CSS se nenačítá Odpověď: Zkontrolujte cestu k souboru, vymažte mezipaměť prohlížeče, ověřte syntaxi CSS.

Otázka: Obrázky se nezobrazují Odpověď: Zkontrolujte cesty k obrázkům, ověřte oprávnění složky pro nahrávání.

Otázka: Stránka je velmi pomalá A: Povolit ukládání do mezipaměti, optimalizovat databázi, kontrolovat pomalé dotazy, povolit OpCache.Otázka: Vysoké využití paměti A: Zvyšte memory_limit, optimalizujte velké dotazy, implementujte stránkování.


Vymazat všechny mezipaměti

Sekce “Vymazat všechny mezipaměti”
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

Zkontrolujte integritu souboru

Sekce “Zkontrolujte integritu souboru”
Terminál
# Compare against fresh install
diff -r /path/to/xoops /path/to/fresh-xoops

🔗 Související dokumentace

Sekce “🔗 Související dokumentace”
  • Začínáme
  • Nejlepší bezpečnostní postupy
  • Plán XOOPS 4.0


#xoops #odstraňování problémů #ladění #časté dotazy #chyby #řešení