- Desde
- 1 Oct 2019
- Mensajes
- 2,458
- Reacciones
- 2,281
- Honor
- 663
Lo basico
Hablemos de los controladores de PHP, repasaremos los diferentes controladores de PHP disponibles en Apache. Explicaremos qué es cada uno, qué es lo mejor que puede hacer y los pros y los contras con respecto a ese controlador. Nuestro deseo es que esta guía le brinde información útil que sea informativa para usted para que sepa cómo cada controlador se diferencia entre sí.Para empezar, existen muchos controladores diferentes para PHP en Apache:
- CGI ( mod_cgi/ mod_cgid)
- SuPHP ( mod_suphp)
- DSO ( mod_php)
- FCGI ( mod_fcgid)
- LSAPI ( mod_lsapi): mod_lsapi se puede usar en servidores cPanel o DirectAdmin con CloudLinux instalado.
- PHP-FPM
CGI
El controlador CGI es uno de los primeros controladores de PHP. Se ejecuta como un módulo CGI en lugar de un módulo Apache, por lo general, mod_cgi o mod_cgid. Cuando se utiliza como controlador PHP, los scripts PHP se ejecutan como el propietario del archivo en lugar del nobody usuario predeterminado de Apache. Este controlador de PHP no se usa normalmente debido a que no es seguro (por sí solo) ni es rápido: se considera el controlador más lento. En un momento dado, este controlador se pensó como un método alternativo en caso de que no hubiera otro controlador disponible.Ventajas de este controlador:
- Cuando se combina con SuEXEC, este controlador le permite ver las solicitudes de PHP del usuario
- Este controlador se considera inseguro debido a los permisos no restrictivos.
- Provoca un alto uso de recursos que puede conducir a problemas potenciales
- Las directivas de Apache no se pueden utilizar. Archivo de configuración ( php.ini) requerido
- Requiere mpm-itk estar seguro.
SuPHP
En los servidores de cPanel, suphp debe configurarse como el controlador de PHP desde dentro de WHM para que las solicitudes de Litespeed PHP se manejen de manera adecuada.SuPHP ( mod_suphp) se desarrolló como un controlador más seguro y de mejor rendimiento que sus predecesores. Con el uso de SuEXEC ( mod_suexec), ofrece una ejecución segura de archivos PHP con los permisos establecidos adecuados. Debido a esto, se ha considerado el más seguro de los controladores para servidores web. SuPHP ejecuta PHP como un módulo CGI que permite a Apache separar los procesos de PHP, utilizando su propio usuario individual para la ejecución. Esto permite el aislamiento entre los usuarios. En caso de compromiso, los archivos del usuario no podrían modificar los archivos de otro usuario.
Con EasyApache4 en servidores cPanel, el suphp controlador se puede aplicar a todas las versiones.
Ventajas de este controlador:
- Procesos ejecutados como propietario del archivo (la cuenta del usuario)
- Puede usar SuEXEC para los procesos PHP seguros "bifurcados"
- La propiedad/permisos de archivos incorrectos harán que los scripts no se ejecuten
- Realiza varias comprobaciones de seguridad en cada script PHP antes de la ejecución
- Puede usar mod_userdir (Ej: http://serverip/~$USERNAME)
- Al igual que CGI, SuPHP hace un uso intensivo de la CPU
- Estado no persistente: requiere un nuevo proceso para cada solicitud de PHP
- No se puede usar ningún almacenamiento en caché de PHP Opcode
- Ya no es mantenido activamente por sus desarrolladores.
- Las directivas de Apache no se pueden utilizar. Archivo de configuración ( php.ini) requerido
- Los permisos de archivo incorrectos pueden causar una situación legible en todo el mundo que presenta riesgos de seguridad en todos los sitios web.
DSO
DSO (también conocido como mod_php, o PHP como módulo de Apache) es uno de los controladores de PHP más rápidos disponibles: la desventaja inmediata de esto es que ejecuta todo como el usuario de Apache nobody o apache de forma predeterminada. Esto evita la capacidad de rastrear usuarios/cuentas individuales en el servidor, ya que todos los scripts PHP son propiedad del nobody usuario y los ejecutan. Esto crea un entorno relativamente inseguro cuando se usa DSO sin mod_ruid2 él: deja los scripts vulnerables a cualquier tipo de ataque malicioso que resulte en la modificación de scripts PHP o que permita la modificación de archivos fuera del directorio en el que se explotó el archivo.Por esta razón, recomendamos enfáticamente que mod_ruid2 se use con DSO para crear requisitos de propiedad similares a SuPHP, lo que permite que los archivos sean propiedad de su respectivo usuario de DirectAdmin/cPanel y permite que cada solicitud/proceso de PHP sea rastreado por el usuario que ejecuta dicha solicitud.
En un entorno de PHP múltiple (EasyApache 4 o usando múltiples versiones de PHP con CustomBuild de DirectAdmin), el controlador DSO+mod_ruid2 solo se puede aplicar a una versión de PHP; DSO no se puede usar para múltiples versiones de PHP al mismo tiempo.
Este es nuestro controlador recomendado predeterminado para servidores cPanel sin LiteSpeed Enterprise.
Ventajas de este controlador:
- Permite el almacenamiento en caché de PHP (Opcache, etc.)
- Las directivas de PHP se pueden configurar dentro de .htaccess ( php_flag / php_value)
- Considerado como muy rápido en ejecución.
- Bajo uso de recursos (CPU/Memoria)
- Mejor emparejado con mod_ruid2
- No se puede usar mod_userdir (Ej: http://serverip/~$USERNAME)
- Se considera fácilmente explotable si se ve comprometido debido a los scripts que se ejecutan como nobody usuario
- Es posible que los CMS no se actualicen correctamente debido a permisos/propiedad
- No se puede determinar qué cuenta abusa de los recursos
FCGI
Se ha dicho que FCGI o FastCGI ( mod_fcgid) son los más rápidos para atender solicitudes de PHP en comparación con SuPHP, pero no tan rápido como utilizar DSO. Este controlador funciona para mejorar el uso de la CPU aumentando la disponibilidad general de la memoria del servidor para almacenar en caché los scripts PHP en la memoria del servidor. El principal beneficio de FastCGI es la capacidad de usarse con SuEXEC como el controlador SuPHP. Esto permite que los scripts se procesen/ejecuten como el usuario en lugar del nobody usuario predeterminado que usa Apache.Con EasyApache4, el controlador FCGI se puede aplicar a todas las versiones.
Debido a los requisitos de configuración necesarios para que funcione este controlador, se recomienda que este controlador sea solo para administradores de sistemas experimentados.
Ventajas de este controlador:
- procesos persistentes; no genera un nuevo proceso para cada solicitud
- Baja utilización de la CPU
- Permite el almacenamiento en caché de PHP (Opcache, etc.)
- Puede ser equivalente a suPHP en cuanto a seguridad, pero más rápido en ejecución
- Requisito de memoria para su ejecución de PHP
- Mantiene abiertas las sesiones de PHP en segundo plano
LSAPI / mod_lsapi
LSAPI ( mod_lsapi) es un controlador relativamente nuevo que se lanzó para cPanel/EasyApache 4 después de estar disponible periódicamente solo para servidores CloudLinux; mod_lsapi PRO (con opciones de configuración adicionales) está disponible para servidores DirectAdmin y cPanel/WHM con CloudLinux instalado. LSAPI se basa en el controlador lsphp integrado de LiteSpeed . mod_lsapi puede reemplazar a todos los demás controladores (CGI, SuPHP, FCGID o DSO). Se considera que es el controlador más rápido que existe actualmente. Utilizando un bajo uso de recursos tanto para la memoria del servidor como para la CPU. LSAPI proporciona un impulso excepcional en el rendimiento sobre todos los demás controladores de PHP. El beneficio de un controlador de este tipo es que puede ejecutarse "de fábrica" sin requerir ninguna configuración significativa.La desventaja es que esta no es la versión completa de LSAPI, ya que CRIU (Checkpoint/Restore In Userspace) y la agrupación de conexiones están deshabilitadas: se requiere CloudLinux para aprovechar al máximo LSAPI con mod_lsapi PRO.
En un entorno Multi-PHP, el controlador LSAPI se puede aplicar a todas las versiones.
Ventajas de este controlador:
- Rápido en comparación con otros manipuladores
- No requiere configuración
- Funciona con PHP Caching (Opcache).
- Soporta Directivas PHP en .htaccess ( php_flag o php_value)
- Bajo uso de recursos (CPU/Memoria)
- Ejecuta PHP Scripts como usuario
- Los permisos de archivo incorrectos pueden causar una situación legible en todo el mundo que presenta riesgos de seguridad en todos los sitios web.
PHP-FPM
PHP-FPM (PHP FastCGI Process Manager) está diseñado como un demonio FastCGI alternativo. Este controlador permite la capacidad de un sitio web para manejar grandes cargas al mantener un grupo de trabajadores de conexión para responder a las solicitudes de PHP entrantes. Este controlador se considera más rápido que otros métodos relacionados con CGI (SuPHP, CGI, etc.) para escenarios multiusuario.PHP-FPM requiere que el servidor tenga una mayor cantidad de memoria disponible en comparación con otras opciones de controlador de PHP para operar sin problemas de memoria. La regla general es al menos 2 GB de RAM o 30 MB por dominio. Si esto está habilitado en un servidor mucho menos que eso, se pueden exhibir problemas de rendimiento y problemas de estabilidad.
Debido a los requisitos de configuración necesarios para que este controlador funcione bien en los servidores cPanel, se recomienda que este controlador sea solo para administradores de sistemas experimentados.
Ventajas de este controlador:
- Manejo de procesos persistentes
- Manejo rápido de scripts PHP
- Soporta alto tráfico
- Utiliza trabajadores 'bajo demanda'
- Requiere configuración en profundidad
- Puede causar problemas de rendimiento si no se configura correctamente
- Requiere una cantidad decente de recursos de servidor disponibles
- No está diseñado para servidores de gama baja