Search code examples
phpprocesspid

Creation of new process for each request of web page?


It might be a basic question but everytime a user call a php file from a server, does it create a new process from that server ?

For example, I have a basic form (let's say on index.php) that submits a text to another php file. In that php file, I print the posix_getpid().

I opened in two tabs my index.php an filled in and submitted a text and I ended up with two different pid on each tab.

Which lead me to the conclusion that a server probably create a new process for each script. Am I right ?

Cheers !


Solution

  • I assume that you're running apache as your web server.

    When a request comes in, apache starts a new thread. PHP is then invoked on this new thread, hence why you get a new process id every time.

    This is, of course, greatly simplified.

    I recommend reading this article for a deeper understanding.

    Edit: It seems that the process differs between platforms. It works the way I described above on Windows, but multiple apache processes are executed on Unix.