PHP con Nginx en DreamHost

Generalidades

Este artículo contiene información/ejemplos utilizando usuarios root/sudo/admin. Si necesitas acceso sudo/admin, debes actualizar a un Sevidor Dedicado.

PHP 5.6 es la única versión disponible con máquinas VPS compradas antes de marzo de 2020.

PHP 7.2, 7.3, 7.4, 8.0 están disponibles en máquinas VPS compradas después de marzo de 2021. Las versiones anteriores no son compatibles.

Procesos PHP por usuario

Por motivos de seguridad, generalmente se recomienda asignar un solo usuario a cada dominio. De esta forma, si ese usuario se ve comprometido, ningún otro sitio se verá afectado. Sin embargo, al correr Nginx, se recomienda que consolides tus dominios con un solo nombre de usuario. Esto es por razones de rendimiento.

Nginx utiliza una cantidad determinada de procesos PHP al iniciarse. Esto sucede para cada usuario, y se inicia el mismo número independientemente de cuántos dominios estén alojados bajo el usuario.

Sin embargo, si tienes 10 dominios repartidos en 10 usuarios de FTP separados, tendrás 10 veces más procesos PHP de los que obtendría con un solo usuario.

Además, ten en cuenta que la cantidad de procesos PHP que se generan por usuario se escala automáticamente con la cantidad de memoria que tu VPS está configurado para usar.

Limitar la cantidad de procesos generados por dominio

A diferencia de Apache o Lighttpd, Nginx no genera automáticamente procesos FCGI. Debes iniciarlos por separado. PHP5 genera automáticamente tantos como establezca en la variable de entorno PHP_FCGI_CHILDREN.

Ve el siguiente artículo para más detalles:

La variable PHP_FCGI_CHILDREN afecta la cantidad de páginas PHP que se pueden procesar simultáneamente. Cuanto menor sea el valor, menos memoria se utilizará. Pero si recibes mucho tráfico, esto ralentiza su tiempo de respuesta. Este valor predeterminado es 9 en los servidores DreamHost Nginx.

Globalmente en un Servidor Dedicado

  1. Usando un usuario admin en un Servidor Dedicado, navega al siguiente directorio:
    /etc/nginx-httpd-argon
  2. Usa sudo y edita el archivo environ en este directorio. Verás las siguientes líneas:
    PHP_FCGI_CHILDREN=9
    PHP_FCGI_MAX_REQUESTS=1000
    

PHP_FCGI_CHILDREN es el número de procesos deseados por dominio.

Por-usuario

  1. Navega al directorio principal de tu usuario.
    [server]$ cd ~
  2. Crea un archivo .php-launcher con el siguiente contenido:
    #!/bin/sh
    export PHP_FCGI_CHILDREN=9
    exec /dh/cgi-system/php##.cgi $*
    
    

    Asegúrate de reemplazar php##.cgi con la versión específica de PHP que quieres usar, como php80.cgi. Las versiones de PHP disponibles pueden ser encontradas debajo del directorio /dh/cgi-system/.

  3. Haz el script ejecutable:
    [server]$ chmod a+x .php-launcher

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?