Quería preguntarle sobre los métodos de configuración de PHP / Apache que conoce, sus ventajas y desventajas. Comenzaré yo mismo:
---------------- PHP como módulo de Apache ----------------
Pros : buena velocidad ya que no necesita iniciar exe cada vez, especialmente en modo mpm-worker . También puede usar varios aceleradores PHP en este modo, como APC o eAccelerator.
Contras : si está ejecutando apache en modo mpm-worker, puede enfrentar problemas de estabilidad porque cada falla en cualquier script php conducirá a la inestabilidad de todo el grupo de subprocesos de ese proceso de apache. También en este modo, todos los scripts se ejecutan en nombre del usuario de apache. Esto es malo para la seguridad. La configuración de mpm-worker requiere PHP compilado en modo seguro para subprocesos. Al menos los repositorios predeterminados de CentOS y RedHat no tienen una versión PHP segura para subprocesos, por lo que en estos sistemas operativos debe compilar al menos PHP usted mismo (hay una manera de activar el mpm de trabajador en Apache). El uso de binarios PHP seguros para subprocesos se considera experimental e inestable. Además, muchas extensiones PHP no admiten el modo seguro para subprocesos o no se probaron bien en modo seguro para subprocesos.
---------------- PHP como CGI ----------------
Esta parece ser la configuración predeterminada más lenta que parece ser una "estafa" en sí misma;)
---------------- PHP como CGI a través de mod_suphp ----------------
Pros : suphp le permite ejecutar scpts de php en nombre del propietario del archivo de script. De esta manera, puede separar de forma segura diferentes sitios en la misma máquina. Además, suphp permite usar diferentes archivos php.ini por host virtual.
Contras : PHP en modo CGI significa menos rendimiento. En este modo, no puede usar aceleradores php como APC porque cada vez que se genera un nuevo proceso para manejar el script, la memoria caché del proceso anterior es inútil. Por cierto, ¿conoces la forma de aplicar un acelerador en esta configuración? Escuché algo sobre el uso de shm para caché de bytecode php. Además, no puede configurar PHP a través de archivos .htaccess en este modo. Deberá instalar P ECL htscanner para esto si necesita establecer varias opciones por script a través de .htaccess (directivas php_value / php_flag)
---------------- PHP como CGI a través de suexec ----------------
Esta configuración se ve igual que con suphp, pero escuché que es más lenta y menos segura. Se aplican casi los mismos pros y contras.
---------------- PHP como FastCGI ----------------
Pros : El estándar FastCGI permite que un solo proceso de php maneje varios scripts antes de que se elimine el proceso de php. De esta manera, obtienes rendimiento, ya que no es necesario activar un nuevo proceso de php para cada script. También puede usar aceleradores PHP en esta configuración (consulte la sección contras para obtener comentarios). Además, FCGI casi como suphp también permite que los procesos php se ejecuten en nombre de algún usuario. mod_fcgid parece tener el soporte fcgi más completo y la flexibilidad para apache.
Contras : El uso del acelerador php en modo fastcgi conducirá a un alto consumo de memoria porque cada proceso PHP tendrá su propio caché de bytecode (a menos que haya algún acelerador que pueda usar memoria compartida para el caché de bytecode. ¿Existe?). FastCGI también es un poco complejo de configurar. Necesita crear varios archivos de configuración y hacer algunas modificaciones de configuración.
Parece que fastcgi es la configuración PHP más estable, segura, rápida y flexible, sin embargo, es un poco difícil de configurar. Pero, puede ser, me perdí algo?
¡Los comentarios son bienvenidos!