PHP Max Yürütme Zaman: Yanlış Raporlama?

5 Cevap php

Bir ölümcül hata dönmek için bir PHP komut dosyası için herhangi bir neden var mı:

Fatal error: Maximum execution time of 60 seconds exceeded in 
H:\xampplite\htdocs\mlm\tera.php on line 1

Benim PHP ini daha fazla "300000" olarak ayarlanır ve zaman komut dosyası kendisi set_time_limit(300000); set. Safemode kapalı. Buna ek olarak, Apache zaman aşımı da "300000" olarak ayarlandığında.

Neden PHP bu iade olacak - Ben böyle olacağını neden herhangi bir davaya mutluyum!

Ben esas olarak exec fonksiyonunu kullanarak SQLCMD yoluyla sorguları çalıştırmak için bu PHP komut dosyası kullanıyorum. PHP komut dosyası üzerinde 5 dakika boyunca (sözde) yürütme edildikten sonra bu hatayı alıyorum.

Not: Bu soruyu cevaplarken ben doğru php.ini dosyası vb kullanılarak ve ne iddia ediyorum ne olduğunu duyuyorum ki no doubt olduğunu varsayalım lütfen actually happening.

Herhangi bir yardım için teşekkür ederiz

P.S. Ben daha önce bu soruyu sordum ama diğer soru dağınık başlamıştı düşündüm. Ben nihayet bu konuda kitabı kapatabilirsiniz umuduyla bu daha spesifik yaptık. Ayrıca bu ben yaptım ve ben artık AJAX kullanarak değilim bir test.

Update

Söz Script Satır 1:

session_start(); 
ini_set("max_execution_time" , 300000); 
error_reporting(0);
ini_set('display_errors', '0');

(Ben daha kolay okunmasını sağlamak için bir satır sonu ekledim)

5 Cevap

Ben php.net üzerine this comment bulundu. Script 60 saniye aşan olabileceği (bir dosya yükleme gibi) başka bir yere girdi bekliyor? 60 PHP dosyası veri almak için ne kadar bekleyeceğini belirler max_input_time için varsayılan zamandır.

Mı phpinfo çıktı uygun sütuna max_execution_time gibi girdiğiniz actually showing değeri (300000)? Hiçbir farklı yerel bir ayar var mı? Yerde bütün Phpinfo çıktı hayır "60 saniye" doğru vardır?

Ben aynı şeyi birden fazla kez kendim için oldu çünkü sormak gerekir.

Sonra, ne görüyorsanız size ana komut yürütme, farklı bir komut komut satırı çıktısı olduğunu olabilir? Ya da farklı bir bağlamda bir PHP komut dosyası aslında bu yaydığında başka yolu?

Basit bir php_info ile bir sayfası çalıştırın (); sadece çizgi olarak diyoruz. bu değişken gerçekten max yürütme zamana ayarlanan ne yaptığımı anlatacağım.

Yürütme zamanı sınırı php execution time için geçerlidir ve dış programlar veya veritabanları için bekleyen içermez. Eğer üzerinde 5 dakika sonra 60 saniye sınırını isabet konum neden olduğunu açıklayabilir.

Hala 60 saniye sınırını alıyoruz neden gelince, ben bilmiyorum. Eğer doğru php.ini dosyasını kullandığınızdan emin gibi geliyor, ben php direktifleri için. Htaccess dosyaları herhangi bir kontrol ve phpinfo() ile ayarını kontrol ediyorum. ) Config bir değeri değiştirin ve (bu phpinfo değişti doğrulayın.

Ayrıca web sunucusu yeniden başlatın.

Eğer 300 gibi biraz daha max_execution_time şey ayarı denediniz mi? Yoksa really yürütme süresi üç buçuk gün gerekiyor? (Ipucu: cevap evet ise, PHP muhtemelen iş için araç değildir) Bazı hızlı googling herhangi bir sonuç vermedi, ama 300,000 PHP veya apache bazı kodlanmış sınırı aşıldığında ben şaşırmam. Ben sorunsuz gibi yüksek 500 gibi çalıştırın, ama asla bundan daha var.