Перейти до вмісту

Усунення несправностей

Рішення типових проблем і методи налагодження для XOOPS CMS.


Перш ніж заглиблюватися в конкретні проблеми, перевірте ці поширені причини:

  1. Дозволи на файли – для каталогів потрібно 755, для файлів – 644
  2. PHP Версія - Переконайтеся, що PHP 7.4+ (рекомендується 8.x)
  3. Журнали помилок - Перевірте журнали помилок xoops_data/logs/ і PHP
  4. Кеш - очистіть кеш у Адміністраторі → Система → Технічне обслуговування

  • Білий екран смерті (WSOD)
  • Помилки підключення до бази даних
  • Помилки дозволу заборонено
  • Помилки встановлення модуля
  • Помилки компіляції шаблону
  • Встановлення FAQ
  • Модуль FAQ
  • Тема FAQ
  • Продуктивність FAQ
  • Увімкнення режиму налагодження
  • Використання Ray Debugger — Налагодження запитів до бази даних — Налагодження шаблону Smarty

🚨 Поширені проблеми та рішення

Section titled “🚨 Поширені проблеми та рішення”

Симптоми: Порожня біла сторінка, повідомлення про помилку відсутнє

Рішення:

  1. Тимчасово ввімкнути відображення помилок PHP:
// Add to mainfile.php temporarily
error_reporting(E_ALL);
ini_set('display_errors', 1);
  1. Перевірити журнал помилок PHP:
Terminal window
tail -f /var/log/php/error.log
  1. Поширені причини:

    • Перевищено ліміт пам’яті
    • Фатальна PHP синтаксична помилка
    • Відсутнє необхідне розширення
  2. Виправити проблеми з пам’яттю:

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

Помилки підключення до бази даних

Section titled “Помилки підключення до бази даних”

Симптоми: «Не вдається підключитися до бази даних» або подібне

Рішення:

  1. Перевірте облікові дані в 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. Перевірте з’єднання вручну:
<?php
$conn = new mysqli('localhost', 'user', 'pass', 'database');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
  1. Перевірте службу MySQL:
Terminal window
sudo systemctl status mysql
sudo systemctl restart mysql
  1. Перевірте дозволи користувача:
GRANT ALL PRIVILEGES ON xoops.* TO 'user'@'localhost';
FLUSH PRIVILEGES;

Помилки дозволу заборонено

Section titled “Помилки дозволу заборонено”

Симптоми: Неможливо завантажити файли, неможливо зберегти налаштування

Рішення:

  1. Установіть правильні дозволи:
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. Установіть правильне право власності:
Terminal window
chown -R www-data:www-data /path/to/xoops
  1. Перевірте SELinux (CentOS/RHEL):
Terminal window
# Check status
sestatus
# Allow httpd to write
setsebool -P httpd_unified 1

Помилки встановлення модуля

Section titled “Помилки встановлення модуля”

Симптоми: Модуль не встановлюється, SQL помилок

Рішення:

  1. Перевірте вимоги до модуля:

    • Сумісність версії PHP
    • Необхідні розширення PHP
    • Сумісність версії XOOPS
  2. Ручне встановлення SQL:

Terminal window
mysql -u user -p database < modules/mymodule/sql/mysql.sql
  1. Очистити кеш модуля:
// In xoops_data/caches/
rm -rf xoops_cache/*
rm -rf smarty_cache/*
rm -rf smarty_compile/*
  1. Перевірте xoops_version.php syntax:
Terminal window
php -l modules/mymodule/xoops_version.php

Помилки компіляції шаблону

Section titled “Помилки компіляції шаблону”

Симптоми: помилки Smarty, шаблон не знайдено

Рішення:

  1. Очистити кеш Smarty:
Terminal window
rm -rf xoops_data/caches/smarty_cache/*
rm -rf xoops_data/caches/smarty_compile/*
  1. Перевірте синтаксис шаблону:
{* Correct *}
{$variable}
{* Incorrect - missing $ *}
{variable}
  1. Перевірте наявність шаблону:
Terminal window
ls modules/mymodule/templates/
  1. Відновити шаблони:
    • Адміністратор → Система → Обслуговування → Шаблони → Відновити

🐛 Методи налагодження

Section titled “🐛 Методи налагодження”

Увімкнути XOOPS режим налагодження

Section titled “Увімкнути 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 є чудовим інструментом налагодження для 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;

Журнал запитів до бази даних

Section titled “Журнал запитів до бази даних”
// 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";
}

З: Майстер інсталяції показує порожню сторінку A: Перевірте журнали помилок PHP, переконайтеся, що PHP має достатньо пам’яті, перевірте права доступу до файлів.

З: Неможливо записати в основний файл.php during installation A: Встановіть дозволи: chmod 666 mainfile.php під час встановлення, потім chmod 444 після.

П: таблиці бази даних не створено A: Перевірте, чи має користувач MySQL привілеї CREATE TABLE, перевірте наявність бази даних.

З: Сторінка адміністратора модуля порожня A: Очистіть кеш, перевірте модуль admin/menu.php на наявність синтаксичних помилок.

З: Модульні блоки не відображаються A: Перевірте дозволи на блокування в Адміністратор → Блоки, переконайтеся, що блокування призначено сторінкам.

П: Не вдається оновити модуль A: Створіть резервну копію бази даних, спробуйте вручну SQL оновлення, перевірте вимоги до версії.

З: Тема не застосовується належним чином A: Очистіть кеш Smarty, перевірте наявність theme.html, перевірте дозволи теми.

З: Спеціальний CSS не завантажується A: Перевірте шлях до файлу, очистіть кеш браузера, перевірте синтаксис CSS.

П: Зображення не відображаються A: Перевірте шляхи до зображень, перевірте дозволи папки завантажень.

З: Сайт дуже повільний A: Увімкніть кешування, оптимізуйте базу даних, перевірте наявність повільних запитів, увімкніть OpCache.

З: Велике використання пам’яті A: Збільште memory_limit, оптимізуйте великі запити, запровадьте розбиття на сторінки.---

🔧 Команди обслуговування

Section titled “🔧 Команди обслуговування”
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!"

Оптимізація бази даних

Section titled “Оптимізація бази даних”
-- 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

Перевірте цілісність файлу

Section titled “Перевірте цілісність файлу”
Terminal window
# Compare against fresh install
diff -r /path/to/xoops /path/to/fresh-xoops

🔗 Пов’язана документація

Section titled “🔗 Пов’язана документація”
  • Початок роботи
  • Найкращі методи безпеки
  • XOOPS 4.0 Дорожня карта


#XOOPS #усунення несправностей #debugging #faq #errors #solutions