Lompat ke konten
Konfigurasi

Cara Menaikkan Batas Upload WordPress (Semua Hosting)

Cek batas upload WordPress Anda saat ini, lalu naikkan di tempat yang tepat untuk hosting Anda: php.ini, .user.ini, .htaccess, cPanel, Nginx atau Cloudflare.

Dipublikasikan Diperbarui

Untuk menaikkan batas upload di WordPress, naikkan dua pengaturan PHP, upload_max_filesize dan post_max_size, di file konfigurasi yang benar-benar dibaca hosting Anda. Itu adalah php.ini di server yang Anda kelola sendiri, .user.ini di sebagian besar shared hosting yang memakai PHP-FPM atau FastCGI, .htaccess hanya jika Apache menjalankan PHP sebagai modul, atau MultiPHP INI Editor di cPanel. Jika server Anda memakai Nginx, naikkan juga client_max_body_size. Mengedit wp-config.php tidak akan mengubah batas upload.

Alat ukuran upload maksimum WordPress mengubah satu ukuran target menjadi nilai yang cocok untuk php.ini (atau .user.ini), .htaccess dan wp-config.php, jadi Anda bisa menempelkannya tanpa mengetik manual.

Langkah 1: cek batas upload saat ini

Sebelum mengubah apa pun, cari tahu berapa batasnya sekarang dan pengaturan mana yang menentukannya.

  • Media > Tambah Baru. Layar unggah menampilkan ukuran file upload maksimum. Inilah angka yang ingin Anda naikkan.
  • Alat > Kesehatan Situs > Info. Buka bagian Penanganan media. Dokumentasi Kesehatan Situs mencantumkan isinya: ukuran maksimum data post yang diizinkan, ukuran maksimum file yang diunggah, dan ukuran file efektif maksimum, yaitu yang lebih kecil dari keduanya. Bagian Server menampilkan nilai PHP lainnya.
Layar Upload Media WordPress dengan baris Maximum upload file size: 2 GB di bawah area upload
Tempat batas itu muncul di layar upload, di bawah area upload. Nilai 2 GB adalah milik server uji kami; banyak hosting menetapkan jauh lebih kecil.
Site Health Info WordPress, bagian Media Handling, menampilkan max size of post data allowed, max size of an uploaded file, dan max effective file size
Tools > Site Health > Info > Media Handling di situs uji kami, dengan batas post data, file yang di-upload, dan batas efektif di baris terpisah.

WordPress menghitung batasnya di wp_max_upload_size(), yang membaca upload_max_filesize dan post_max_size dari PHP lalu memakai yang lebih kecil. Jika salah satunya 64M dan yang lain 8M, batas Anda 8M.

Langkah 2: ketahui pengaturan mana yang berpengaruh

PengaturanApa yang dibatasiBawaan PHPTempat mengubahnya
upload_max_filesizeSatu file unggahan terbesar2Mphp.ini, .user.ini, .htaccess, httpd.conf
post_max_sizeSeluruh request POST, termasuk file8Mphp.ini, .user.ini, .htaccess, httpd.conf
memory_limitMemori yang boleh dipakai PHP saat berjalan128MDi mana saja, termasuk wp-config.php
max_execution_timeDetik yang boleh dipakai sebuah skrip30Di mana saja, termasuk wp-config.php
client_max_body_size (Nginx)Body request yang diterima Nginx1mHanya konfigurasi Nginx

Nilai bawaan PHP dan mode perubahannya berasal dari daftar direktif php.ini; nilai bawaan Nginx berasal dari dokumentasi modul core Nginx. Sebagian besar hosting memasang nilai yang lebih tinggi dari bawaan PHP, karena itu Kesehatan Situs adalah tempat membaca angka Anda yang sebenarnya.

upload_max_filesize dan post_max_size adalah pengaturan yang oleh PHP disebut INI_PERDIR: pengaturan ini bisa diatur di php.ini, .htaccess, httpd.conf atau .user.ini dan tidak di tempat lain. memory_limit tidak membatasi ukuran file, tetapi WordPress butuh memori untuk membuat salinan gambar besar dalam ukuran lain, jadi unggahan besar tetap bisa gagal dengan error memori habis setelah file sampai.

Langkah 3: naikkan batas di tempat yang tepat untuk hosting Anda

Kondisi AndaTempat mengaturnyaCatatan
VPS atau dedicated serverphp.ini yang benar-benar dimuat PHPRestart PHP-FPM atau Apache setelahnya
Shared hosting dengan PHP-FPM atau FastCGI.user.ini di folder root WordPressBisa butuh hingga 5 menit untuk berlaku
Apache dengan PHP sebagai modul (mod_php).htaccess dengan php_valueMenyebabkan error 500 di PHP-FPM atau FastCGI
Hosting cPanelSoftware > MultiPHP INI EditorMenulis php.ini, .user.ini atau .htaccess untuk Anda
Nginx di depan PHPclient_max_body_size selain nilai PHPJika tidak, Nginx mengembalikan 413
Managed WordPress hostingDashboard atau support hostingBanyak hosting membatasi upload di level platform
Situs di balik CloudflareBatas upload milik Cloudflare100 MB di paket Free dan Pro

php.ini (server yang Anda kelola)

Cari dulu file yang dimuat. Buat file sementara berisi <?php phpinfo();, buka di browser, baca baris “Loaded Configuration File”, lalu hapus file itu. Edit php.ini tersebut:

upload_max_filesize = 128M
post_max_size = 130M
max_execution_time = 300

Lalu restart PHP agar perubahannya terbaca. Di PHP-FPM, nama service-nya memuat versi, misalnya sudo systemctl restart php8.3-fpm di Debian atau Ubuntu. Dengan mod_php, restart Apache.

.user.ini (sebagian besar shared hosting)

PHP membaca file .user.ini hanya jika berjalan sebagai CGI atau FastCGI, termasuk PHP-FPM. Buat atau edit .user.ini di folder yang berisi wp-config.php:

upload_max_filesize = 128M
post_max_size = 130M

PHP membaca ulang file ini setiap user_ini.cache_ttl detik, yang bawaannya 300. Tunggu lima menit sebelum menyimpulkan bahwa cara ini tidak berhasil, atau restart PHP-FPM jika bisa.

.htaccess (hanya Apache dengan mod_php)

php_value upload_max_filesize 128M
php_value post_max_size 130M

Manual PHP menjelaskan direktif ini untuk PHP yang berjalan sebagai modul Apache. Jika situs Anda langsung menampilkan 500 Internal Server Error setelah disimpan, berarti PHP berjalan sebagai FastCGI atau PHP-FPM. Hapus baris-baris itu dan pakai .user.ini.

MultiPHP INI Editor di cPanel

Di cPanel, buka Software > MultiPHP INI Editor, pilih domain Anda, lalu ubah nilainya di Basic Mode. Menurut dokumentasi cPanel, Basic Mode menyimpan ke file php.ini, .user.ini dan .htaccess sesuai file mana yang mendukung pengaturan tersebut, jadi Anda tidak perlu tahu file mana yang dipakai server.

Nginx

Nginx mengecek ukuran request sebelum PHP melihatnya. Jika request lebih besar dari client_max_body_size, Nginx mengembalikan 413 Request Entity Too Large. Nilai bawaannya 1m. Tambahkan nilai yang minimal sama dengan post_max_size di blok server Anda:

client_max_body_size 130M;

Tes dan reload dengan sudo nginx -t && sudo systemctl reload nginx. Di Apache, pengaturan yang setara adalah LimitRequestBody, yang jarang perlu diubah di hosting WordPress standar.

Managed hosting dan Cloudflare

Beberapa managed WordPress hosting mengabaikan php.ini atau .user.ini Anda dan menetapkan batas untuk seluruh platform. Jika Kesehatan Situs masih menampilkan angka lama setelah perubahan, tanyakan ke hosting berapa batas maksimumnya dan apakah mereka bisa menaikkannya.

Jika situs melewati Cloudflare, Cloudflare punya batasnya sendiri. Dokumentasi cache mereka mencantumkan ukuran upload maksimum 100 MB di paket Free dan Pro, 200 MB di Business, dan hingga 5 GB di Enterprise. Tidak ada pengaturan PHP yang bisa melewati batas itu.

Kenapa wp-config.php tidak berhasil

Banyak artikel menyarankan menambahkan ini ke wp-config.php:

@ini_set( 'upload_max_filesize', '128M' );
@ini_set( 'post_max_size', '130M' );

Kedua pengaturan itu INI_PERDIR, dan dokumentasi PHP menyatakan pengaturan dengan mode tersebut tidak bisa diatur dengan ini_set(). Tanda @ menyembunyikan kegagalannya, jadi baris-baris itu tampak aman padahal tidak mengubah apa pun. Yang bisa diubah wp-config.php adalah memori, karena memory_limit bisa diatur di mana saja:

define( 'WP_MEMORY_LIMIT', '256M' );

Itu membantu saat gambar besar gagal diproses. Itu tidak mengubah ukuran file upload maksimum.

Langkah 4: pastikan perubahannya berlaku

Muat ulang Media > Tambah Baru dan cek apakah ukuran file upload maksimum menampilkan nilai baru Anda. Jika belum:

  • Pastikan post_max_size minimal sama besar dengan upload_max_filesize. WordPress memakai yang lebih kecil.
  • Pastikan Anda mengedit file yang benar-benar dimuat PHP. php.ini di folder yang salah akan diabaikan.
  • Tunggu lima menit setelah mengubah .user.ini, atau restart PHP-FPM.
  • Jika angka di WordPress sudah berubah tetapi upload masih gagal dengan 413, hambatannya ada di Nginx, proxy hosting Anda atau Cloudflare.
  • Jika upload sampai ke WordPress lalu gagal dengan “HTTP error”, ukurannya bukan masalah lagi. Panduan kami tentang HTTP error saat upload gambar di WordPress membahas penyebab yang biasa.

Seberapa tinggi sebaiknya batasnya?

Atur sesuai file terbesar yang benar-benar perlu Anda unggah, dengan sedikit ruang lebih, dan jaga post_max_size sedikit di atas upload_max_filesize. Upload besar juga butuh waktu lebih lama, jadi naikkan max_execution_time jika file besar mengalami timeout di koneksi lambat. Untuk file yang sangat besar seperti video panjang atau arsip backup, upload lewat SFTP atau plugin upload bertahap (chunked) biasanya lebih andal daripada satu upload besar lewat browser, dan batas paket Cloudflare mungkin memang membuat jalur browser tidak bisa dipakai.

Setelah tahu target Anda, alat ukuran upload maksimum menuliskan baris PHP yang cocok untuk Anda. Tambahkan sendiri baris Nginx dari panduan ini jika server Anda memakai Nginx.

FAQ

Pertanyaan

Bagaimana cara mengecek batas upload saat ini di WordPress?

Buka Media > Tambah Baru. Layar unggah menampilkan ukuran file upload maksimum. Untuk detailnya, buka Alat > Kesehatan Situs > Info lalu buka bagian Penanganan media, yang mencantumkan ukuran maksimum file yang diunggah, ukuran maksimum data post, dan ukuran file efektif maksimum, yaitu yang lebih kecil dari keduanya.

Kenapa WordPress bilang file yang diunggah melebihi direktif upload_max_filesize di php.ini?

Ukuran file lebih besar dari pengaturan upload_max_filesize di PHP. WordPress tidak menetapkan batas ini, WordPress membacanya dari PHP. Naikkan upload_max_filesize dan post_max_size bersamaan di php.ini, .user.ini atau, pada Apache dengan mod_php, .htaccess. Nilai bawaan PHP untuk upload_max_filesize hanya 2M, meskipun sebagian besar hosting memasang nilai yang lebih tinggi.

Bisakah saya menaikkan batas upload dari wp-config.php?

Tidak. upload_max_filesize dan post_max_size adalah pengaturan PHP_INI_PERDIR, yang hanya diterima PHP dari php.ini, .htaccess, httpd.conf atau .user.ini. Baris ini_set() di wp-config.php berjalan tanpa error dan tidak mengubah apa pun. wp-config.php bisa menaikkan batas memori WordPress, tetapi memori bukan yang membatasi ukuran file.

Kenapa saya masih mendapat 413 Request Entity Too Large setelah menaikkan batas PHP?

Ada sesuatu di depan PHP yang menolak request. Di Nginx, itu adalah client_max_body_size, yang nilai bawaannya 1m dan mengembalikan error 413 jika terlampaui. Naikkan nilainya di blok server lalu reload Nginx. Jika situs Anda melewati Cloudflare, batas ukuran upload pada paket Anda juga bisa menghentikan request sebelum sampai ke server.

Apakah post_max_size harus lebih besar dari upload_max_filesize?

Minimal sama besar, dan sedikit lebih besar lebih aman. File dikirim di dalam request POST bersama data formulir lainnya, jadi seluruh request dihitung terhadap post_max_size. WordPress memakai nilai yang lebih kecil dari keduanya sebagai batas upload, jadi menaikkan upload_max_filesize saja membuat batasnya tetap di tempat semula.