Anda menyeret gambar ke Media Library WordPress, bilah unggah berjalan sebentar, lalu muncul pesan yang sangat tidak membantu: HTTP error. Tidak ada kode, tidak ada penjelasan. Kabar baiknya, pesan generik ini punya penyebab yang terbatas: memori PHP habis saat memproses gambar, batas ukuran unggah terlampaui, izin folder uploads salah, konflik plugin atau tema, atau pustaka pemroses gambar yang bermasalah.
Daftar Isi
- Jawaban Singkat
- Kenapa Pesannya Hanya "HTTP error"?
- Persiapan
- Langkah 1: Uji dengan Gambar Kecil dan Nama Sederhana
- Langkah 2: Naikkan Memori PHP WordPress
- Langkah 3: Periksa Izin Folder Uploads
- Langkah 4: Singkirkan Konflik Plugin dan Tema
- Langkah 5: Ganti Pustaka Pemroses Gambar
- Verifikasi Hasil
- Troubleshooting Lanjutan
- FAQ
- Kesimpulan
- Referensi
Jawaban Singkat
Mulai dari yang paling cepat: kecilkan gambar di bawah 2 MB dan ganti namanya tanpa spasi atau karakter khusus, lalu coba lagi. Jika masih gagal, naikkan memori WordPress dengan WP_MEMORY_LIMIT 256M di wp-config.php, pastikan folder wp-content/uploads bisa ditulis server (direktori 755, file 644), dan uji dengan semua plugin nonaktif. Uji satu perubahan dalam satu waktu agar Anda tahu persis mana yang berhasil.
Kenapa Pesannya Hanya "HTTP error"?
Unggahan media WordPress berjalan lewat permintaan latar (async-upload). Bila permintaan itu gagal di tengah jalan — misalnya PHP kehabisan memori saat membuat thumbnail — WordPress hanya menampilkan pesan generik, bukan penyebab aslinya. Karena itu diagnosisnya harus dilakukan dengan menyingkirkan penyebab satu per satu, dari yang paling umum ke yang paling jarang.
Persiapan
- Catat ukuran file gambar, formatnya (JPG, PNG, WebP, HEIC), dan apakah semua gambar gagal atau hanya gambar besar.
- Buat backup wp-config.php dan, bila akan mengeditnya, salin baris aslinya terlebih dahulu.
- Siapkan satu gambar kecil (di bawah 500 KB, nama sederhana seperti
tes-upload.jpg) sebagai pembanding.
Langkah 1: Uji dengan Gambar Kecil dan Nama Sederhana
Unggah gambar pembanding. Jika gambar kecil berhasil tetapi gambar besar gagal, masalahnya ada di batas memori atau ukuran, bukan di plugin. Jika semua gambar gagal termasuk yang kecil, lanjutkan ke pemeriksaan izin folder dan konflik plugin. Ganti juga nama file yang mengandung spasi atau karakter khusus menjadi tanda hubung, karena karakter aneh pada nama file adalah pemicu gagal yang sepele tetapi nyata.
Langkah 2: Naikkan Memori PHP WordPress
Memproses gambar — terutama membuat beberapa ukuran thumbnail — memakan memori jauh lebih besar dari ukuran file itu sendiri. Tambahkan baris berikut di wp-config.php, sebelum baris That's all, stop editing!:
define( 'WP_MEMORY_LIMIT', '256M' );
Di server Nginx/VPS, batas PHP juga diatur di php.ini. Periksa nilai yang berlaku dengan file info PHP sementara atau lewat panel hosting, dan sesuaikan upload_max_filesize serta post_max_size agar keduanya lebih besar dari file yang Anda unggah. Ingat: post_max_size harus lebih besar dari upload_max_filesize, karena unggahan dikirim sebagai satu permintaan POST. Hapus file info PHP setelah pemeriksaan — jangan membiarkannya bisa diakses publik.
Langkah 3: Periksa Izin Folder Uploads
WordPress harus bisa menulis ke wp-content/uploads (termasuk subfolder tahun/bulan). Patokannya: direktori 755 dan file 644, dengan kepemilikan oleh pengguna web server. Dari direktori instalasi WordPress:
sudo chown -R www-data:www-data wp-content/uploads
sudo find wp-content/uploads -type d -exec chmod 755 {} \;
sudo find wp-content/uploads -type f -exec chmod 644 {} \;
Sesuaikan www-data dengan pengguna web di server Anda. Jika pesan yang muncul justru failed to write file to disk, bukan HTTP error, pemeriksaan ini tetap langkah pertama yang benar.
Langkah 4: Singkirkan Konflik Plugin dan Tema
Nonaktifkan semua plugin, lalu coba unggah lagi. Jika berhasil, aktifkan plugin satu per satu sambil menguji unggahan setiap kali, sampai pelakunya ketemu. Plugin optimasi gambar, keamanan, dan pengubah media adalah tersangka pertama. Jika plugin bukan penyebabnya, aktifkan sementara tema bawaan WordPress (misalnya Twenty Twenty-Five) dan uji lagi; tema yang memodifikasi pemrosesan gambar bisa menjadi penyebab yang sama.
Langkah 5: Ganti Pustaka Pemroses Gambar
WordPress memakai GD atau Imagick untuk mengubah ukuran gambar. Pada sebagian server, Imagick yang memakai banyak thread justru gagal. Membatasi thread Imagick atau memaksa pemakaian GD sering menyelesaikan HTTP error yang membandel. Pada server Apache, baris berikut di .htaccess membatasi thread Imagick menjadi satu:
SetEnv MAGICK_THREAD_LIMIT 1
Di Nginx tidak ada .htaccess; pengaturan setara dilakukan di konfigurasi PHP-FPM atau lewat potongan kode di plugin snippet yang memprioritaskan GD. Apa pun jalurnya, catat perubahan yang Anda buat dan kembalikan bila tidak berpengaruh — jangan menumpuk perubahan yang tidak terbukti.
Verifikasi Hasil
Perbaikan berhasil bila gambar kecil maupun besar (dalam batas yang Anda tetapkan) terunggah, thumbnail terbentuk di Media Library, dan gambar tampil di editor maupun di halaman depan. Uji dengan dua format berbeda (JPG dan PNG) dan satu gambar berukuran besar untuk memastikan batas baru benar-benar berlaku.
Troubleshooting Lanjutan
| Situasi | Langkah berikutnya |
|---|---|
| Hanya gambar dari ponsel gagal | Periksa format HEIC dan metadata EXIF; konversi ke JPG sebelum unggah |
| Gagal hanya pada jam sibuk | Curigai batas sumber daya server atau pembatasan host; periksa log PHP-FPM |
| HTTP error disertai 403/413 di log | 413 berarti batas ukuran badan permintaan Nginx (client_max_body_size) — naikkan di server block |
| Semua langkah gagal | Aktifkan WP_DEBUG dan periksa debug.log, lalu kirim log tersebut ke penyedia hosting |
FAQ
Apakah menaikkan memori selalu menyelesaikan HTTP error?
Tidak. Memori adalah penyebab paling umum, tetapi izin folder, konflik plugin, dan Imagick juga bisa menjadi penyebabnya. Uji berurutan agar tidak salah diagnosis.
Kenapa gambar kecil berhasil tetapi gambar besar gagal?
Karena memori yang dibutuhkan untuk memproses gambar jauh lebih besar dari ukuran file, dan batas unggah bisa memotong permintaan besar di tengah jalan.
Apakah aman mengedit functions.php tema untuk perbaikan ini?
Lebih aman memakai plugin snippet atau child theme. Perubahan di functions.php tema utama akan hilang saat tema diperbarui.
Kesimpulan
HTTP error saat unggah gambar adalah pesan generik untuk segelintir penyebab yang bisa dilacak: uji gambar kecil, naikkan memori, perbaiki izin uploads, singkirkan konflik plugin atau tema, dan periksa pustaka gambar. Satu perubahan dalam satu waktu, dan catat mana yang berhasil — itu yang membedakan perbaikan dari sekadar coba-coba.
Referensi
- WordPress — Nginx (Advanced Administration Handbook): developer.wordpress.org — Nginx