I have came across many option while deciding for the above situation. 1.simply fork the process after initiating, and let it run as a web server separate process. 2. fork after calling background process as a console command, through tconsolerunner. 3.use any of the available background extension. 4. use any queuing server, in this option we also have many servers available like gearman, beanstalked, rabbit mq etc.
Or is there any other suitable option which i have missed in the list.