In some cases, we want PHP script to run as long as possible without any timeouts.
For example, when a php application rebuilds mysql indexes, the process may run for a long time. In Apache/mod_php, the ignore_user_abort variable allows the user to trigger this process and then close the browser or navigate away from the page without killing the php/mysql process.
Admin CP => Configuration => Server => Tuning => Connection Timeout (secs)
execution time in php.ini
Admin CP => Configuration => Server(or Vhost) => External App => lsphp5
In Self Managed Mode, LSAPI_MAX_PROCESS_TIME (default 300 seconds) controls the maximum processing time allowed when processing a request. If a child process cannot finish processing the request in the given time period, it will be killed by the parent process. This option can get rid of a dead or a runaway child process.
One of our customers has had success with the following PHP code. Code:
//avoid apache to kill the php running
//start buffer output
echo "show something to user";
//close session file on server side to avoid blocking other requests
//send length header
//really send content, can't change the order:
//1.ob buffer to normal buffer,
//2.normal buffer to output
//continue do something on server side
//replace it with the background task
Note: You need to turn off keepalive for this request, which can be done with a rewrite rule.