Ketika merancang atau menjalankan kode program PHP, ada kalanya sebuah program butuh waktu proses yang tidak sebentar, dan beberapa saat kemudian tampil pesan Fatal error: Maximum execution time of 30 seconds exceeded. Pada tutorial PHP kali ini saya akan mencoba mencari solusi untuk mengatasi masalah ini.
Cara Mengubah pengaturan max_execution_time PHP
Pesan Fatal error: Maximum execution time of 30 seconds exceeded berasal dari sebuah setingan PHP: max_execution_time = 30. Pengaturan ini bertujuan untuk memaksa kode PHP agar berhenti bekerja apabila dalam waktu 30 detik belum juga selesai di proses. Tujuannya, supaya sumber daya sistem (seperti processor) tidak bekerja terus-menerus.
Secara umum, sebuah kode PHP hanya membutuhkan waktu beberapa detik untuk menjalankan kode program. Apabila lebih, ditakutkan terdapat kode yang salah, seperti infinity loop (kode perulangan yang tidak pernah berhenti).
Dalam kasus tertentu, proses yang lama ini memang tidak bisa dihindari. Salah satu penyebabnya ketika kita mendownload atau mengupload file yang cukup besar.
Sebagai contoh, ketika saya mengistall wordpress secara offline, dan ingin mengupdate wordpress atau menginstall plugin, kita harus menunggu proses download ini. Jika koneksi internet yang anda gunakan cukup lambat, pesan Fatal error: Maximum execution time of 30 seconds exceeded hampir pasti akan muncul, dan proses update gagal.
Jadi, bagaimana cara mengatasi error ini?
Caranya adalah dengan menambah batasan waktu dari pengaturan: max_execution_time.
Seluruh settingan PHP berada di dalam file yang bernama PHP.ini. Jika anda menggunakan XAMPP, file ini bisa ditemukan di folder_xampp/php/php.ini.
File PHP.ini juga bisa diakses dari jendela XAMPP Control Panel, seperti tampilan berikut:
Setelah file PHP.ini terbuka (biasanya dari aplikasi notepad bawaan windows). Cari baris "max_execution_time", mudahnya bisa menggunakan fitur 'find'. Setelah ketemu, ubah angka disebelah kanan max_execution_time.
Secara default, angka max_execution_time di set sebesar 30, yang berarti kode PHP diberi kesempatan maksimum paling lama 30 detik. Silahkan mengubah nilai ini menjadi angka yang lebih besar. Kali ini saya akan mengubahnya menjadi 300, yang berarti kode PHP diberi kesempatan selama 300 detik (5 menit) untuk menyelesaikan tugasnya. Anda juga bisa memberikan angka 0, yang berarti tidak ada batasan waktu.
Setelah itu, save file PHP.ini (bisa dengan menekan kombinasi tombol CRTL+S), kemudian restart Apache (dari XAMPP Control Panel, klik tombol Stop di Apache, kemudian klik kembali tombol Start).
Sekarang, seharusnya pesan Fatal error: Maximum execution time of 30 seconds exceeded sudah tidak keluar lagi. Namun perlu dicatat bahwa mungkin saja web browser 'hang' selagi menunggu kode PHP selesai memproses kode yang cukup lama ini.
Thanks
Terimakasih :D
Bisa juga masukan ini langsung di script PHP:
ini_set('max_execution_time', 300);
Work… Terimakasih Dunia Ikom
Siip, sama2…
Terima kasih @duniailkom .. It's work
Bisa kah menghandle error ini dengan tampilan lain?
Mungkin bisa dengan mematikan fitur error reporting di PHP, jadi tidak akan muncul pesan error. Atau bisa menggunakan fitur try n catch PHP untuk menghandle error.
Udah dikasih tau sama temen caranya, tapi lupa heheeh '^.^
Makasih bapak :D
Terima kasih tutorialnya, berhasil saya coba
Terima kasih banyak ilmu nya kang
Terima kasih, berhasil
Bljr html,css,php dri awal hingga akhir di duniailkom. Alhamdulillah materi mudah dimengerti, thank's mas Andre :). Duniailkom cocok buat pemula. Di webnya aja buat dasar" bahasa pemrograman nya lumayan lengkap. e-book nya jga bagus bgt nih…
Siip, semoga bisa bermanfaat…
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\phpMyAdmin\libraries\classes\Session.php on line 189
gimana mengatasinya ??
Bisa coba ubah pengaturan php.ini seperti yang ada di tutorial ini.
Dan apakah sedang memproses tabel yang sangat besar? kalau tidak, bisa juga coba install ulang xampp-nya. Karena seharusnya proses menampilkan tabel sederhana tidak akan butuh waktu load sampai 30 detik.
bagaimana cara nya bisa upload data lebih dari 5000 baris di excel agar bisa di upload ke database ? saya sudah coba coba caranya seperti tutorial tapi tetap saja, yang masuk hanya 87 kadang 169 saja
Mungkin ada yang salah di kode program yang dipakai, atau format data asli di excel terdapat error. Biasanya file excel itu dikonversi dulu ke format .csv, lalu baru dimport ke database.
bang yang diatas sudah saya ikuti tapi masih tetap keluar kayak gini
Fatal error: Maximum execution time of 180 seconds exceeded in
ada solusi kah?
Maximum execution time sebenarnya error karena ada sesuatu yang salah, misalnya dalam contoh ini lambatnya proses upload. Jadi solusi yang paling tepat adalah melihat sumber masalah yang ada.
Jika memang tidak ada yang salah tapi PHP butuh proses yang lebih lama, maka bisa ganti angka pengaturan max_execution_time di file php.ini. Test saja ubah menjadi 5 menit atau 3000 detik. Setelah itu restart apache agar pengaturan bisa efektif.
pak Andre, gimana kalo nilainya sudah di set null, tapi tetap error seperti ini, saking besarnya data?
Kalau tidak salah jika ingin mematikan max_execution_time, caranya di set menjadi 0, bukan null. Tapi kurang tau juga apakah dampaknya sama atau tidak.
Jika sudah diubah jadi max_execution_time=0, seharusnya PHP akan terus mengeksekusi sampai selesai (tidak dibatasi). Jika masih error, kemungkinan ada batasan lain terutama jika sudah menggunakan web hosting. Bisa coba di tanya ke CS web hosting apakah ada pengaturan lain yang harus diubah atau apakah hal ini di izinkan.
iya betul, Mas Andre. Biasanya kalo shared hosting memang gk boleh mengubah yg itu.
saya banyak belajar dari website ini, terimakasih sekali ya…..
semoga makin sukses…..
gan "php fatal error cannot declare class,because already in use…." bagaimana cara mengatasinya ? terimakasih
Berarti di dalam kode programnya terdapat pendefinisian class dengan nama yang sama. Bisa di cek lagi kode yang ditulis, atau kalau ini di dapat dari kode yang sudah jadi, bisa di tanya ke programmer yang membuat kode tersebut.
thanks bro
Mas, kan saya ada niat beli 2 ebook yg web programming, tpi saya bingung beli yg mana dulu, soalnya baru mau mulai dari nol, kiranya mas bisa rekomendasiin yg mana dulu buat dipelajari… Terus buat prospek masa depan web developed gimana mas klo ngelihat zaman yg udah serba instan ini, apa masih layak?
Kalau boleh tau tujuan belajar web programmingnya untuk apa ya? jika pengen buat blog pribadi maka lebih baik belajar aplikasi instant yang dimaksud, misalnya bisa pakai Blogspot atau WordPress.
Belajar web programming lebih saya sarankan bagi yang ingin mendalami dunia web programming, atau ingin berkarir sebagai web programmer professional (bekerja di perusahaan sebagai programmer / buka jasa pembuatan web).
Proses belajar web programming ini juga lumayan lama, jika berangkat dari nol bisa butuh waktu 6 bulan – 1 tahun (bahkan lebih), itupun baru untuk sekedar memenuhi syarat dasar melamar kerja.
Kalau niatnya ingin kerja sebagai web programmer professional, maka memang harus belajar web programming dari dasar. Tools instan bisa dipelajari sebagai alat bantu.
Meskipun nanti bisa buat web instant dengan WordPress (misalnya), coding dasar seperti HTML, CSS, PHP, dkk tetap harus dikuasai. Karena kebutuhan perusahaan atau client nanti tidak selalu bisa dikerjakan dengan WordPress.
Silahkan lihat syarat skill lowongan web programmer, biasanya tetap menuliskan bahasa pemrograman seperti PHP atau framework seperti Code Igniter atau Laravel. Ini sudah menjawab pertanyaan tentang "zaman yg udah serba instan".
Selain itu seperti yang saya sebutkan tadi, proses ke sana tidak sebentar. Jika siap untuk belajar minimal 6 bulan atau 1 tahun (dan selanjutnya harus selalu tingkatkan skill), maka silahkan lanjut.
Untuk materi dasar web programming ada 5 dan bisa dipelajari secara berurutan sebagai berikut: HTML -> CSS -> PHP -> MySQL -> JavaScript. Setelah itu baru lanjut ke materi yang lebih advanced seperti Bootstrap, OOP PHP atau Laravel.
Penjelasan lebih lengkap bisa kesini: https://www.duniailkom.com/ingin-belajar-web-programming-harus-mulai-dari-mana/
di php.ini saya tidak terdapat max_execution time, karena saya sudah menyambungkan ke oci8 semua isi phpnya berubah. apakah ada cara lain?
Terima kasih,
ini sngat membantu di ujian sekola saya ??