Menambah Ukuran File Upload Pada Aplikasi Berbasis PHP dan Nginx

Meng-_upload_ file pada aplikasi berbasis PHP dan Nginx akan terbentur dengan masalah ukuran file yang akan diunggah. Batas ukuran dari berkas yang akan diunggah akan menurut pada konfigurasi pada kedua platform yang digunakan. Sehingga konfigurasi dari kedua software tersebut harus dimodifikasi sehingga berkas dengan ukuran yang lebih besar dapat diunggah.

Pertama-tama ketika mulai meng-_upload_ berkas yang berukuran cukup besar maka Nginx akan memberikan pesan error seperti berikut

Hal ini dikarenakan oleh konfigurasi default Nginx

Syntax:     client_max_body_size size;
Default:    client_max_body_size 1m;
Context:    http, server, location

Masalah batasan ukuran file upload dapat diatasi dengan cara mengganti nilai dari client_max_body_size ke 0, yang berarti tidak ada batasan ukuran untuk berkas yang akan diunggah.

client_max_body_size 0;

Berikutnya adalah bagian PHP, PHP memiliki konfigurasi sendiri mengenai batasan file upload-nya. PHP yang digunakan bersama dengan Nginx sedikit berbeda ketika digunakan bersama Apache, PHP yang dimaksud adalah PHP-FPM. FPM memiliki php.ini sendiri pada /etc/php5/fpm/php.ini (ubuntu). Cari setting untuk upload_max_filesize, post_max_size dan ganti nilainya menjadi 0. Tidak ada dokumentasi tentang jika mengubah nilainya menjadi 0 maka tidak ada batasan untuk file upload-nya tetapi ketika saya coba menggantinya menjadi 0 berkas yang berukuran lebih besar menjadi bisa diunggah.

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 0

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 0

Sebuah setting terakhir dari PHP-FPM untuk dapat mengijinkan mengunggah file yang besar yaitu, memory_limit, nilai awal dari setting ini adalah 128M yang berarti MB (MegaByte), jika nilai yang diinginkan lebih besar nilainya bisa diganti dengan 10G yang berarti 10 GigaByte.

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 10G

#PHP #Nginx #Upload #PHP-FPM #php.ini