Lewati ke konten

Pemecahan Masalah

Solusi untuk masalah umum dan teknik debugging untuk XOOPS CMS.


Sebelum mendalami masalah tertentu, periksa penyebab umum berikut:

  1. Izin File - Direktori memerlukan 755, file memerlukan 644
  2. Versi PHP - Pastikan PHP 7.4+ (disarankan 8.x)
  3. Log Kesalahan - Periksa log kesalahan xoops_data/logs/ dan PHP
  4. Cache - Hapus cache di Admin → Sistem → Pemeliharaan

  • Layar Putih Kematian (WSOD)
  • Kesalahan Koneksi Basis Data
  • Izin Ditolak Kesalahan
  • Kegagalan Instalasi module
  • Kesalahan Kompilasi Template
  • FAQ Instalasi
  • module FAQ
  • FAQ theme
  • FAQ Kinerja
  • Mengaktifkan Mode Debug
  • Menggunakan Ray Debugger
  • Debugging Kueri Basis Data
  • Proses Debugging template Smarty

Gejala: Halaman putih kosong, tidak ada pesan kesalahan

Solusi:

  1. Aktifkan tampilan kesalahan PHP sementara:

    // Add to mainfile.php temporarily
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
  2. Periksa log kesalahan PHP:

    Terminal window
    tail -f /var/log/php/error.log
  3. Penyebab umum:

    • Batas memori terlampaui
    • Kesalahan sintaksis PHP yang fatal
    • Ekstensi yang diperlukan tidak ada
  4. Memperbaiki masalah memori:

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

Gejala: “Tidak dapat terhubung ke database” atau serupa

Solusi:

  1. Verifikasi kredensial di 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');
  2. Uji koneksi secara manual:

    <?php
    $conn = new mysqli('localhost', 'user', 'pass', 'database');
    if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    }
    echo "Connected successfully";
  3. Periksa layanan MySQL:

    Terminal window
    sudo systemctl status mysql
    sudo systemctl restart mysql
  4. Verifikasi izin pengguna:

    GRANT ALL PRIVILEGES ON xoops.* TO 'user'@'localhost';
    FLUSH PRIVILEGES;

Gejala: Tidak dapat mengunggah file, tidak dapat menyimpan pengaturan

Solusi:

  1. Setel izin yang benar:

    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/
  2. Tetapkan kepemilikan yang benar:

    Terminal window
    chown -R www-data:www-data /path/to/xoops
  3. Periksa SELinux (CentOS/RHEL):

    Terminal window
    # Check status
    sestatus
    # Allow httpd to write
    setsebool -P httpd_unified 1

Gejala: module tidak dapat dipasang, kesalahan SQL

Solusi:

  1. Periksa persyaratan module:

    • Kompatibilitas versi PHP
    • Ekstensi PHP yang diperlukan
    • Kompatibilitas versi XOOPS
  2. Pemasangan manual SQL:

    Terminal window
    mysql -u user -p database < modules/mymodule/sql/mysql.sql
  3. Hapus cache module:

    // In xoops_data/caches/
    rm -rf xoops_cache/*
    rm -rf smarty_cache/*
    rm -rf smarty_compile/*
  4. Periksa sintaks xoops_version.php:

    Terminal window
    php -l modules/mymodule/xoops_version.php

Gejala: Kesalahan Smarty, template tidak ditemukan

Solusi:

  1. Hapus cache Smarty:

    Terminal window
    rm -rf xoops_data/caches/smarty_cache/*
    rm -rf xoops_data/caches/smarty_compile/*
  2. Periksa sintaks template:

    {* Correct *}
    {$variable}
    {* Incorrect - missing $ *}
    {variable}
  3. Verifikasi template yang ada:

    Terminal window
    ls modules/mymodule/templates/
  4. Buat ulang template:

    • Admin → Sistem → Pemeliharaan → template → Regenerasi

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

Ray adalah alat debugging yang luar biasa untuk 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: Wizard instalasi menampilkan halaman kosong J: Periksa log kesalahan PHP, pastikan PHP memiliki cukup memori, verifikasi izin file.

Q: Tidak dapat menulis ke mainfile.php selama instalasi J: Tetapkan izin: chmod 666 mainfile.php selama instalasi, lalu chmod 444 setelahnya.

Q: Tabel database tidak dibuat A: Periksa pengguna MySQL memiliki hak istimewa CREATE TABLE, verifikasi database ada.

Q: Halaman admin module kosong A: Hapus cache, periksa admin/menu.php module untuk kesalahan sintaksis.

Q: block module tidak muncul A: Periksa izin block di Admin → block, verifikasi block ditugaskan ke halaman.

Q: Pembaruan module gagal A: Cadangkan basis data, coba pembaruan manual SQL, periksa persyaratan versi.

Q: theme tidak diterapkan dengan benar A: Hapus cache Smarty, periksa keberadaan theme.html, verifikasi izin theme.

Q: CSS khusus tidak dimuat A: Periksa jalur file, hapus cache browser, verifikasi sintaks CSS.Q: Gambar tidak ditampilkan A: Periksa jalur gambar, verifikasi izin folder unggahan.

T: Situs sangat lambat J: Aktifkan caching, optimalkan database, periksa kueri lambat, aktifkan OpCache.

T: Penggunaan memori tinggi J: Tingkatkan memory_limit, optimalkan kueri besar, terapkan penomoran halaman.


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

  • Memulai
  • Praktik Terbaik Keamanan
  • Peta Jalan XOOPS 4.0


#xoops #pemecahan masalah #debugging #faq #errors #solutions