Menyelesaikan masalah
Penyelesaian kepada masalah biasa dan teknik nyahpepijat untuk XOOPS CMS.
📋 Diagnosis Pantas
Section titled “📋 Diagnosis Pantas”Sebelum menyelami isu khusus, semak punca biasa berikut:
- Kebenaran Fail - Direktori memerlukan 755, fail memerlukan 644
- PHP Versi - Pastikan PHP 7.4+ (8.x disyorkan)
- Log Ralat - Semak log ralat
xoops_data/logs/dan PHP - Cache - Kosongkan cache dalam Admin → Sistem → Penyelenggaraan
🗂️ Kandungan Bahagian
Section titled “🗂️ Kandungan Bahagian”Isu Biasa
Section titled “Isu Biasa”- Skrin Putih Kematian (WSOD)
- Ralat Sambungan Pangkalan Data
- Kebenaran Ditolak Ralat
- Kegagalan Pemasangan Modul
- Ralat Penyusunan Templat
- Pemasangan FAQ
- Modul FAQ
- Tema FAQ
- Prestasi FAQ
Penyahpepijatan
Section titled “Penyahpepijatan”- Mendayakan Mod Nyahpepijat
- Menggunakan Ray Debugger
- Penyahpepijatan Pertanyaan Pangkalan Data
- Penyahpepijatan Templat Smarty
🚨 Isu & Penyelesaian Biasa
Section titled “🚨 Isu & Penyelesaian Biasa”Skrin Kematian Putih (WSOD)
Section titled “Skrin Kematian Putih (WSOD)”Simptom: Halaman putih kosong, tiada mesej ralat
Penyelesaian:
- Dayakan paparan ralat PHP buat sementara waktu:
// Add to mainfile.php temporarily error_reporting(E_ALL); ini_set('display_errors', 1);- Semak PHP log ralat:
tail -f /var/log/php/error.log-
Punca biasa:
- Had memori melebihi
- Fatal PHP ralat sintaks
- Tiada sambungan yang diperlukan
-
Selesaikan masalah ingatan:
// In mainfile.php or php.ini ini_set('memory_limit', '256M');Ralat Sambungan Pangkalan Data
Section titled “Ralat Sambungan Pangkalan Data”Simptom: “Tidak dapat menyambung ke pangkalan data” atau yang serupa
Penyelesaian:
- Sahkan kelayakan dalam 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');- Uji sambungan secara manual:
<?php $conn = new mysqli('localhost', 'user', 'pass', 'database'); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully";- Semak perkhidmatan MySQL:
sudo systemctl status mysql sudo systemctl restart mysql- Sahkan kebenaran pengguna:
GRANT ALL PRIVILEGES ON xoops.* TO 'user'@'localhost'; FLUSH PRIVILEGES;Kebenaran Ditolak Ralat
Section titled “Kebenaran Ditolak Ralat”Simptom: Tidak boleh memuat naik fail, tidak boleh menyimpan tetapan
Penyelesaian:
- Tetapkan kebenaran yang betul:
# 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/- Tetapkan pemilikan yang betul:
chown -R www-data:www-data /path/to/xoops- Semak SELinux (CentOS/RHEL):
# Check status sestatus
# Allow httpd to write setsebool -P httpd_unified 1Kegagalan Pemasangan Modul
Section titled “Kegagalan Pemasangan Modul”Simptom: Modul tidak dapat dipasang, SQL ralat
Penyelesaian:
-
Semak keperluan modul:
- PHP keserasian versi
- Diperlukan PHP sambungan
- XOOPS keserasian versi
-
Pemasangan SQL manual:
mysql -u user -p database < modules/mymodule/sql/mysql.sql- Kosongkan cache modul:
// In xoops_data/caches/ rm -rf xoops_cache/* rm -rf smarty_cache/* rm -rf smarty_compile/*- Semak xoops_version.php syntax:
php -l modules/mymodule/xoops_version.phpRalat Penyusunan Templat
Section titled “Ralat Penyusunan Templat”Simptom: Ralat pintar, templat tidak ditemui
Penyelesaian:
- Kosongkan cache Smarty:
rm -rf xoops_data/caches/smarty_cache/* rm -rf xoops_data/caches/smarty_compile/*- Semak sintaks templat:
{* Correct *} {$variable}
{* Incorrect - missing $ *} {variable}- Sahkan templat wujud:
ls modules/mymodule/templates/- Jana semula templat:
- Pentadbir → Sistem → Penyelenggaraan → Templat → Menjana semula
🐛 Teknik Nyahpepijat
Section titled “🐛 Teknik Nyahpepijat”Dayakan XOOPS Mod Nyahpepijat
Section titled “Dayakan XOOPS Mod Nyahpepijat”// In mainfile.phpdefine('XOOPS_DEBUG_LEVEL', 2);
// Levels:// 0 = Off// 1 = PHP debug// 2 = PHP + SQL debug// 3 = PHP + SQL + Smarty templatesMenggunakan Ray Debugger
Section titled “Menggunakan Ray Debugger”Ray ialah alat penyahpepijatan yang sangat baik untuk PHP:
// Install via Composercomposer require spatie/ray --dev
// Usage in your coderay($variable);ray($object)->expand();ray()->measure();
// Database queriesray($sql)->label('Query');Konsol Nyahpepijat Pintar
Section titled “Konsol Nyahpepijat Pintar”{* Enable in template *}{debug}
{* Or in PHP *}$xoopsTpl->debugging = true;Pengelogan Pertanyaan Pangkalan Data
Section titled “Pengelogan Pertanyaan Pangkalan Data”// 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";}❓ Soalan Lazim
Section titled “❓ Soalan Lazim”Pemasangan
Section titled “Pemasangan”S: Wizard pemasangan menunjukkan halaman kosong J: Semak PHP log ralat, pastikan PHP mempunyai memori yang mencukupi, sahkan kebenaran fail.
S: Tidak boleh menulis ke fail utama.php during installation
A: Tetapkan kebenaran: chmod 666 mainfile.php semasa pemasangan, kemudian chmod 444 selepas itu.
S: Jadual pangkalan data tidak dibuat J: Semak pengguna MySQL mempunyai CREATE TABLE keistimewaan, sahkan pangkalan data wujud.
S: Halaman pentadbir modul kosong J: Kosongkan cache, semak modul admin/menu.php untuk ralat sintaks.
S: Blok modul tidak dipaparkan J: Semak kebenaran blok dalam Pentadbir → Sekat, sahkan blok diberikan kepada halaman.
S: Kemas kini modul gagal J: Sandaran pangkalan data, cuba kemas kini manual SQL, semak keperluan versi.
S: Tema tidak digunakan dengan betul J: Kosongkan cache Smarty, semak theme.html wujud, sahkan kebenaran tema.
S: Tersuai CSS tidak dimuatkan J: Semak laluan fail, kosongkan cache penyemak imbas, sahkan sintaks CSS.
S: Imej tidak dipaparkan J: Semak laluan imej, sahkan kebenaran folder muat naik.
Prestasi
Section titled “Prestasi”S: Tapak sangat perlahan A: Dayakan caching, optimumkan pangkalan data, semak pertanyaan lambat, dayakan OpCache.
S: Penggunaan memori yang tinggi J: Tingkatkan had_memori, optimumkan pertanyaan besar, laksanakan penomboran.---
🔧 Arahan Penyelenggaraan
Section titled “🔧 Arahan Penyelenggaraan”Kosongkan Semua Cache
Section titled “Kosongkan Semua Cache”#!/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!"Pengoptimuman Pangkalan Data
Section titled “Pengoptimuman Pangkalan Data”-- 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 databaseSemak Integriti Fail
Section titled “Semak Integriti Fail”# Compare against fresh installdiff -r /path/to/xoops /path/to/fresh-xoops🔗 Dokumentasi Berkaitan
Section titled “🔗 Dokumentasi Berkaitan”- Bermula
- Amalan Terbaik Keselamatan
- XOOPS 4.0 Pelan Hala Tuju
📚 Sumber Luaran
Section titled “📚 Sumber Luaran”#XOOPS #penyelesaian masalah #penyahpepijat #faq #ralat #penyelesaian