La plupart du temps, PHP est utilisé en conjonction avec un serveur HTTP.

Dans ce cas, lorsque le serveur HTTP reçoit d'un client une requête nécessitant l'exécution d'un script PHP, il demande l'exécution du fichier en question à PHP et retourne son résultat au client.

Or, il existe plusieurs façon d'associer PHP à un serveur HTTP, via différentes SAPI.

Ainsi, PHP est par exemple la plupart du temps lié à apache via le module correspondant, tandis que des serveurs plus récents tel que nginx font appel à PHP via le protocole FastCGI.

Dans ce dernier cas, le script PHP est exécuté par un processus indépendant de celui du serveur HTTP et faisant office de serveur.

En tant que tel, il délègue donc l'exécution du script à l'un de ses processus fils et en retourne le résultat au serveur .

Afin d'optimiser les performances, ce serveur peut créer à l'avance lors de son démarrage un certain nombre de processus fils, afin de pouvoir répondre aux requêtes du serveur HTTP le plus rapidement possible.

De plus, il est tout à fait capable de créer des sous-processus supplémentaires en fonction de sa configuration et de la charge qu'il a à supporter.

Cette architecture est donc très efficace et offre de très bonnes performances, mais ce n'est pas son seul atout.