2011-03-02 6 views
7

Podría ser una pregunta básica, pero cada vez que un usuario llama a un archivo php desde un servidor, ¿crea un nuevo proceso desde ese servidor?Creación de un nuevo proceso para cada solicitud de página web?

Por ejemplo, tengo una forma básica (digamos en index.php) que envía un texto a otro archivo php. En ese archivo php, imprimo el posix_getpid().

Abrí en dos pestañas mi index.php y rellené y envié un texto y terminé con dos pid diferentes en cada pestaña.

Lo que me lleva a la conclusión de que un servidor probablemente crea un nuevo proceso para cada script. ¿Estoy en lo cierto?

¡Salud!

Respuesta

5

Supongo que está ejecutando Apache como su servidor web.

Cuando entra una solicitud, apache inicia un nuevo hilo. PHP se invoca entonces en este nuevo therad, de ahí que obtenga una nueva identificación de proceso cada vez.

Esto es, por supuesto, muy simplificado.

Recomiendo leer el artículo this para una comprensión más profunda.

Editar: Parece que el proceso difiere entre las plataformas. Funciona de la manera que describí anteriormente en Windows, pero múltiples procesos de apache se ejecutan en Unix.

+2

Ok, entonces es por apache. Pero tu explicación es un poco extraña para mí porque el hilo y los procesos son bastante diferentes. Quiero decir, si apache comienza un nuevo hilo, eso significa que cada script php debe tener apache pid! – David

+0

Aunque voy a leer el artículo. – David

+0

No, el PID proviene de la instancia de PHP recién creada, no del proceso de apache. – alexn

Cuestiones relacionadas