Rozwiązywanie problemów
Rozwiązania dla typowych problemów i techniki debugowania dla CMS XOOPS.
Szybka diagnoza
Dział zatytułowany „Szybka diagnoza”Przed przejściem do konkretnych problemów, sprawdź te typowe przyczyny:
- Uprawnienia plików - Katalogi potrzebują 755, pliki potrzebują 644
- Wersja PHP - Upewnij się, że PHP 7.4+ (zalecana 8.x)
- Dzienniki błędów - Sprawdź
xoops_data/logs/i dzienniki błędów PHP - Cache - Wyczyść pamięć podręczną w Admin → System → Maintenance
Zawartość sekcji
Dział zatytułowany „Zawartość sekcji”Typowe problemy
Dział zatytułowany „Typowe problemy”- Biały ekran śmierci (WSOD)
- Błędy połączenia z bazą danych
- Błędy odmowy dostępu
- Błędy instalacji modułu
- Błędy kompilacji szablonów
- FAQ instalacji
- FAQ modułów
- FAQ motywów
- FAQ wydajności
Debugowanie
Dział zatytułowany „Debugowanie”- Włączanie trybu debugowania
- Używanie Ray Debugger
- Debugowanie zapytań bazodanowych
- Debugowanie szablonów Smarty
Typowe problemy i rozwiązania
Dział zatytułowany „Typowe problemy i rozwiązania”Biały ekran śmierci (WSOD)
Dział zatytułowany „Biały ekran śmierci (WSOD)”Objawy: Pusta biała strona, brak komunikatu błędu
Rozwiązania:
-
Tymczasowo włącz wyświetlanie błędów PHP:
// Dodaj do mainfile.php tymczasowoerror_reporting(E_ALL);ini_set('display_errors', 1); -
Sprawdź dziennik błędów PHP:
Okno terminala tail -f /var/log/php/error.log -
Typowe przyczyny:
- Limit pamięci przekroczony
- Błąd fatalna składni PHP
- Brakujące wymagane rozszerzenie
-
Napraw problemy z pamięcią:
// W mainfile.php lub php.iniini_set('memory_limit', '256M');
Błędy połączenia z bazą danych
Dział zatytułowany „Błędy połączenia z bazą danych”Objawy: “Nie można połączyć się z bazą danych” lub podobne
Rozwiązania:
-
Zweryfikuj poświadczenia w 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'); -
Ręczne przetestuj połączenie:
<?php$conn = new mysqli('localhost', 'user', 'pass', 'database');if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);}echo "Connected successfully"; -
Sprawdź usługę MySQL:
Okno terminala sudo systemctl status mysqlsudo systemctl restart mysql -
Zweryfikuj uprawnienia użytkownika:
GRANT ALL PRIVILEGES ON xoops.* TO 'user'@'localhost';FLUSH PRIVILEGES;
Błędy odmowy dostępu
Dział zatytułowany „Błędy odmowy dostępu”Objawy: Nie można przesłać plików, nie można zapisać ustawień
Rozwiązania:
-
Ustaw prawidłowe uprawnienia:
Okno terminala # Katalogifind /path/to/xoops -type d -exec chmod 755 {} \;# Plikifind /path/to/xoops -type f -exec chmod 644 {} \;# Katalogi do zapisuchmod -R 777 xoops_data/chmod -R 777 uploads/ -
Ustaw prawidłową właścicielość:
Okno terminala chown -R www-data:www-data /path/to/xoops -
Sprawdź SELinux (CentOS/RHEL):
Okno terminala # Sprawdź statussestatus# Zezwól httpd na zapissetsebool -P httpd_unified 1
Błędy instalacji modułu
Dział zatytułowany „Błędy instalacji modułu”Objawy: Moduł nie instaluje się, błędy SQL
Rozwiązania:
-
Sprawdź wymagania modułu:
- Kompatybilność wersji PHP
- Wymagane rozszerzenia PHP
- Kompatybilność wersji XOOPS
-
Ręczna instalacja SQL:
Okno terminala mysql -u user -p database < modules/mymodule/sql/mysql.sql -
Wyczyść pamięć podręczną modułu:
// W xoops_data/caches/rm -rf xoops_cache/*rm -rf smarty_cache/*rm -rf smarty_compile/* -
Sprawdź składnię xoops_version.php:
Okno terminala php -l modules/mymodule/xoops_version.php
Błędy kompilacji szablonów
Dział zatytułowany „Błędy kompilacji szablonów”Objawy: Błędy Smarty, szablon nie znaleziony
Rozwiązania:
-
Wyczyść pamięć podręczną Smarty:
Okno terminala rm -rf xoops_data/caches/smarty_cache/*rm -rf xoops_data/caches/smarty_compile/* -
Sprawdź składnię szablonu:
{* Poprawnie *}{$variable}{* Niepoprawnie - brak $ *}{variable} -
Zweryfikuj, że szablon istnieje:
Okno terminala ls modules/mymodule/templates/ -
Regeneruj szablony:
- Admin → System → Maintenance → Templates → Regenerate
Techniki debugowania
Dział zatytułowany „Techniki debugowania”Włącz tryb debugowania XOOPS
Dział zatytułowany „Włącz tryb debugowania XOOPS”// W mainfile.phpdefine('XOOPS_DEBUG_LEVEL', 2);
// Poziomy:// 0 = Wyłączony// 1 = Debugowanie PHP// 2 = Debugowanie PHP + SQL// 3 = Debugowanie PHP + SQL + szablonów SmartyUżywanie Ray Debugger
Dział zatytułowany „Używanie Ray Debugger”Ray to doskonałe narzędzie debugowania dla PHP:
// Zainstaluj przez Composercomposer require spatie/ray --dev
// Użycie w kodzieray($variable);ray($object)->expand();ray()->measure();
// Zapytania bazodanoweray($sql)->label('Query');Konsola debugowania Smarty
Dział zatytułowany „Konsola debugowania Smarty”{* Włącz w szablonie *}{debug}
{* Lub w PHP *}$xoopsTpl->debugging = true;Logowanie zapytań bazodanowych
Dział zatytułowany „Logowanie zapytań bazodanowych”// Włącz logowanie zapytań$GLOBALS['xoopsDB']->setLogger(new XoopsLogger());
// Pobierz wszystkie zapytania$queries = $GLOBALS['xoopsLogger']->queries;foreach ($queries as $query) { echo $query['sql'] . " - " . $query['time'] . "s\n";}Często zadawane pytania
Dział zatytułowany „Często zadawane pytania”Instalacja
Dział zatytułowany „Instalacja”P: Kreator instalacji pokazuje pustą stronę O: Sprawdź dzienniki błędów PHP, upewnij się, że PHP ma wystarczająco pamięci, zweryfikuj uprawnienia plików.
P: Nie można zapisać mainfile.php podczas instalacji
O: Ustaw uprawnienia: chmod 666 mainfile.php podczas instalacji, następnie chmod 444 po.
P: Tabele bazy danych nie zostały utworzone O: Sprawdź czy użytkownik MySQL ma uprawnienia CREATE TABLE, zweryfikuj czy baza danych istnieje.
P: Strona administracji modułu jest pusta O: Wyczyść pamięć podręczną, sprawdź admin/menu.php modułu pod kątem błędów składni.
P: Bloki modułu nie są wyświetlane O: Sprawdź uprawnienia bloków w Admin → Blocks, zweryfikuj czy blok jest przypisany do stron.
P: Aktualizacja modułu nie powiedzie się O: Utwórz kopię zapasową bazy danych, spróbuj ręcznych aktualizacji SQL, sprawdź wymagania wersji.
P: Motyw nie stosuje się prawidłowo O: Wyczyść pamięć podręczną Smarty, sprawdź czy theme.html istnieje, zweryfikuj uprawnienia motywu.
P: Niestandardowy CSS nie ładuje się O: Sprawdź ścieżkę pliku, wyczyść pamięć podręczną przeglądarki, zweryfikuj składnię CSS.
P: Obrazy się nie wyświetlają O: Sprawdź ścieżki obrazów, zweryfikuj uprawnienia folderu uploads.
Wydajność
Dział zatytułowany „Wydajność”P: Witryna jest bardzo powolna O: Włącz caching, zoptymalizuj bazę danych, sprawdź wolne zapytania, włącz OpCache.
P: Wysokie wykorzystanie pamięci O: Zwiększ memory_limit, zoptymalizuj duże zapytania, implementuj paginację.
Polecenia konserwacyjne
Dział zatytułowany „Polecenia konserwacyjne”Wyczyść wszystkie pamięci podręczne
Dział zatytułowany „Wyczyść wszystkie pamięci podręczne”#!/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!"Optymalizacja bazy danych
Dział zatytułowany „Optymalizacja bazy danych”-- Optymalizuj wszystkie tabeleOPTIMIZE TABLE xoops_config;OPTIMIZE TABLE xoops_users;OPTIMIZE TABLE xoops_session;-- Powtórz dla innych tabel
-- Lub optymalizuj wszystko narazmysqlcheck -o -u user -p databaseSprawdzenie integralności plików
Dział zatytułowany „Sprawdzenie integralności plików”# Porównaj z czystą instalacjądiff -r /path/to/xoops /path/to/fresh-xoopsPowiązana dokumentacja
Dział zatytułowany „Powiązana dokumentacja”- Getting Started
- Security Best Practices
- XOOPS 4.0 Roadmap
Zasoby zewnętrzne
Dział zatytułowany „Zasoby zewnętrzne”#xoops #troubleshooting #debugging #faq #errors #solutions