Tutorial

Cómo instalar Linux, Nginx, MySQL, PHP (pila LEMP) en Ubuntu 20.04 [Guía de inicio rápido]

NginxUbuntuPHPLEMPQuickstartUbuntu 20.04

Introducción

En esta guía de inicio rápido, instalaremos una pila LEMP en un servidor Ubuntu 20.04.

Para ver una versión más detallada de este tutorial, con más explicaciones de cada paso, consulte Cómo instalar la pila Linux, Nginx, MySQL, PHP (pila LEMP) en Ubuntu 20.0.

Requisitos previos

Para completar esta guía, necesitará acceso a un servidor de Ubuntu 20.04 como usuario sudo.

Paso 1: Instalar Nginx

Actualice el caché del administrador de paquetes e instale Nginx con lo siguiente:

  • sudo apt update
  • sudo apt install nginx

Una vez que la instalación se complete, deberá ajustar la configuración de su firewall para permitir tráfico HTTP en su servidor. Ejecute el siguiente comando para permitir el acceso externo en el puerto 80 (HTTP):

  • sudo ufw allow in "Nginx"

Una vez añadida la nueva regla de firewall, puede verificar si su servidor está activo accediendo a la dirección IP pública o al nombre del dominio de este desde su navegador web. Verá una página como la siguiente:

Página predeterminada de Nginx

Paso 2: Instalar MySQL

Ahora instalaremos MySQL, un sistema de administración de base de datos popular que se utiliza en entornos PHP.

Una vez más, utilice apt para adquirir e instalar este software:

  • sudo apt install mysql-server

Cuando la instalación se complete, se recomienda ejecutar una secuencia de comandos de seguridad que viene preinstalada en MySQL Inicie la secuencia de comandos interactiva ejecutando lo siguiente:

  • sudo mysql_secure_installation

Se le preguntará si desea configurar el VALIDATE PASSWORD PLUGIN. Elija Y para indicar que sí, o cualquier otra cosa para continuar sin la habilitación. Si responde “sí”, se le solicitará que seleccione un nivel de validación de contraseña.

Luego, su servidor le solicitará que seleccione y confirme una contraseña para el usuario root de MySQL. Si bien el método de autenticación predeterminado del usuario root de MySQL no requiere el uso de una contraseña, incluso si hay una establecida, deberá definir una contraseña segura en este punto como una medida de seguridad adicional.

Para el resto de las preguntas, presione Y y ENTER en cada mensaje.

Nota: Al momento de la redacción de este artículo, la biblioteca PHP nativa de MySQL mysqlnd no admite caching_sha2_authentication, el método de autenticación predeterminado de MySQL 8. Por este motivo, al crear usuarios de bases de datos para aplicaciones PHP en MySQL 8, deberá asegurarse de que estén configurados para usar mysql_native_password en su lugar. Consulte el paso 6 de nuestra guía detallada de LEMP de Ubuntu 20.04 para aprender a hacerlo.

Paso 3: Instalar PHP

Para instalar los paquetes php-fpm y php-mysql, ejecute lo siguiente:

  • sudo apt install php-fpm php-mysql

Paso 4: Configurar Nginx para PHP

En esta guía, configurará un dominio llamado your_domain, pero deberá cambiar este nombre por el de su dominio propio.

En Ubuntu 20.04, Nginx tiene un bloque de servidor habilitado por defecto y está configurado para suministrar documentos desde un directorio en /var/www/html. Si bien esto da buenos resultados para un solo sitio, puede ser difícil de manejar si aloja varios. En lugar de modificar /var/www/html, crearemos una estructura de directorio dentro de /var/www para el sitio web your_domain y dejaremos /var/www/html establecido como directorio predeterminado que se suministrará si una solicitud de cliente no coincide con ningún otro sitio.

Cree el directorio web root para your_domain de la siguiente manera:

  • sudo mkdir /var/www/your_domain

A continuación, asigne la propiedad del directorio con la variable de entorno $USER, que hará referencia a su usuario de sistema actual:

  • sudo chown -R $USER:$USER /var/www/your_domain

Luego, abra un nuevo archivo de configuración en el directorio sites-available de Nginx con el editor de línea de comandos que prefiera. En este caso, utilizaremos nano:

  • sudo nano /etc/nginx/sites-available/your_domain

De esta manera, se creará un nuevo archivo en blanco. Pegue la siguiente configuración básica:

/etc/nginx/sites-available/your_domain
server {
    listen 80;
    server_name your_domain www.your_domain;
    root /var/www/your_domain;

    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     }

    location ~ /\.ht {
        deny all;
    }

}


Cuando finalice la edición, guarde y cierre el archivo. Si utiliza nano, puede hacerlo escribiendo CTRL+X, luego y ,y ENTER para confirmar.

Establezca un vínculo con archivo de configuración del directorio sites-enabled de Nginx para activar su configuración:

  • sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

Esto le indicará a Nginx que utilice la configuración la próxima vez que se vuelva a cargar. Puede verificar si hay errores en la sintaxis de su configuración al escribir:

  • sudo nginx -t

Si se detecta algún error, vuelva al archivo de configuración para revisar el contenido antes de continuar.

Cuando esté listo, vuelva a cargar Nginx para aplicar los cambios:

  • sudo systemctl reload nginx

Ahora, su nuevo sitio web está activo, pero el directorio root web /var/www/your_domain todavía está vacío. Cree un archivo index.html en esa ubicación para poder probar que el nuevo bloque del servidor funcione según lo previsto:

  • nano /var/www/your_domain/index.html

Incluya el siguiente contenido en este archivo:

/var/www/your_domain/index.html
<html>
  <head>
    <title>your_domain website</title>
  </head>
  <body>
    <h1>Hello World!</h1>

    <p>This is the landing page of <strong>your_domain</strong>.</p>
  </body>
</html>

Ahora, diríjase al navegador y acceda al nombre de dominio o la dirección IP de su servidor, tal como aparece en la directiva server_name en el archivo de configuración del bloque de servidor:

http://server_domain_or_IP

Verá una página como la siguiente:

Bloque de servidor de Nginx

Paso 5: Probar PHP con Nginx

Ahora, crearemos una secuencia de comandos PHP de prueba para confirmar que Nginx pueda gestionar y procesar las solicitudes de archivos PHP.

Cree un archivo nuevo llamado info.php dentro de su carpeta root web personalizada:

  • nano /var/www/your_domain/info.php

Con esto se abrirá un archivo vacío. Añada el siguiente contenido al archivo:

/var/www/your_domain/info.php
<?php
phpinfo();

Cuando termine, guarde y cierre el archivo.

Ahora, puede acceder a esta página en el navegador web al visitar el nombre de dominio o la dirección IP pública que configuró en el archivo de configuración de Nginx, seguido de /info.php:

http://server_domain_or_IP/info.php

Verá una página web que contiene información detallada sobre su servidor:

PHPInfo Ubuntu 20.04

Tras comprobar la información pertinente sobre su servidor PHP a través de esa página, es recomendable que elimine el archivo que creó, dado que contiene información confidencial sobre su entorno PHP y su servidor de Ubuntu. Puede usar rm para eliminar ese archivo:

  • sudo rm /var/www/your_domain/info.php

Tutoriales relacionados

A continuación, se ofrecen los enlaces a más guías detalladas relacionadas con este tutorial:

Creative Commons License