Cara Mengatasi Error Maximum Execution Time Exceeded di PHP

 

 Apa Artinya?

Error:

Fatal error: Maximum execution time of 30 seconds exceeded in /path/file.php on line XX

Artinya: PHP menghentikan eksekusi skrip karena melebihi batas waktu maksimal (default: 30 detik). Ini untuk mencegah script berjalan terlalu lama dan membebani server.

 Penyebab Umum

  1. Proses terlalu berat (misalnya: pengolahan file besar, import data, crawling web, looping besar)
  2. Infinite loop (loop tidak pernah selesai)
  3. Koneksi lambat ke API, database, atau server lain
  4. Query berat tanpa indexing di database

 Cara Mengatasinya

1. Tingkatkan Waktu Eksekusi di php.ini

Edit file php.ini:

max_execution_time = 60

Atur jadi 60 detik (atau lebih sesuai kebutuhan).

Setelah itu, restart server:

sudo service apache2 restart
# atau
sudo systemctl restart php-fpm

2. Ubah Waktu Eksekusi di Baris Kode PHP

ini_set('max_execution_time', 60); // 60 detik

Tambahkan di awal file PHP (jika tidak bisa akses php.ini)

3. Gunakan Unlimited Execution Time (hati-hati!)

set_time_limit(0); // Tidak ada batas waktu

 Hanya jika benar-benar diperlukan, misalnya saat import data besar.

4. Optimalkan Kode

  • Gunakan pagination saat proses data besar
  • Hindari looping besar yang tidak dibatasi
  • Gunakan asynchronous request (misalnya: jalankan di background menggunakan queue)
  • Gunakan progress bar + AJAX untuk proses berat di web

5. Gunakan ignore_user_abort() Jika Perlu

Jika skrip harus tetap berjalan walau user menutup browser:

ignore_user_abort(true);
set_time_limit(0);

 Contoh: Loop yang Butuh Waktu Lama

for ($i = 0; $i < 10000000; $i++) {
    // proses berat
}

 Solusi:

set_time_limit(300); // beri waktu 5 menit

Comments

Popular posts from this blog

Sejarah dan Perkembangan Linux: Dari Hobi Sampai Menguasai Dunia!

Mengatasi Maximum Call Stack Size Exceeded

Distribusi (Distro) Linux Populer: Mana yang Cocok Buat Kamu?