Cara Mengatasi WordPress HTTP Error saat Upload Gambar di Media Library

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.

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

SituasiLangkah berikutnya
Hanya gambar dari ponsel gagalPeriksa format HEIC dan metadata EXIF; konversi ke JPG sebelum unggah
Gagal hanya pada jam sibukCurigai batas sumber daya server atau pembatasan host; periksa log PHP-FPM
HTTP error disertai 403/413 di log413 berarti batas ukuran badan permintaan Nginx (client_max_body_size) — naikkan di server block
Semua langkah gagalAktifkan 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

Cookie Consent