Ten problem powoduje, że mam orzechy, ponieważ max_execution_time w php.ini oraz w htaccess i zgłaszane od php jest zdecydowanie wyższy, niż raport w komunikacie ostrzegawczym.PHP max_execution_time zignorowane (brak trybu awaryjnego, brak współdzielonego hosta, tylko localhost/windows7/php 5.3.1 i limit czasu Apache to 300)
<?php
echo "Max execution time: ".ini_get("max_execution_time")."<br />";
while(true)
{
sleep(1);
}
?>
wyjściowa:
Maksymalny czas wykonywania: 240
błąd krytyczny: maksymalny czas wykonania 60 sekund przekroczona C: \ xampp \ htdocs \ timetest.php na linii 5
Odpowiedź
Tak, wydaje się być błąd: max_input_time nadpisuje max_execution_ czas!
.htaccess:
php_value max_execution_time 240
php_value max_input_time 111
timetest.php:
<?php
echo "Max execution time: ".ini_get("max_execution_time")."<br />";
echo "Max input time: ".ini_get("max_input_time")."<br />";
while(true)
{
sleep(1);
}
?>
wyjściowy (dowód)
Maksymalny czas wykonywania: 240
czas wejścia maksymalna: 111
Błąd krytyczny: przekroczono maksymalny czas wykonania 111 sekund w C: \ xampp \ htdocs \ timetest.php na linii 6
Dzięki za pomoc!
jedno pytanie dotyczące Twojego pytania. Kiedyś myślałem, że maksymalny czas wykonania, który pokazuje przeglądarkę, jest ustawiony przez przeglądarkę, i może różnić się od wartości w php.ini! Myślałem, że źle? – Simon
@Syom - max_execution_time nie jest ustawiona przez przeglądarkę, jest to wartość php.ini. Przeglądarki mają własne limity czasu (aby zatrzymać złośliwe skrypty), ale nie mają one znaczenia w tym scenariuszu. Wartość php.ini może różnić się w przeglądarce i wierszu poleceń, ponieważ apache używa innego php.ini niż tryb wiersza poleceń. – pinaki
@pinaki, więc jeśli zobaczyłem komunikat "Maksymalny czas wykonania 60 sekund przekroczony", oznacza to, że 60 sekund zostało ustawione w php.ini w apache? – Simon