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

5 Comments

  1. Oh ternyata bisa ubah batasan memory php nya via file .htaccess.
    Apa perlu direstart juga PHP nya mas kalu lewat .htaccess ?

    Makasih Artikelnya.

    1. Ga perlu mas Subhan. Oleh Apache itu nanti dibaca setiap saat kok dan kemudian diteruskan ke PHP ke sesi proses yang baru.

  2. Kadang kalanya kalau ada error 502 gateway time out atau 500 internal error itu kenapa ya mas, apa karena keterbatasan koneksi mysql ya? Trims

    1. Err.. bisa dijelaskan dulu mas susunan VPSnya? Seperti spesifikasinya bagaimana. Terinstall apa saja dan versi berapa. Yang dihosting pakai CMS apa dan pengunjungnya berapa. Apa masalahnya terjadi selalu atau pada jam tertentu saja.

Tinggalkan Balasan ke Chandra Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *