Mengatur besar memori PHP
Sekalian menjawab pertanyaan dari mas Subhan soal pengaturan memori dari proses PHP. Kadang sebuah script PHP muncul fatal error karena kehabisan memori dan ini solusinya paling mudah ya kita meningkatkan batasan berapa besar RAM yang dialokasikan. Untuk caranya sendiri sangatlah mudah dan ada beberapa cara yang bisa diterapkan.
Bagaimana cara mengatur berapa memori maksimal dari PHP? Paling bagus kalau kita menyetelnya langsung dalam file konfigurasi (<a href="https://servernesia.com/184/tempat-php-ini/" target="_blank">php.ini</a>
) dan cari:
; Maximum amount of memory a script may consume (128MB)
; http://www.php.net/manual/en/ini.core.php#ini.memory-limit
memory_limit = 128M
Pada potongan kode diatas bisa dilihat kuota memori sebuah script PHP saat dijalankan. Satuannya MegaByte. Saya sarankan jangan lewat dari separuh RAM VPS anda karena aturan ini per script PHP, kalau ada banyak yang dijalankan bersamaan bisa crash VPS anda apabila kehabisan memori. Dan jangan lupa restart PHP-FPMnya supaya terbaca konfigurasi barunya.
Bagaimana kalau kita tidak memiliki akses ke setting PHPnya? Alternatifnya bisa lewat file .htaccess
, tambahkan kode ini saja didalamnya:
php_value memory_limit 128M
Lewat .htaccess kurang ampuh? Terakhir bisa juga didalam script PHPnya sendiri, deklarasikan di awal ya:
ini_set('memory_limit','128M');
Tahu darimana kita kalau sudah sukses menyetel memory limitnya? Pakai <a href="https://servernesia.com/388/cara-mengetahui-versi-php-linux/" target="_blank">phpinfo();</a>
akan terlihat nanti spesifikasi mesin PHP saat itu.
Semua cara diatas bisa digunakan untuk mengubah jatah RAM yang bisa dimanfaatkan sebuah script PHP. Cuma berbeda tingkat penerapannya saja. Kalau mengganti nilai batas memori pakai php.ini ya berlaku ke semua kode PHP yang dieksekusi, kalau .htaccess peningkatkan memory limit ya berlaku untuk satu situs, dan paling kecil jangkauannya adalah lewat kode PHP karena cuma berlaku untuk satu script itu saja batasannya.
Catatan. Jadi kalau kita setting batas RAM yang bisa digunakan per proses pada Linux maka aturannya berlaku secara global, tidak ada proses yang tidak terpengaruh. Tapi kalau kita mengaturnya dari sisi PHP maka ini batasannya sendiri. Singkatnya konfigurasi PHP tidak bisa melangkahi setelan Linux.