this may seem odd, but I actually need a PHP script that WILL time-out, i.e.: take so long to execute that Apache WILL time-out the script and fire a 408 error.
The purpose for this, is to demo capturing the 408 with a custom 408 error page to report timeouts to a database.
Perhaps there is a better way to do this that you may suggest?
I don't think an infinite loop would work as Apache would 500 if I remember correctly.
Edit -------
It has been pointed out that a 408 is a client error, so in addition, what error would Apache fire if a script times-out?
I'd like an actual example rather than a synthesized header()
as this is to be pitched to a client and they would ideally like a real-world example.
Thank you!
A 408 is a client error:
408 Request Timeout
The client did not produce a request within the time that the server was prepared to wait.
So you'll have to telnet <yourhost> 80
and just sit and wait. Of course you can emulate this through fsockopen()
if you want to do it programmatically.
Throwing the header from code might also work.
How about sending 408 status code from php script?
<?php
header("HTTP/1.0 408 Request Timeout");
?>
Or perhaps
<?php
sleep(99999);
?>
You don't need the page to actually timeout. If you're just testing, you can just tell PHP to output an 408 code in the header:
<?php
header("HTTP/1.0 408 Request Timeout");
exit;
<?php
while(true){
//to infinity and beyond...
}
?>
This will do it..