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
- Apa Itu Error 500 di OJS?
- Langkah Pertama: Aktifkan Mode Debug
- Penyebab 1: File Permission Salah
- Penyebab 2: PHP Memory Limit Terlalu Kecil
- Penyebab 3: Versi PHP Tidak Kompatibel
- Penyebab 4: File .htaccess Bermasalah
- Penyebab 5: Ekstensi PHP yang Diperlukan Tidak Aktif
- Penyebab 6: Proses Update OJS Gagal di Tengah Jalan
- Penyebab 7: Plugin Pihak Ketiga Bermasalah
- Penyebab 8: Database Error
- Cara Membaca Error Log OJS
- 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 = Offagar 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 deniedfailed to open streamUnable to write to cache directory
Nilai Permission yang Benar
| Tipe | Permission |
|---|---|
| Folder/Direktori | 755 |
| File | 644 |
Folder cache/, public/, files/ | 755 atau 775 |
Cara Memperbaiki via cPanel
- Buka cPanel → File Manager
- Navigasi ke folder instalasi OJS
- Pilih semua file dan folder → klik Permissions (atau Change Permissions)
- Atur: Direktori =
755, File =644 - Centang Recurse into subdirectories
- 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 exhaustedFatal error: Out of memory
Rekomendasi Memory Limit untuk OJS
| Kebutuhan | Memory Limit |
|---|---|
| Minimum | 128 MB |
| Rekomendasi | 256 MB |
| Jurnal dengan banyak upload PDF | 512 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 OJS | PHP yang Didukung |
|---|---|
| OJS 3.4.x | PHP 8.0 – 8.2 |
| OJS 3.3.x | PHP 7.3 – 8.1 |
| OJS 3.2.x | PHP 7.2 – 7.4 |
| OJS 3.1.x | PHP 7.1 – 7.3 |
Cara Cek Versi PHP di cPanel
- Login cPanel → cari MultiPHP Manager atau Select PHP Version
- Lihat versi PHP yang aktif untuk domain jurnal Anda
- 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 parameterFatal error: Uncaught TypeErrorCall 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:
- Buka cPanel → File Manager
- Cari file
.htaccessdi root folder OJS - Rename menjadi
.htaccess_backup - 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/), sesuaikanRewriteBasemenjadi/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
| Ekstensi | Fungsi |
|---|---|
mbstring | Penanganan karakter multibyte (huruf Asia, aksen, dll.) |
xml | Parsing dan pemrosesan XML/OAI-PMH |
json | Format data JSON |
gd atau imagick | Pemrosesan gambar (cover buku, thumbnail) |
curl | Koneksi HTTP ke layanan eksternal |
zip | Upload dan ekstrak file ZIP |
pdo_mysql | Koneksi ke database MySQL |
intl | Internasionalisasi (format tanggal, angka) |
opcache | Performa (opsional tapi direkomendasikan) |
Cara Mengecek dan Mengaktifkan di cPanel
- Login cPanel → cari MultiPHP INI Editor atau Select PHP Version
- Pilih versi PHP yang aktif
- Centang ekstensi yang diperlukan
- 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:
- Restore file OJS dari backup
- Restore database dari backup
- 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 errorAccess denied for userCan't connect to MySQL serverTable 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:
| Lokasi | Keterangan |
|---|---|
[folder_ojs]/cache/error.log | Log error OJS |
[folder_ojs]/error.log | Jika dikonfigurasi di config.inc.php |
| cPanel → Errors | Log error PHP server |
| cPanel → Raw Access | Log 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 Pesan | Kemungkinan Penyebab |
|---|---|
Permission denied | File permission salah (→ Penyebab 1) |
Allowed memory size exhausted | Memory limit kurang (→ Penyebab 2) |
Deprecated / TypeError | Versi PHP tidak kompatibel (→ Penyebab 3) |
Invalid command in .htaccess | File .htaccess bermasalah (→ Penyebab 4) |
Call to undefined function mb_ | Ekstensi mbstring tidak aktif (→ Penyebab 5) |
Table doesn't exist | Update gagal / migrasi tidak lengkap (→ Penyebab 6) |
Access denied for user | Kredensial database salah (→ Penyebab 8) |
Checklist Diagnosis Cepat
Jika OJS Anda tiba-tiba error 500, ikuti urutan ini:
- [ ] Aktifkan mode debug di
config.inc.phpuntuk melihat pesan error asli - [ ] Baca error log di
cache/error.logatau cPanel → Errors - [ ] Cek apakah error muncul setelah perubahan tertentu (update, install plugin, ganti PHP)
- [ ] Periksa file permission — folder
755, file644 - [ ] 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 = Offsetelah 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.