Kesalahan fatal: Waktu eksekusi maksimum 300 detik terlampaui


91

Saya terus mendapatkan kesalahan PHP ini:

Kesalahan fatal: Waktu eksekusi maksimum 300 detik terlampaui

Saya telah mencoba mengatur pengaturan saya max_execution_timedan saya max_input_timedi php.ini (baik apache dan cli) menjadi 0, -1dan 4000detik masing-masing.

Dan saya masih mendapatkan kesalahan yang mengatakan:

Kesalahan fatal: Waktu eksekusi maksimum 300 detik terlampaui

Juga skrip saya berjalan lebih dari 300 detik sebelum saya mendapatkan pesan ini

Saya menjalankan skrip melalui baris perintah.

Saya juga memeriksa saya phpinfo()jadi lihat yang php.inisaya gunakan.

Yang lebih menarik lagi saya telah mencoba pengaturan max_execution_timedan max_input_timepengaturan ke 5 detik dan skrip saya akan berjalan lebih dari 5 detik sebelum saya mendapatkan:

Kesalahan fatal: Waktu eksekusi maksimum 300 detik terlampaui


Jenis penyiapan server apa yang Anda gunakan?
Pekka

1
Ini sangat aneh saya memiliki masalah yang sama pada apache 2.4.18 dan php 7 ... Menggunakan PHPMyAdmin untuk mengimpor sql .. phpinfo (); melaporkan waktu yang berbeda .. Akan mencoba pengaturan ini Saya kira :(
Michael Fever

masalah yang sama, saya mencoba mengatur set_time_limit (3603); ini_set ('max_execution_time', 3604); tapi keduanya tidak berpengaruh, waktu eksekusi maksimal tetap 360.
Infor Mat

Jawaban:


69

Di awal skrip Anda, Anda dapat menambahkan.

ini_set('MAX_EXECUTION_TIME', '-1');

2
tambahkan di bagian paling atas file php Anda
Tules

2
Baris kode ini akan menghilangkan batasan waktu eksekusi maksimum dari sebuah kode, memungkinkan kode php untuk berjalan selamanya (secara teoritis).
Technotronic

2
dalam naskah yang mana?
Sagar Kodte

Atau set_time_limit(0);= sama.
Íhor Mé

100

Jika Anda menggunakan WAMP Pergi ke:

Meningkatkan max_execution_timedi php.inikemudian pergi ke

C:\wamp\apps\phpmyadmin3.4.10.1\libraries (ubah jalur sesuai dengan instalasi Anda)

buka config.default.phpdan ubah nilai $cfg['ExecTimeLimit']menjadi 0:

$cfg['ExecTimeLimit'] = 0;

Ini akan menyelesaikan masalah untuk impor PhpMyAdmin.


@Vipin, solusi Anda membantu saya, terutama config.default.php ;-)
Rishi Kulshreshtha

Senang bisa membantu! Cheers :)
Vipin Dubey

terima kasih, setelah berjam-jam frustrasi mencoba mengupgrade 500 MB DB ke versi moodle yang lebih baru ...... Saya berhasil. Khususnya moodle 2.2 - 2.6.
jamesTheProgrammer

2
Terima kasih atas jawaban ini! Membantu masalah saya setelah menyadari bahwa mengatur waktu eksekusi maksimal di php.ini tidak cukup!
Rimble

1
config.default.phpsangat eksplisit tentang tidak mengeditnya, malah menyuruh kami untuk mengedit config.inc.php. Saya mencoba menemukannya dan tidak bisa, jadi saya membuatnya sendiri dan menambahkan <?php $cfg['ExecTimeLimit'] = 3000; ?>. Ini tidak melakukan apa-apa. Saya memutuskan untuk mencoba dan melakukannya config.default.phpdan berhasil !! Bagaimana kita bisa melakukan config.inc.phppekerjaan itu?!?
BillyNair

68

Pengguna Xampp

  1. Pergi ke xampp\phpMyAdmin\
  2. Buka config.inc.php
  3. Pencarian untuk $cfg['ExecTimeLimit'] = 300;
  4. Tetapkan nilai yang lebih besar atau ubah ke 0 untuk tidak terbatas
  5. Jika tidak ditemukan tambahkan $cfg['ExecTimeLimit'] = 0;(atau nilai yang lebih besar)
  6. Simpan file dan mulai ulang server

8
Ini benar-benar satu-satunya hal yang berhasil bagi saya. Terima kasih telah memposting. Dalam pengaturan saya, $ cfg ['ExecTimeLimit'] = 300; tidak ada di config.inc.php jadi saya menambahkannya di sana daripada mengubah nilainya di config.default.php - ada pesan agak besar yang menyatakan untuk tidak menyentuh kode di file itu;)
Ian

4
terima kasih telah menyorot restart server . hal terpenting yang bisa dilupakan.
Pradeep Kumar Prabaharan

4
Ada catatan di file config.default.php yang mengatakan "No !! Do Not Edit". Saya menambahkan $ cfg ['ExecTimeLimit'] = 0; ke file config.inc.php saya karena tidak ada dan sepertinya berfungsi.
brandozz

1
posting ini menyelamatkan hari saya dan membantu saya untuk kedua kalinya !!! bagaimana saya bisa ditambah satu setelah 3 bulan ???
saber tabatabaee yazdi

24

Saya mengalami situasi serupa, dan ternyata Codeigniter (framework PHP yang saya gunakan) sebenarnya menetapkan batas waktunya sendiri:

Di system / core / Codeigniter.php, baris 106 di versi 2.1.3 berikut ini muncul:

if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0)
{
    @set_time_limit(300);
}

Karena tidak ada cara lain untuk menghindari perubahan file inti, saya menghapusnya untuk memungkinkan konfigurasi melalui php.ini, serta memberikan waktu eksekusi maksimum yang tak terbatas untuk permintaan CLI.

Saya merekomendasikan untuk merekam perubahan ini di suatu tempat dalam kasus peningkatan versi CI di masa mendatang.


7
OH. SAYA. KEBAIKAN. Saya tidak dapat mempercayai ini. Mengapa dunia berdarah membatasi waktu eksekusi di atas semua batas waktu eksekusi yang sudah ada? Saya telah membuang waktu berjam-jam untuk ini. Terima kasih telah memposting.
fool4jesus

1
Itu luar biasa. Mengomentari baris dan berhasil! Mengapa CI menimpa default PHP default, dan tidak memberikan dokumentasi tentang itu ?!
Phil Cross

Jika Anda membaca ini dan Anda menggunakan ExpressionEngine (yang dibangun di atas CodeIgniter) ... Nah - coba tebak - EE menimpa pengesampingan CI! Anda harus mengedit kedua /system/codeigniter/system/core/Codeigniter.php baris 106, DAN /system/expressionengine/libraries/Core.php, baris 64. Itu adalah tiga jam yang menyenangkan dalam hidup saya karena mengetahui bahwa .. .
Jack

@PhilCross jika Anda mengetahui fungsi yang perlu mengeksekusi lebih banyak waktu, Anda dapat menggunakan saran Jess dan menempatkannya set_time_limit(0);di dalam fungsi itu. Anda tidak perlu mengubah inti: instruksi ini akan mengatur ulang batas waktu, jadi Anda tidak perlu khawatir tentang jalur lain di inti atau di paket lain saat menjalankan fungsi khusus itu.
Armfoot

10

Cobalah sesuatu seperti berikut dalam skrip Anda:

set_time_limit(1200);

3
set_time_limit(0);membuat skrip Anda berjalan selamanya.
Jonathon

24
set_time_limit(0); memungkinkan skrip Anda berjalan selamanya.
Jess Telford

6

Inilah jawaban yang benar:

pergi ke

c:\wamp\apps\phpmyadmin3.4.10.1\libraries\config.default.php

temukan dan atur

$cfg['ExecTimeLimit'] = 0;

restart semua layanan dan selesai.


Jawaban sempurna, Terima kasih @lloor
kach

5

buka xampp / phpmyadmin / libraries / config.default.php

dan lakukan perubahan berikut

from  $cfg['ExecTimeLimit'] = ’300′;
to  $cfg['ExecTimeLimit'] = ’0′;

3

Untuk Pengguna Xampp

1. Go to C:\xampp\phpMyAdmin\libraries
2. Open config.default.php
3. Search for $cfg['ExecTimeLimit'] = 300;
4. Change to the Value 300 to 0 or set a larger value
5. Save the file and restart the server
6. OR Set the ini_set('MAX_EXECUTION_TIME', '-1'); at the beginning of your script you can add.

1

Waktu eksekusi default CLI PHP tidak terbatas.

Ini menetapkan waktu maksimum dalam detik sebuah skrip diizinkan untuk dijalankan sebelum diakhiri oleh parser. Ini membantu mencegah skrip yang ditulis dengan buruk dari mengikat server. Pengaturan default adalah 30. Saat menjalankan PHP dari baris perintah, pengaturan default adalah 0.

http://gr.php.net/manual/en/info.configuration.php#ini.max-execution-time

Periksa apakah Anda menjalankan PHP dalam mode aman, karena itu mengabaikan semua pengaturan waktu exec saat itu.


1

Untuk AppServ Lokal

Buka C: \ AppServ \ www \ phpMyAdmin \ libraries \ config.default.php

Temukan $cfg['ExecTimeLimit']dan setel nilai ke 0.

Jadi akan terlihat seperti itu

$cfg['ExecTimeLimit'] = 0;

1

Jika Anda menggunakan xampp dan menggunakan phpMyadmin untuk mengimpor file sql yang besar dan Anda telah meningkatkan waktu max_execution, batas unggah file maks dan semua yang diperlukan Dan Jika tidak ada jawaban di atas yang berfungsi untuk Anda, datang ke sini

Buka folder xampp Anda, dalam kasus saya di sini adalah jalur relatif ke file yang perlu saya ubah: C: \ xampp \ phpMyAdmin \ libraries \ config.default.php

/** * maximum execution time in seconds (0 for no limit) * * @global integer $cfg['ExecTimeLimit'] * by defautlt 300 is the value * change it to 0 for unlimited * time is seconds * Line 709 for me */ $cfg['ExecTimeLimit'] = 0;


0

PENGGUNA WAMP:

1) Buka C: \ wamp \ apps \ phpmyadmin

2) Buka config.inc

3) Tambahkan $ cfg ['ExecTimeLimit'] = '3600 ′; ke file.

4) Simpan file dan mulai ulang server.

File ini menimpa php.ini dan akan bekerja untuk Anda!


0

Dalam kasus saya, ketika saya menghadapi kesalahan itu di Phpmyadmin, saya mencoba MySQL-Front dan berhasil mengimpor DB saya.

Catatan: Anda masih dapat menggunakan solusi yang disediakan di bawah pertanyaan ini untuk menyelesaikan masalah Anda di Phpmyadmin.


Hier gibt es nichts zu sehen ... :-)
rahul

0

Jika jawaban di atas tidak berhasil, coba periksa kode Anda ,, Dalam pengalaman saya, memiliki loop tak terbatas juga akan menyebabkan masalah itu. Periksa pernyataan if Anda yang lain.


0

Di Codeignitor versi 3.0.x, system / core / Codeigniter.php tidak mengandung batasan waktu seperti halnya penyisipan

ini_set('MAX_EXECUTION_TIME', -1);  

tidak akan berfungsi karena codeignitor akan menimpanya dengan fungsinya sendiri set_time_limit (). Jadi Anda harus menghapus fungsi itu dari codeignitor atau Anda bisa memasukkannya

set_time_limit('1000');

di awal file php jika Anda ingin mengubahnya menjadi 1000 detik. Setel waktu ke 0 (nol) jika Anda ingin menjalankannya selama yang diinginkan.


0

Di Xampp, di php.ini Anda juga harus memeriksa mysql.connect_timeout. Jadi, misalnya, ubah menjadi:

mysql.connect_timeout = 3600

Waktu itu akan selalu dihitung dalam detik (jadi 1 jam dalam contoh saya)


0

PENGGUNA MAMP mengedit php.ini menyelesaikan ini - ada baris:

max_execution_time = 30; Waktu eksekusi maksimum setiap skrip, dalam detik

mengatur ini ke nilai yang lebih tinggi berhasil.

filenya ada di php / php5.6.25 / conf / php.ini (jelas Anda perlu membasahi file untuk versi php yang Anda gunakan - Anda dapat mengetahui ini dari preferensi MAMP.


0

Pada wamp dalam konfigurasi saya di mana saya memiliki beberapa phpmyadmin, nilai dalam file konfigurasi ditimpa wamp/alias/phpmyadmin.conf. Saya menyiapkan dua baris di sana:

1. php_admin_value max_execution_time 3600

2. php_admin_value max_input_time 3600

... akhirnya berhasil!


-1

Anda dapat mengatur batas waktu:

ini_set('max_execution_time', 1000000000000000);
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.