Pregunta

Estoy planeando usar php en un entorno integrado. Nuestro servidor web actual es thttpd. Estoy considerando dos opciones ahora: si ejecutarlo como cgi o como módulo SAPI. Sé que cgi tiene ventaja en términos de seguridad. Pero si vamos a usar php como cgi, se debe cargar una instancia de php en la memoria para cada solicitud.

He intentado compilarlo como un módulo SAPI de thttpd y he observado que el uso de la memoria de thttpd, específicamente rss, no aumenta a medida que aumenta el número de solicitudes.

¿Alguien puede explicar cómo carga php thttpd? ¿Se carga solo una vez y permanece residente en la memoria mientras se ejecuta thttpd? Si es así, podemos considerar esto como una alternativa a cgi.

¿Realiza subprocesos múltiples, es decir, si hay varias solicitudes http al mismo tiempo? ¿O se procesa una solicitud a la vez?

¿Existe una buena documentación que discuta el comportamiento de php como un módulo de thttpd?

¿Fue útil?

Solución

No tengo experiencia con thttpd, pero aquí hay algunos consejos:

  • el motor de PHP es seguro para subprocesos, pero algunas extensiones no lo son, por lo que las personas generalmente evitan usarlo en un entorno de subprocesos múltiples y prefieren el proceso de una sola solicitud: método de una solicitud.
  • sí, por lo general, los módulos de servidor web (como Apache mod_ * stuff) funcionan al permanecer residentes, pero el gran speedbump para PHP es que necesita analizar el archivo de origen (o incluso varios archivos de origen, si usa incluir / requerir) para cada solicitud Puede reducir esto usando algo como APC que almacena en caché la versión analizada de los archivos
  • También hay un protocolo llamado FastCGI que tal vez quiera ver. Básicamente, es un cruce entre el módulo y la solución CGI. Combina un par de procesos, cada proceso alberga una única instancia del problema CGI (PHP en este caso) y los utiliza para procesar las solicitudes. Las instancias se reciclan (es decir, pueden procesar varias solicitudes, una después de la otra).
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top