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.
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.


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
| Pengaturan | Apa yang dibatasi | Bawaan PHP | Tempat mengubahnya |
|---|---|---|---|
upload_max_filesize | Satu file unggahan terbesar | 2M | php.ini, .user.ini, .htaccess, httpd.conf |
post_max_size | Seluruh request POST, termasuk file | 8M | php.ini, .user.ini, .htaccess, httpd.conf |
memory_limit | Memori yang boleh dipakai PHP saat berjalan | 128M | Di mana saja, termasuk wp-config.php |
max_execution_time | Detik yang boleh dipakai sebuah skrip | 30 | Di mana saja, termasuk wp-config.php |
client_max_body_size (Nginx) | Body request yang diterima Nginx | 1m | Hanya 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 Anda | Tempat mengaturnya | Catatan |
|---|---|---|
| VPS atau dedicated server | php.ini yang benar-benar dimuat PHP | Restart PHP-FPM atau Apache setelahnya |
| Shared hosting dengan PHP-FPM atau FastCGI | .user.ini di folder root WordPress | Bisa butuh hingga 5 menit untuk berlaku |
| Apache dengan PHP sebagai modul (mod_php) | .htaccess dengan php_value | Menyebabkan error 500 di PHP-FPM atau FastCGI |
| Hosting cPanel | Software > MultiPHP INI Editor | Menulis php.ini, .user.ini atau .htaccess untuk Anda |
| Nginx di depan PHP | client_max_body_size selain nilai PHP | Jika tidak, Nginx mengembalikan 413 |
| Managed WordPress hosting | Dashboard atau support hosting | Banyak hosting membatasi upload di level platform |
| Situs di balik Cloudflare | Batas upload milik Cloudflare | 100 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_sizeminimal sama besar denganupload_max_filesize. WordPress memakai yang lebih kecil. - Pastikan Anda mengedit file yang benar-benar dimuat PHP.
php.inidi 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.