Önemli hata: 300 saniyelik maksimum yürütme süresi aşıldı


91

Şu PHP hatasını alıyorum:

Önemli hata: 300 saniyelik maksimum yürütme süresi aşıldı

Benim ayarı denedim max_execution_timeve benim max_input_timephp.ini ayarları (apache ve cli ikisi) için 0, -1ve 4000saniye her.

Ve hala şunu söyleyen hatayı alıyorum:

Önemli hata: 300 saniyelik maksimum yürütme süresi aşıldı

Ayrıca betiğim bu mesajı almadan önce 300 saniyeden fazla çalışıyor

Komut dosyasını komut satırından çalıştırıyorum.

Ayrıca kontrol ettim, phpinfo()hangisini php.inikullandığımı görün.

Daha da ilginç olanı 5 saniyeye ayarlamayı max_execution_timeve max_input_timeayarları denedim ve betiğim, şunu elde etmeden önce 5 saniyenin ötesinde çalışacak:

Önemli hata: 300 saniyelik maksimum yürütme süresi aşıldı


Ne tür bir sunucu kurulumundasınız?
Pekka

1
Bu çok garip, apache 2.4.18 ve php 7'de de aynı sorunu yaşıyorum ... sql'yi içe aktarmak için PHPMyAdmin kullanmak .. phpinfo (); farklı zaman bildiriyor .. ini ayarını deneyecek sanırım :(
Michael Fever

aynı sorunu set_time_limit (3603) ayarlamaya çalışıyorum; ini_set ('maks_yürütme süresi', 3604); ancak her ikisinin de etkisi yoktur, maksimum yürütme süresi hala 360'tır.
Infor Mat

Yanıtlar:


69

Komut dosyanızın başına ekleyebilirsiniz.

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

2
php dosyanızın en üstüne ekleyin
Tules

2
Bu kod satırı, bir kodun maksimum yürütme süresi kısıtlamasını kaldıracak ve bir php kodunun sonsuza kadar (teorik olarak) çalışmasına izin verecektir.
Technotronic

2
hangi senaryoda?
Sagar Kodte

Veya set_time_limit(0);= aynı.
Íhor Mé

100

WAMP kullanıyorsanız şuraya gidin:

Artış max_execution_timeiçinde php.inio gitmek

C:\wamp\apps\phpmyadmin3.4.10.1\libraries (kurulumunuza göre yolu değiştirin)

0 config.default.phpdeğerini açın ve değiştirin $cfg['ExecTimeLimit']:

$cfg['ExecTimeLimit'] = 0;

Bu, PhpMyAdmin içe aktarmalarıyla ilgili sorunu çözecektir.


@Vipin, çözümünüz bana yardımcı oldu, özellikle
config.default.php

Memnuniyetle yardım ettim ! Cheers :)
Vipin Dubey

500 MB'lık bir DB'yi moodle'ın daha yeni bir sürümüne yükseltmeye çalışırken geçirdiğiniz hüsranın ardından ...... başarılı oldum. Özellikle moodle 2.2 - 2.6.
jamesTheProgrammer

2
Bu cevap için teşekkürler! Php.ini'de maksimum yürütme süresini ayarlamanın yeterli olmadığını anladıktan sonra sorunuma yardımcı oldum!
Rimble

1
config.default.phpdüzenlememek konusunda çok açık, config.inc.phpbunun yerine düzenlememizi söylüyor . Bulmaya çalıştım ve bulamadım, bu yüzden kendim yaptım ve ekledim <?php $cfg['ExecTimeLimit'] = 3000; ?>. Bu hiçbir şey yapmadı. Denemeye ve yapmaya karar verdim config.default.phpve işe yaradı !! config.inc.phpİşi nasıl yapacağız ?!?
BillyNair

69

Xampp Kullanıcıları

  1. Git xampp\phpMyAdmin\
  2. Config.inc.php dosyasını açın
  3. Aramak $cfg['ExecTimeLimit'] = 300;
  4. Daha büyük bir değer ayarlayın veya sınırsız için 0 olarak değiştirin
  5. Eğer bulunamadı eklentiyi $cfg['ExecTimeLimit'] = 0;(veya daha büyük bir değere)
  6. Dosyayı kaydedin ve sunucuyu yeniden başlatın

8
Bu gerçekten benim için işe yarayan tek şey. Gönderdiğiniz için teşekkürler. Benim kurulumumda $ cfg ['ExecTimeLimit'] = 300; config.inc.php'de yoktu, bu yüzden config.default.php'deki değeri değiştirmek yerine oraya ekledim - bu dosyadaki koda dokunulmaması gerektiğini belirten oldukça büyük bir mesaj var;)
Ian

4
Sunucuyu yeniden başlatmayı vurguladığınız için teşekkürler . en önemli unutulabilir nokta.
Pradeep Kumar Prabaharan

4
Config.default.php dosyasında "Hayır !! Düzenleme Yapmayın" yazan bir not var. $ Cfg ['ExecTimeLimit'] = 0; config.inc.php dosyama, çünkü var olmadığı ve çalışıyor gibi göründüğü için.
brandozz

1
bu yazı günümü kurtardı ve ikinci kez bana yardımcı oldu !!! 3 ay sonra nasıl artı bir yapabilirim ???
saber tabatabaee yazdi

24

Benzer bir durumla karşılaştım ve Codeigniter'ın (kullandığım PHP çerçevesi) aslında kendi zaman sınırını belirlediği ortaya çıktı:

System / core / Codeigniter.php'de, 2.1.3 sürümünde 106. satırda şunlar görünür:

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

Çekirdek dosyayı değiştirmekten kaçınmanın başka bir yolu olmadığından, php.ini aracılığıyla yapılandırmaya izin vermek ve bir CLI isteği için sonsuz maksimum yürütme süresi vermek için onu kaldırdım.

Bununla birlikte, gelecekteki CI sürüm yükseltmeleri durumunda bu değişikliği bir yere kaydetmenizi öneririm.


7
OH. BENİM. İYİLİK. Buna inanamıyorum. Neden kanlı dünya, yürütme süresini zaten var olan diğer tüm yürütme süresi sınırlarının üstüne sınırlıyor? Bununla saatlerimi boşa harcadım. Gönderdiğiniz için teşekkürler.
fool4jesus

1
Bu inanılmaz. Çizgiyi yorumladı ve çalışıyor! CI neden varsayılan PHP varsayılanının üzerine yazar ve bununla ilgili belge sağlamaz ?!
Phil Cross

Bunu okuyorsanız ve ExpressionEngine kullanıyorsanız (CodeIgniter üzerine inşa edilmiştir) ... Pekala - tahmin edin - EE, CI'nın geçersiz kılmasını geçersiz kılar! Hem /system/codeigniter/system/core/Codeigniter.php satır 106, AND /system/expressionengine/libraries/Core.php, satır 64'ü düzenlemeniz gerekecek. Bunu keşfetmek hayatımın üç saati eğlenceliydi .. .
Jack

@PhilCross Daha fazla zaman çalıştırması gereken işlevi biliyorsanız, Jess'in önerisini ve set_time_limit(0);bu işlevin içindeki yerini kullanabilirsiniz . Çekirdeği değiştirmenize gerek yoktur: bu talimat zaman sınırını sıfırlayacaktır, böylece o belirli işlevi çalıştırırken çekirdekteki veya diğer paketlerdeki diğer satırlar için endişelenmenize gerek kalmaz.
Armfoot

10

Senaryonuzda aşağıdakine benzer bir şey deneyin:

set_time_limit(1200);

3
set_time_limit(0);betiğinizin sonsuza kadar çalışmasını sağlar.
Jonathon

24
set_time_limit(0); betiğinizin sonsuza kadar çalışmasına izin verir .
Jess Telford

6

Doğru cevap bu:

git

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

bul ve ayarla

$cfg['ExecTimeLimit'] = 0;

tüm hizmetleri yeniden başlatın ve bitti.


Mükemmel cevap, Teşekkürler @llioor
kach

5

xampp / phpmyadmin / libraries / config.default.php adresine gidin

ve aşağıdaki değişiklikleri yapın

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

3

Xampp Kullanıcıları için

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

PHP'nin CLI'sinin varsayılan yürütme süresi sonsuzdur.

Bu, bir betiğin ayrıştırıcı tarafından sonlandırılmadan önce çalışmasına izin verilen maksimum süreyi saniye cinsinden ayarlar. Bu, kötü yazılmış komut dosyalarının sunucuyu bağlamasını önlemeye yardımcı olur. Varsayılan ayar 30'dur. PHP'yi komut satırından çalıştırırken varsayılan ayar 0'dır.

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

PHP'yi güvenli modda çalıştırıp çalıştırmadığınızı kontrol edin, çünkü o zaman tüm zaman yürütme ayarlarını yok sayar.


1

Yerel AppServ için

C: \ AppServ \ www \ phpMyAdmin \ libraries \ config.default.php konumuna gidin

$cfg['ExecTimeLimit']Değeri bulun ve 0 olarak ayarlayın.

Yani benzeyecek

$cfg['ExecTimeLimit'] = 0;

1

Xampp üzerindeyseniz ve büyük sql dosyalarını içe aktarmak için phpMyadmin kullanıyorsanız ve maks_yürütme süresini, maksimum dosya yükleme sınırını ve gereken her şeyi artırdıysanız Ve yukarıdaki cevaplardan hiçbiri sizin için işe yaramazsa buraya gelin

Xampp klasörünüze gidin, benim durumumda, değiştirmem gereken dosyanın ilgili yolu: 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

WAMP KULLANICILARI:

1) C: \ wamp \ apps \ phpmyadmin'e gidin

2) config.inc'i açın

3) $ cfg ['ExecTimeLimit'] = '3600 ′; dosyaya.

4) Dosyayı kaydedin ve sunucuyu yeniden başlatın.

Bu dosya php.ini dosyasının üzerine yazar ve sizin için çalışacaktır!


0

Benim durumumda, Phpmyadmin'de bu hatayla karşılaştığımda, MySQL-Front'u denedim ve DB'mi başarıyla içe aktardım.

Not: Sorununuzu Phpmyadmin'de çözmek için bu soru altında sağlanan çözümleri yine de kullanabilirsiniz.


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

0

Yukarıdaki cevaplar işe yaramazsa, kodunuzu kontrol etmeye çalışın, Tecrübelerime göre, sonsuz bir döngüye sahip olmak da bu soruna neden olacaktır. Else if ifadenizi kontrol edin.


0

Codeignitor 3.0.x sürümünde system / core / Codeigniter.php, zaman kısıtlamasını ve ekleme

ini_set('MAX_EXECUTION_TIME', -1);  

kod düzenleyici bunu kendi set_time_limit () işleviyle geçersiz kılacağından çalışmayacaktır. Yani ya bu işlevi kod düzenleyiciden silmeniz gerekir ya da basitçe

set_time_limit('1000');

1000 saniyeye değiştirmek isterseniz php dosyasının başlangıcında. İstediğiniz kadar çalıştırmak istiyorsanız zamanı 0 (sıfır) olarak ayarlayın.


0

Xampp üzerinde php.ini içinde mysql.connect_timeout'u da kontrol etmelisiniz. Örneğin, şu şekilde değiştirin:

mysql.connect_timeout = 3600

Bu süre her zaman saniye cinsinden sayılacaktır (yani benim örneğimde 1 saat)


0

MAMP KULLANICILARI php.ini'yi düzenlemek bunu çözer - bir satır vardır:

max_execution_time = 30; Her komut dosyasının saniye cinsinden maksimum yürütme süresi

bunu daha yüksek bir değere ayarlamak işe yaradı.

dosya php / php5.6.25 / conf / php.ini içindedir (açıkça kullandığınız php sürümü için dosyayı ıslatmanız gerekir - bunu MAMP tercihlerinden öğrenebilirsiniz.


0

Birden fazla phpmyadmin'e sahip olduğum yapılandırmamdaki wamp'ta, yapılandırma dosyalarındaki değerlerin üzerine yazılmıştır wamp/alias/phpmyadmin.conf. Orada iki hat kurdum:

1. php_admin_value max_execution_time 3600

2. php_admin_value max_input_time 3600

... sonunda işe yaradı!


-1

Zaman sınırı ayarlayabilirsiniz:

ini_set('max_execution_time', 1000000000000000);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.