Skip to content

Odpravljanje težav

Rešitve pogostih težav in tehnike odpravljanja napak za XOOPS CMS.


Preden se poglobite v določene težave, preverite te pogoste vzroke:

  1. Dovoljenja za datoteke - imeniki potrebujejo 755, datoteke potrebujejo 644
  2. PHP Različica - Zagotovite PHP 7.4+ (priporočeno 8.x)
  3. Dnevniki napak - Preverite dnevnike napak xoops_data/logs/ in PHP
  4. Predpomnilnik - Počistite predpomnilnik v Skrbnik → Sistem → Vzdrževanje

  • Beli zaslon smrti (WSOD)
  • Napake povezave z bazo podatkov
  • Napake zavrnjenega dovoljenja
  • Napake pri namestitvi modula
  • Napake pri prevajanju predloge
  • Namestitev FAQ
  • Modul FAQ
  • Tema FAQ
  • Zmogljivost FAQ
  • Omogočanje načina za odpravljanje napak
  • Uporaba Ray Debuggerja
  • Razhroščevanje poizvedb v bazi podatkov
  • Odpravljanje napak v predlogi Smarty

Simptomi: Prazna bela stran, brez sporočila o napaki

Rešitve:

  1. Začasno omogočite prikaz napak PHP:
// Add to mainfile.php temporarily
error_reporting(E_ALL);
ini_set('display_errors', 1);
  1. Preverite PHP dnevnik napak:
Terminal window
tail -f /var/log/php/error.log
  1. Pogosti vzroki:

    • Omejitev pomnilnika je presežena
    • Usodna sintaksna napaka PHP
    • Manjka zahtevana razširitev
  2. Odpravite težave s pomnilnikom:

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

Simptomi: “Ni mogoče vzpostaviti povezave z bazo podatkov” ali podobno

Rešitve:

  1. Preverite poverilnice 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. Ročno preizkusite povezavo:
<?php
$conn = new mysqli('localhost', 'user', 'pass', 'database');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
  1. Preverite storitev MySQL:
Terminal window
sudo systemctl status mysql
sudo systemctl restart mysql
  1. Preverite uporabniška dovoljenja:
GRANT ALL PRIVILEGES ON xoops.* TO 'user'@'localhost';
FLUSH PRIVILEGES;

Simptomi: Ni mogoče naložiti datotek, ni mogoče shraniti nastavitev

Rešitve:

  1. Nastavite pravilna dovoljenja:
Terminal window
# 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. Nastavite pravilno lastništvo:
Terminal window
chown -R www-data:www-data /path/to/xoops
  1. Preverite SELinux (CentOS/RHEL):
Terminal window
# Check status
sestatus
# Allow httpd to write
setsebool -P httpd_unified 1

Simptomi: Modul se ne namesti, SQL napak

Rešitve:

  1. Preverite zahteve modula:

    • Združljivost različice PHP
    • Zahtevane razširitve PHP
    • Združljivost različice XOOPS
  2. Ročna SQL namestitev:

Terminal window
mysql -u user -p database < modules/mymodule/sql/mysql.sql
  1. Počisti predpomnilnik modula:
// In xoops_data/caches/
rm -rf xoops_cache/*
rm -rf smarty_cache/*
rm -rf smarty_compile/*
  1. Preverite xoops_version.php syntax:
Terminal window
php -l modules/mymodule/xoops_version.php

Simptomi: Smarty napake, predloge ni mogoče najti

Rešitve:

  1. Počisti predpomnilnik Smarty:
Terminal window
rm -rf xoops_data/caches/smarty_cache/*
rm -rf xoops_data/caches/smarty_compile/*
  1. Preverite sintakso predloge:
{* Correct *}
{$variable}
{* Incorrect - missing $ *}
{variable}
  1. Preverite, ali predloga obstaja:
Terminal window
ls modules/mymodule/templates/
  1. Ponovno ustvarite predloge:
    • Skrbnik → Sistem → Vzdrževanje → Predloge → Ponovno ustvari

// 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 odlično orodje za odpravljanje napak za 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";
}

V: Čarovnik za namestitev prikaže prazno stran O: Preverite dnevnike napak PHP, zagotovite, da ima PHP dovolj pomnilnika, preverite dovoljenja za datoteke.

V: Ne morem pisati v glavno datoteko.php during installation O: Nastavite dovoljenja: chmod 666 mainfile.php med namestitvijo, nato chmod 444 po njej.

V: Tabele baze podatkov niso ustvarjene O: Preverite, ali ima uporabnik MySQL privilegije CREATE TABLE, preverite, ali baza podatkov obstaja.

V: Skrbniška stran modula je prazna O: Počistite predpomnilnik, preverite modul admin/menu.php za sintaksne napake.

V: Bloki modulov niso prikazani O: Preverite dovoljenja za blokiranje v Skrbnik → Bloki, preverite, ali je blok dodeljen stranem.

V: Posodobitev modula ne uspe O: Varnostno kopirajte bazo podatkov, poskusite z ročnimi posodobitvami SQL, preverite zahteve glede različice.

V: Tema se ne uporablja pravilno O: Počistite predpomnilnik Smarty, preverite, ali theme.html obstaja, preverite dovoljenja za temo.

V: Po meri CSS se ne nalaga O: Preverite pot datoteke, počistite predpomnilnik brskalnika, preverite sintakso CSS.

V: Slike se ne prikažejo O: Preverite poti do slik, preverite dovoljenja mape za nalaganje.

V: Spletno mesto je zelo počasno O: Omogoči predpomnjenje, optimiziraj bazo podatkov, preveri počasne poizvedbe, omogoči OpCache.

V: Velika poraba pomnilnika A: Povečajte memory_limit, optimizirajte velike poizvedbe, implementirajte paginacijo.---

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

  • Začetek
  • Najboljše varnostne prakse
  • XOOPS 4.0 Načrt


#XOOPS #odpravljanje težav #debugging #faq #errors #solutions