Beklediğim gibi komut satırında doğrudan çalıştırdığınızda çalıştığı bir komut var. Bu 30 saniye boyunca çalışır ve hataları atmak değil. Aynı komut (bir cron tarafından çağrılan bir komut dosyasında bulunan) php işlevi exec () ile bir PHP komut dosyası aracılığıyla çağrıldığında hata atıyor:
Maximum execution time of 30 seconds exceeded
Biz sunucuların bir dizi var ve ben hiçbir komut düzeyinde sorun yoktur mutluyum bu yüzden herhangi bir sorun olmadan aynı veri kümesi ile çok benzer bir sunucu üzerinde bu komutu çalıştırmak. PHP kurulum veya bir şekilde server kurulum ama gerçekten emin değil bakmak ya - ben bu sunucu düzeyinde şey ilişkili olduğunu düşünüyorum daha meyilli oluyorum. Ilgilenen olanlar için hem de sunucular 30 saniye maksimum yürütme zaman var.
Komut kendisi böyle denir -
Komut satırından itibaren:
root@server>php -q /path/to/file.php
bu işleri ...
ve bir PHP dosyası içinde cron üzerinden gibi:
exec("php -q /path/to/file.php");
Bu maksimum yürütme zamanı hatası atar. PHP komut satırından çalıştırıldığında hiçbir yürütme zaman sınırı olduğunu hep benim anlayış oldu.
Ben denir komut, diğer komut bir dizi çağırır ve erroring olduğu bu senaryolarından biri olduğuna işaret olmalıdır. 30 saniye bile çok geçmeden benim günlükleri baktığımızda, maksimum yürütme zamanı hata aslında oluşur! Yani, çağrıldığını sonra 30 saniyeden daha az, CLI maksimum yürütme hata atma olarak çalışıyor görünüyor bir cron komut dosyası tarafından çağrılan bir script.
I (no max yürütme zamanı ile CLI gibi) i şu denetimi yapılan beklendiği gibi komut çalıştıran olduğunu kontrol etmek için:
Bu kodu içeren bir PHP komut dosyası:
// test.php
echo exec("php test2.php");
test2.php içerir burada:
echo ini_get('max_execution_time');
ve bu komut bu gibi çalışır:
root@server> php test.php
// returns 0
Bu komut dosyası max yürütme zamanında neden başarısız bu yolla adlı bir betik sadece benim düşüncelerimi kanıtlıyor 0 maksimum yürütme zamanı ile CLI altında çalışan kanıtlıyor, ben gerçekten göremiyorum!