Prawdziwy max_execution_time dla PHP na Linuksie

Zgodnie z dokumentacją:

<code>max_execution_time only affect the execution time of the script itself. 
Any time spent on activity that happens outside the execution of the script
such as system calls using system(), stream operations, database queries, etc.
is not included when determining the maximum time that the script has been running.
This is not true on Windows where the measured time is real.
</code>

Potwierdzają to testy:

Nie wygasa

<code><?php
set_time_limit(5);
$sql = mysqli_connect('localhost','root','root','mysql');
$query = "SELECT SLEEP(10) FROM mysql.user;";
$sql->query($query) or die($query.'<br />'.$sql->error);
echo "You got the page";
</code>

Upłynie czas

<code><?php
set_time_limit(5);
while (true) {
  // do nothing
}
echo "You got the page";
</code>

Naszym problemem jest to, że naprawdę chcielibyśmy, aby PHP przestało działać, bez względu na to, co robi, po upływie określonego czasu (ponieważ nie chcemy, aby zasoby były zajęte, jeśli wiemy, że nie udało nam się dostarczyć strony w akceptowalnej ilości czasu, jak 10 sekund). Wiemy, że możemy grać z ustawieniami takimi jakMySQL wait_timeout dla zapytań SQL, ale limit czasu strony będzie zależał od liczby wykonywanych zapytań.

Niektórzy próbowali wymyślićobejścia i nie wydaje się możliwe do wdrożenia.

P: Czy istnieje prosty sposób na uzyskanie prawdziwegoPHP max_execution_time na Linuksie, czy lepiej skończyć się w innym miejscu, na przykładApache poziom?

questionAnswers(3)

yourAnswerToTheQuestion