Open Journal System

Error “500 Internal Server Error” di OJS? Ini Solusinya

Error 500 adalah salah satu error paling menjengkelkan di OJS, halaman tiba-tiba blank putih atau muncul pesan “500 Internal Server Error”, tanpa keterangan apa yang sebenarnya salah. Pengelola jurnal panik, tapi tidak tahu harus mulai dari mana.

Artikel ini membahas semua kemungkinan penyebab error 500 di OJS beserta langkah perbaikannya yang terurut dari yang paling mudah sampai yang membutuhkan akses server.


Daftar Isi

  1. Apa Itu Error 500 di OJS?
  2. Langkah Pertama: Aktifkan Mode Debug
  3. Penyebab 1: File Permission Salah
  4. Penyebab 2: PHP Memory Limit Terlalu Kecil
  5. Penyebab 3: Versi PHP Tidak Kompatibel
  6. Penyebab 4: File .htaccess Bermasalah
  7. Penyebab 5: Ekstensi PHP yang Diperlukan Tidak Aktif
  8. Penyebab 6: Proses Update OJS Gagal di Tengah Jalan
  9. Penyebab 7: Plugin Pihak Ketiga Bermasalah
  10. Penyebab 8: Database Error
  11. Cara Membaca Error Log OJS
  12. Checklist Diagnosis Cepat

Apa Itu Error 500 di OJS?

HTTP 500 Internal Server Error adalah respons generik dari server yang artinya: “Ada yang salah, tapi server tidak mau (atau tidak bisa) memberi tahu lebih detail.”

Di OJS, error ini bisa muncul dalam berbagai situasi:

  • Seluruh halaman OJS tidak bisa diakses (blank putih / white screen of death)
  • Hanya halaman tertentu yang error (misalnya halaman submission atau admin)
  • Muncul setelah update OJS ke versi baru
  • Muncul setelah menginstall atau mengaktifkan plugin baru
  • Muncul setelah migrasi hosting

Karena pesannya generik, langkah pertama yang wajib dilakukan adalah mengaktifkan mode debug untuk melihat pesan error aslinya.


Langkah Pertama: Aktifkan Mode Debug

Sebelum mencoba solusi apapun, aktifkan dulu mode debug agar OJS menampilkan pesan error yang sesungguhnya.

Cara Mengaktifkan Debug di config.inc.php

Buka file config.inc.php di root folder OJS via cPanel File Manager atau FTP, cari bagian [debug] dan ubah nilainya:

[debug]

; Display a backtrace when a fatal error occurs
show_stacktrace = On

; Display an error message when something unexpected occurs
display_errors = On

; Log all errors to a file
log_errors = On

; Error log file (if log_errors is On)
error_log = error.log

Setelah disimpan, muat ulang halaman yang error. Kini akan muncul pesan error yang lebih spesifik. Catat pesan errornya, lalu lanjutkan ke penyebab yang sesuai di bawah.

Penting: Setelah selesai memperbaiki, kembalikan display_errors = Off agar pesan error internal tidak terlihat oleh pengunjung.


Penyebab 1: File Permission Salah

Ini adalah penyebab paling umum error 500 setelah upload atau migrasi OJS. Server tidak dapat membaca/menulis file karena izin akses (permission) tidak sesuai.

Tanda-tandanya

Pesan error yang muncul biasanya mengandung:

  • Permission denied
  • failed to open stream
  • Unable to write to cache directory

Nilai Permission yang Benar

TipePermission
Folder/Direktori755
File644
Folder cache/, public/, files/755 atau 775

Cara Memperbaiki via cPanel

  1. Buka cPanel → File Manager
  2. Navigasi ke folder instalasi OJS
  3. Pilih semua file dan folder → klik Permissions (atau Change Permissions)
  4. Atur: Direktori = 755, File = 644
  5. Centang Recurse into subdirectories
  6. Terapkan secara terpisah untuk file dan folder

Cara Memperbaiki via SSH

# Masuk ke folder OJS
cd /home/username/public_html/ojs

# Set permission folder
find . -type d -exec chmod 755 {} \;

# Set permission file
find . -type f -exec chmod 644 {} \;

# Folder yang perlu write permission lebih longgar
chmod -R 775 cache/
chmod -R 775 public/
chmod -R 775 files/

Penyebab 2: PHP Memory Limit Terlalu Kecil

OJS adalah aplikasi yang cukup berat. Jika PHP memory limit terlalu kecil, proses akan terhenti di tengah jalan dan memicu error 500.

Tanda-tandanya

Pesan error mengandung:

  • Allowed memory size of XXXXXX bytes exhausted
  • Fatal error: Out of memory

Rekomendasi Memory Limit untuk OJS

KebutuhanMemory Limit
Minimum128 MB
Rekomendasi256 MB
Jurnal dengan banyak upload PDF512 MB

Cara Menaikkan Memory Limit

Opsi A: Lewat file .htaccess

Tambahkan baris ini di file .htaccess di root folder OJS:

php_value memory_limit 256M
php_value max_execution_time 120
php_value upload_max_filesize 20M
php_value post_max_size 20M

Opsi B: Lewat file php.ini

Buat atau edit file php.ini di root folder OJS:

memory_limit = 256M
max_execution_time = 120
upload_max_filesize = 20M
post_max_size = 20M

Opsi C: Lewat config.inc.php OJS

[general]
; Maximum execution time for each PHP script in seconds
max_execution_time = 300

Penyebab 3: Versi PHP Tidak Kompatibel

Setiap versi OJS memiliki persyaratan versi PHP minimum. Jika PHP di server terlalu lama atau justru terlalu baru (dan OJS belum mendukungnya), error 500 bisa terjadi.

Kompatibilitas Versi OJS dan PHP

Versi OJSPHP yang Didukung
OJS 3.4.xPHP 8.0 – 8.2
OJS 3.3.xPHP 7.3 – 8.1
OJS 3.2.xPHP 7.2 – 7.4
OJS 3.1.xPHP 7.1 – 7.3

Cara Cek Versi PHP di cPanel

  1. Login cPanel → cari MultiPHP Manager atau Select PHP Version
  2. Lihat versi PHP yang aktif untuk domain jurnal Anda
  3. Jika tidak sesuai, ganti ke versi yang kompatibel

Tanda Versi PHP Terlalu Baru

Jika baru saja hosting upgrade PHP otomatis (misalnya dari 7.4 ke 8.0) dan OJS tiba-tiba error, kemungkinan besar ini penyebabnya. Pesan error biasanya mengandung:

  • Deprecated: Required parameter follows optional parameter
  • Fatal error: Uncaught TypeError
  • Call to undefined function (fungsi yang dihapus di PHP versi baru)

Penyebab 4: File .htaccess Bermasalah

File .htaccess mengontrol banyak aspek cara server menangani request. Jika isinya rusak, tidak kompatibel, atau ada directive yang tidak didukung server, hasilnya adalah error 500.

Cara Mendiagnosis

Coba rename file .htaccess sementara menjadi .htaccess_backup:

  1. Buka cPanel → File Manager
  2. Cari file .htaccess di root folder OJS
  3. Rename menjadi .htaccess_backup
  4. Coba akses OJS lagi

Jika OJS kembali bisa diakses, berarti .htaccess memang penyebabnya.

Isi .htaccess OJS yang Benar

Berikut isi .htaccess standar untuk OJS 3.x dengan Apache:

# Disable directory listing
Options -Indexes

# OJS friendly URL rewriting
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # If running in a subdirectory, uncomment and adjust:
    # RewriteBase /ojs/

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [QSA,L]
</IfModule>

Catatan: Jika OJS diinstall di subdirektori (misalnya domain.com/ojs/), sesuaikan RewriteBase menjadi /ojs/.

Aktifkan mod_rewrite

Jika server tidak mengaktifkan mod_rewrite, URL cantik OJS tidak akan bekerja. Hubungi hosting untuk mengaktifkannya, atau tambahkan di .htaccess:

Options +FollowSymLinks

Penyebab 5: Ekstensi PHP yang Diperlukan Tidak Aktif

OJS membutuhkan beberapa ekstensi PHP agar berjalan normal. Jika salah satu tidak aktif, proses tertentu akan gagal.

Ekstensi PHP yang Wajib Ada untuk OJS

EkstensiFungsi
mbstringPenanganan karakter multibyte (huruf Asia, aksen, dll.)
xmlParsing dan pemrosesan XML/OAI-PMH
jsonFormat data JSON
gd atau imagickPemrosesan gambar (cover buku, thumbnail)
curlKoneksi HTTP ke layanan eksternal
zipUpload dan ekstrak file ZIP
pdo_mysqlKoneksi ke database MySQL
intlInternasionalisasi (format tanggal, angka)
opcachePerforma (opsional tapi direkomendasikan)

Cara Mengecek dan Mengaktifkan di cPanel

  1. Login cPanel → cari MultiPHP INI Editor atau Select PHP Version
  2. Pilih versi PHP yang aktif
  3. Centang ekstensi yang diperlukan
  4. Klik Apply atau Save Changes

Penyebab 6: Proses Update OJS Gagal di Tengah Jalan

Update OJS yang terganggu (koneksi terputus, timeout, memory habis) bisa meninggalkan database atau file dalam kondisi tidak konsisten — sebagian sudah diupdate, sebagian belum.

Tanda-tandanya

  • Error 500 muncul tepat setelah atau saat proses update
  • OJS sebelumnya berjalan normal
  • Ada pesan seperti Table 'ojs.new_table' doesn't exist

Cara Mengatasinya

Langkah 1: Restore dari Backup

Ini adalah solusi paling aman. Jika Anda memiliki backup sebelum update:

  1. Restore file OJS dari backup
  2. Restore database dari backup
  3. Coba update lagi dari awal dengan koneksi stabil

Langkah 2: Jalankan Upgrade Script Manual

Jika tidak ada backup, coba jalankan script upgrade via SSH:

cd /home/username/public_html/ojs
php tools/upgrade.php upgrade

Perhatikan output yang muncul — biasanya ada pesan spesifik tentang tabel atau field yang bermasalah.

Langkah 3: Perbaiki Database Manual

Jika ada tabel yang kurang, Anda bisa menemukan struktur tabel yang seharusnya ada di file dbscripts/xml/ dalam package OJS versi target, lalu jalankan SQL-nya secara manual via phpMyAdmin.

Pelajaran: Selalu backup database dan file sebelum melakukan update OJS, sekecil apapun versinya.


Penyebab 7: Plugin Pihak Ketiga Bermasalah

Plugin yang tidak kompatibel dengan versi OJS yang digunakan, atau plugin yang kodenya rusak, bisa menyebabkan error 500 — terutama jika plugin tersebut dijalankan saat setiap halaman dimuat.

Cara Mendeteksi Plugin Bermasalah

Opsi A: Nonaktifkan dari Database (jika Admin Panel tidak bisa diakses)

Akses phpMyAdmin, jalankan query ini untuk menonaktifkan semua plugin:

UPDATE plugin_settings 
SET setting_value = '0' 
WHERE setting_name = 'enabled' AND setting_value = '1';

Muat ulang OJS. Jika normal kembali, aktifkan plugin satu per satu untuk menemukan yang bermasalah.

Opsi B: Rename Folder Plugin

Via cPanel File Manager, rename folder plugin yang dicurigai di plugins/ — misalnya plugins/generic/namaPlugin menjadi plugins/generic/namaPlugin_disabled. OJS akan mengabaikan folder yang tidak dikenal.


Penyebab 8: Database Error

Masalah koneksi atau struktur database yang korup juga bisa menyebabkan error 500.

Tanda-tandanya

Pesan error mengandung:

  • SQLSTATE[HY000]: General error
  • Access denied for user
  • Can't connect to MySQL server
  • Table doesn't exist

Cara Mengatasinya

Cek Kredensial Database di config.inc.php

[database]

driver = mysqli
host = localhost
username = nama_user_database
password = password_database
name = nama_database

Pastikan nilai-nilai ini sesuai dengan database yang dibuat di cPanel. Jika baru migrasi hosting, nilai host mungkin perlu disesuaikan.

Repair Tabel Database

Buka phpMyAdmin → pilih database OJS → klik Check All untuk memilih semua tabel → di dropdown pilih Repair table. Ini dapat memperbaiki tabel yang korup ringan.


Cara Membaca Error Log OJS

Selain pesan di browser, OJS menyimpan log error yang lebih detail. Lokasi file log:

LokasiKeterangan
[folder_ojs]/cache/error.logLog error OJS
[folder_ojs]/error.logJika dikonfigurasi di config.inc.php
cPanel → ErrorsLog error PHP server
cPanel → Raw AccessLog akses lengkap

Cara Membaca Log via SSH

# Lihat 50 baris terakhir error log
tail -n 50 /home/username/public_html/ojs/cache/error.log

# Monitor log secara real-time
tail -f /home/username/public_html/ojs/cache/error.log

Pola Error yang Sering Muncul dan Artinya

Pola PesanKemungkinan Penyebab
Permission deniedFile permission salah (→ Penyebab 1)
Allowed memory size exhaustedMemory limit kurang (→ Penyebab 2)
Deprecated / TypeErrorVersi PHP tidak kompatibel (→ Penyebab 3)
Invalid command in .htaccessFile .htaccess bermasalah (→ Penyebab 4)
Call to undefined function mb_Ekstensi mbstring tidak aktif (→ Penyebab 5)
Table doesn't existUpdate gagal / migrasi tidak lengkap (→ Penyebab 6)
Access denied for userKredensial database salah (→ Penyebab 8)

Checklist Diagnosis Cepat

Jika OJS Anda tiba-tiba error 500, ikuti urutan ini:

  • [ ] Aktifkan mode debug di config.inc.php untuk melihat pesan error asli
  • [ ] Baca error log di cache/error.log atau cPanel → Errors
  • [ ] Cek apakah error muncul setelah perubahan tertentu (update, install plugin, ganti PHP)
  • [ ] Periksa file permission — folder 755, file 644
  • [ ] Cek versi PHP — pastikan kompatibel dengan versi OJS yang digunakan
  • [ ] Coba rename .htaccess sementara — jika normal, perbaiki isi .htaccess
  • [ ] Cek memory limit PHP — naikkan ke minimal 256M
  • [ ] Cek ekstensi PHP — pastikan mbstring, xml, curl, gd aktif
  • [ ] Jika baru install plugin, nonaktifkan plugin tersebut
  • [ ] Cek kredensial database di config.inc.php
  • [ ] Kembalikan display_errors = Off setelah masalah teratasi

Kesimpulan

Error 500 di OJS hampir selalu bisa ditelusuri dan diperbaiki — kuncinya adalah membaca error log dengan mode debug aktif, bukan menebak-nebak. Urutan diagnosis yang disarankan: aktifkan debug → baca pesan error → cocokkan dengan penyebab di artikel ini → terapkan solusi.

Penyebab paling umum yang sering dijumpai di hosting Indonesia adalah file permission salah (terutama setelah upload manual via FTP) dan versi PHP tidak kompatibel (terutama setelah hosting melakukan upgrade PHP otomatis).

Jika sudah mencoba semua langkah di atas dan error masih terjadi, kemungkinan besar ada masalah spesifik pada konfigurasi server hosting Anda — hubungi support hosting dengan menyertakan pesan error lengkap dari log.


Butuh bantuan teknis pengelolaan jurnal OJS? Hubungi kami melalui email atau kolom komentar di bawah.

Alam
Ditulis oleh
Alam
← Semua Tulisan

Leave a Reply

Your email address will not be published. Required fields are marked *