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:
- Oprávnění k souborům – Adresáře potřebují 755, soubory 644
- Verze PHP – Zajistěte PHP 7.4+ (doporučeno 8.x)
- Protokoly chyb – Zkontrolujte protokoly chyb
xoops_data/logs/a PHP - Cache – Vymazání mezipaměti v Admin → System → Maintenance
🗂️ Obsah sekce
Sekce “🗂️ Obsah sekce”Běžné problémy
Sekce “Běžné problémy”- Bílá obrazovka smrti (WSOD)
- Chyby připojení k databázi
- Chyby s povolením
- Selhání instalace modulu
- Chyby při kompilaci šablony
FAQ
Sekce “FAQ”- Instalace FAQ
- Modul FAQ
- Motiv FAQ
- Výkon FAQ
Ladění
Sekce “Ladění”- 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í:
- Dočasně povolit zobrazení chyb PHP:
// Add to mainfile.php temporarily error_reporting(E_ALL); ini_set('display_errors', 1);- Zkontrolujte protokol chyb PHP:
tail -f /var/log/php/error.log-
Běžné příčiny:
- Překročen limit paměti
- Závažná chyba syntaxe PHP
- Chybí požadované rozšíření
-
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í:
- 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');- 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";- Zkontrolujte službu MySQL:
sudo systemctl status mysql sudo systemctl restart mysql- 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í:
- Nastavte správná oprávnění:
# 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/- Nastavte správné vlastnictví:
chown -R www-data:www-data /path/to/xoops- Zkontrolujte SELinux (CentOS/RHEL):
# Check status sestatus
# Allow httpd to write setsebool -P httpd_unified 1Selhání instalace modulu
Sekce “Selhání instalace modulu”Příznaky: Modul nelze nainstalovat, chyby SQL
Řešení:
-
Zkontrolujte požadavky na modul:
- Kompatibilita verze PHP
- Požadovaná rozšíření PHP
- Kompatibilita verze XOOPS
-
Manuální instalace SQL:
mysql -u user -p database < modules/mymodule/sql/mysql.sql- Vymažte mezipaměť modulu:
// In xoops_data/caches/ rm -rf xoops_cache/* rm -rf smarty_cache/* rm -rf smarty_compile/*- Zkontrolujte syntaxi xoops_version.php:
php -l modules/mymodule/xoops_version.phpChyby kompilace šablony
Sekce “Chyby kompilace šablony”Příznaky: Chyby Smarty, šablona nebyla nalezena
Řešení:
- Vymažte mezipaměť Smarty:
rm -rf xoops_data/caches/smarty_cache/* rm -rf xoops_data/caches/smarty_compile/*- Zkontrolujte syntaxi šablony:
{* Correct *} {$variable}
{* Incorrect - missing $ *} {variable}- Ověřte existenci šablony:
ls modules/mymodule/templates/- Regenerujte šablony:
- Správce → Systém → Údržba → Šablony → Obnovit
🐛 Techniky ladění
Sekce “🐛 Techniky ladění”Povolit režim ladění XOOPS
Sekce “Povolit režim ladění XOOPS”// In mainfile.phpdefine('XOOPS_DEBUG_LEVEL', 2);
// Levels:// 0 = Off// 1 = PHP debug// 2 = PHP + SQL debug// 3 = PHP + SQL + Smarty templatesPoužití Ray Debugger
Sekce “Použití Ray Debugger”Ray je vynikající ladicí nástroj pro PHP:
// Install via Composercomposer require spatie/ray --dev
// Usage in your coderay($variable);ray($object)->expand();ray()->measure();
// Database queriesray($sql)->label('Query');Konzola ladění Smarty
Sekce “Konzola ladění Smarty”{* 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”Instalace
Sekce “Instalace”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.
Moduly
Sekce “Moduly”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.
Motivy
Sekce “Motivy”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í.
Výkon
Sekce “Výkon”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í.
🔧 Příkazy údržby
Sekce “🔧 Příkazy údržby”Vymazat všechny mezipaměti
Sekce “Vymazat všechny mezipaměti”#!/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!"Optimalizace databáze
Sekce “Optimalizace databáze”-- 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 databaseZkontrolujte integritu souboru
Sekce “Zkontrolujte integritu souboru”# Compare against fresh installdiff -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
📚 Externí zdroje
Sekce “📚 Externí zdroje”#xoops #odstraňování problémů #ladění #časté dotazy #chyby #řešení