Bỏ qua để đến nội dung

Xử lý sự cố

Giải pháp cho các vấn đề thường gặp và kỹ thuật gỡ lỗi cho XOOPS CMS.


Trước khi đi sâu vào các vấn đề cụ thể, hãy kiểm tra các nguyên nhân phổ biến sau:

  1. Quyền truy cập tệp - Thư mục cần 755, tệp cần 644
  2. Phiên bản PHP - Đảm bảo PHP 7.4+ (khuyến nghị 8.x)
  3. Nhật ký lỗi - Kiểm tra nhật ký lỗi xoops_data/logs/ và PHP
  4. Cache - Xóa bộ nhớ đệm trong Quản trị → Hệ thống → Bảo trì

  • Màn hình trắng chết chóc (WSOD)
  • Lỗi kết nối cơ sở dữ liệu
  • Lỗi từ chối quyền
  • Lỗi cài đặt mô-đun
  • Lỗi biên dịch mẫu
  • Câu hỏi thường gặp về cài đặt
  • Câu hỏi thường gặp về mô-đun
  • Câu hỏi thường gặp về chủ đề
  • Câu hỏi thường gặp về hiệu suất
  • Kích hoạt chế độ gỡ lỗi
  • Sử dụng trình gỡ lỗi Ray
  • Gỡ lỗi truy vấn cơ sở dữ liệu
  • Gỡ lỗi mẫu Smarty

🚨 Các vấn đề thường gặp và giải pháp

Phần tiêu đề “🚨 Các vấn đề thường gặp và giải pháp”

Triệu chứng: Trang trắng, không có thông báo lỗi

Giải pháp:

  1. Bật tạm thời hiển thị lỗi PHP:
// Add to mainfile.php temporarily
error_reporting(E_ALL);
ini_set('display_errors', 1);
  1. Kiểm tra nhật ký lỗi PHP:
Terminal window
tail -f /var/log/php/error.log
  1. Nguyên nhân thường gặp:

    • Đã vượt quá giới hạn bộ nhớ
    • Lỗi cú pháp PHP nghiêm trọng
    • Thiếu phần mở rộng cần thiết
  2. Khắc phục sự cố bộ nhớ:

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

Triệu chứng: “Không thể kết nối với cơ sở dữ liệu” hoặc tương tự

Giải pháp:

  1. Xác minh thông tin xác thực trong 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. Kiểm tra kết nối thủ công:
<?php
$conn = new mysqli('localhost', 'user', 'pass', 'database');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
  1. Kiểm tra dịch vụ MySQL:
Terminal window
sudo systemctl status mysql
sudo systemctl restart mysql
  1. Xác minh quyền của người dùng:
GRANT ALL PRIVILEGES ON xoops.* TO 'user'@'localhost';
FLUSH PRIVILEGES;

Triệu chứng: Không upload được file, không lưu được cài đặt

Giải pháp:

  1. Đặt quyền chính xác:
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. Đặt quyền sở hữu chính xác:
Terminal window
chown -R www-data:www-data /path/to/xoops
  1. Kiểm tra SELinux (CentOS/RHEL):
Terminal window
# Check status
sestatus
# Allow httpd to write
setsebool -P httpd_unified 1

Triệu chứng: Mô-đun không cài đặt được, lỗi SQL

Giải pháp:

  1. Kiểm tra các yêu cầu của mô-đun:

    • Khả năng tương thích phiên bản PHP
    • Phần mở rộng PHP bắt buộc
    • Khả năng tương thích phiên bản XOOPS
  2. Hướng dẫn cài đặt SQL:

Terminal window
mysql -u user -p database < modules/mymodule/sql/mysql.sql
  1. Xóa bộ đệm mô-đun:
// In xoops_data/caches/
rm -rf xoops_cache/*
rm -rf smarty_cache/*
rm -rf smarty_compile/*
  1. Kiểm tra cú pháp xoops_version.php:
Terminal window
php -l modules/mymodule/xoops_version.php

Triệu chứng: Lỗi Smarty, không tìm thấy mẫu

Giải pháp:

  1. Xóa bộ nhớ đệm Smarty:
Terminal window
rm -rf xoops_data/caches/smarty_cache/*
rm -rf xoops_data/caches/smarty_compile/*
  1. Kiểm tra cú pháp mẫu:
{* Correct *}
{$variable}
{* Incorrect - missing $ *}
{variable}
  1. Xác minh mẫu tồn tại:
Terminal window
ls modules/mymodule/templates/
  1. Tái tạo templates:
    • Quản trị → Hệ thống → Bảo trì → Mẫu → Tạo lại

// In mainfile.php
define('XOOPS_DEBUG_LEVEL', 2);
// Levels:
// 0 = Off
// 1 = PHP debug
// 2 = PHP + SQL debug
// 3 = PHP + SQL + Smarty templates

Ray là một công cụ sửa lỗi tuyệt vời cho 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";
}

Q: Trình hướng dẫn cài đặt hiển thị trang trống Trả lời: Kiểm tra nhật ký lỗi PHP, đảm bảo PHP có đủ bộ nhớ, xác minh quyền truy cập tệp.Q: Không thể ghi vào mainfile.php trong khi cài đặt Đáp: Đặt quyền: chmod 666 mainfile.php trong khi cài đặt, sau đó là chmod 444.

Q: Bảng cơ sở dữ liệu không được tạo Trả lời: Kiểm tra xem người dùng MySQL có đặc quyền TẠO BẢNG, xác minh cơ sở dữ liệu tồn tại.

Q: Trang admin của Mô-đun trống A: Xóa bộ nhớ đệm, kiểm tra admin/menu.php của mô-đun để tìm lỗi cú pháp.

Q: Khối mô-đun không hiển thị Trả lời: Kiểm tra quyền chặn trong Quản trị → Khối, xác minh khối được gán cho các trang.

Q: Cập nhật mô-đun không thành công A: Sao lưu cơ sở dữ liệu, thử cập nhật SQL thủ công, kiểm tra yêu cầu phiên bản.

Q: Chủ đề không áp dụng đúng Trả lời: Xóa bộ đệm Smarty, kiểm tra xem theme.html có tồn tại không, xác minh quyền của chủ đề.

Q: CSS tùy chỉnh không tải A: Kiểm tra đường dẫn tệp, xóa bộ nhớ cache của trình duyệt, xác minh cú pháp CSS.

Q: Hình ảnh không hiển thị Trả lời: Kiểm tra đường dẫn hình ảnh, xác minh quyền của thư mục uploads.

Q: Trang web rất chậm Đáp: Bật bộ nhớ đệm, tối ưu hóa cơ sở dữ liệu, kiểm tra các truy vấn chậm, bật OpCache.

Q: Mức sử dụng bộ nhớ cao Đáp: Tăng giới hạn bộ nhớ, tối ưu hóa các truy vấn lớn, triển khai phân trang.


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

  • Bắt đầu
  • Thực tiễn tốt nhất về bảo mật
  • Lộ trình XOOPS 4.0


#xoops #khắc phục sự cố #gỡ lỗi #câu hỏi thường gặp #lỗi #giải pháp