Solusi Cepat Mengatasi Memory Limit Exceeded
Error Fatal error: Allowed memory size of X bytes exhausted terjadi karena skrip PHP Anda mencoba menggunakan memori melebihi batas (limit) yang diizinkan oleh konfigurasi server. Untuk mengatasinya, Anda perlu meningkatkan nilai memory_limit pada file konfigurasi PHP atau melakukan optimasi kode agar penggunaan memori lebih efisien.
Metode 1: Mengubah php.ini (Paling Direkomendasikan)
Jika Anda memiliki akses ke server, cari file php.ini. Lokasi file ini biasanya berada di /etc/php/7.x/apache2/php.ini atau /etc/php/7.x/fpm/php.ini. Ubah baris berikut:
memory_limit = 256MSetelah diubah, simpan file dan restart layanan web server Anda (Apache atau PHP-FPM) agar perubahan diterapkan.
Metode 2: Menggunakan .htaccess
Jika Anda menggunakan shared hosting dan tidak memiliki akses ke php.ini, tambahkan baris berikut ke dalam file .htaccess di direktori root situs Anda:
php_value memory_limit 256MMetode 3: Mengubah via Skrip PHP
Anda dapat meningkatkan limit secara spesifik pada file PHP tertentu dengan menambahkan fungsi ini di baris paling atas skrip:
ini_set('memory_limit', '256M');| Metode | Tingkat Akses | Efektivitas |
|---|---|---|
| php.ini | Root/Server | Permanen & Global |
| .htaccess | User/Hosting | Permanen per folder |
| ini_set() | Skrip PHP | Sementara per file |
Tips Optimasi Kode
Meningkatkan limit memori hanyalah solusi sementara. Jika aplikasi Anda terus membutuhkan memori besar, lakukan langkah berikut:
- Gunakan Generator: Gunakan
yielduntuk memproses data besar (seperti membaca file CSV besar) agar tidak memuat seluruh data ke dalam array. - Bersihkan Variabel: Gunakan
unset()untuk menghapus variabel yang tidak lagi digunakan. - Database Query: Hindari
SELECT *. Ambil hanya kolom yang diperlukan dan gunakan limitasi data (pagination). - Cek Memory Leak: Pastikan tidak ada rekursi fungsi yang tidak memiliki kondisi berhenti (base case).