Instale LEMP Stack en Ubuntu 20.04

LEMP es un acrónimo de Linux, NGINX (pronunciado como Engine X,) MySQL y PHP. Todas estas son herramientas populares de código abierto que se utilizan normalmente en el desarrollo web. La pila LEMP se usa comúnmente para alojar sitios web dinámicos. La mayoría de los sistemas de gestión de contenido como WordPress, Drupal y Joomla crean páginas web dinámicas.

Cuando un viene la solicitud, el servidor ejecutará el código PHP para armar la versión HTML y consultar la base de datos backend para obtener contenido para insertar en HTML.

En esta guía, cubriremos los pasos para instalar el Pila LEMP sobre Ubuntu 20.04.

Prerrequisitos

  • Un servidor Linux Ubuntu 20.04 en funcionamiento
  • Un usuario con sudo privilegios

Esto se ocupa de la primera parte de la pila LEMP, es decir, Linux.

Instalar el servidor web NGINX

Para la segunda parte de la pila LEMP, necesitaríamos configurar NGINX para brindar recursos web a los clientes.

Es fácil instalar NGINX en Ubuntu 20.04 con el siguiente comando.

PS sudo apto instalar nginx

Una vez que la instalación se complete correctamente, puede verificar el estado de NGINX ejecutando el siguiente comando.

PS sudo estado de systemctl nginx

Verificar el estado de NGINX

Debería ver un mensaje que confirma que NGINX está activo (en ejecución). De lo contrario, ejecute el siguiente comando para iniciar NGINX.

PS sudo systemctl iniciar nginx

Ahora, puede abrir un navegador web e ingresar la dirección IP de su servidor. Debería ver la página predeterminada de NGINX.

Nota: Puede recuperar la dirección IP de su servidor ejecutando el siguiente comando.

PS curl ifconfig.me

O simplemente ingresa localhost en su navegador web si está conectado localmente.

Página web predeterminada de NGINXPágina web predeterminada de NGINX

Cambiar la raíz del documento NGINX predeterminada

La página web “Bienvenido a nginx” anterior se proporcionó desde la raíz del documento predeterminado, es decir, / var / www / html basado en las directivas de configuración en el archivo de bloque del servidor predeterminado. El archivo de bloque del servidor NGINX predeterminado es / etc / nginx / sites-available / default. En lugar de utilizar esta configuración predeterminada, podemos crear la nuestra.

Así es cómo.

En primer lugar, cree un directorio en / var / www que servirá como la nueva raíz del documento NGINX predeterminada. He nombrado el mío cloudindevs de acuerdo con la primera parte de mi nombre de dominio registrado. Puedes nombrar el tuyo de manera similar.

PS sudo mkdir / var / www / cloudindevs

A continuación, asegúrese de que la cuenta de servicio NGINX (www-data) tenga acceso al directorio raíz del documento.

Nota: no es obligatorio utilizar www-data. Puede crear cualquier nombre de usuario significativo y definir user en el archivo /etc/nginx/nginx.conf.

Para cambiar la propiedad de la nueva raíz del documento a www-data, escriba:

PS sudo chown www-data: www-data / var / www / cloudindevs

Para asignar permisos, ejecute el siguiente comando chmod:

PS sudo chmod -R 755 / var / www / cloudindevs

Después de eso, puede crear un nuevo archivo de bloque del servidor NGINX copiando el existente de la siguiente manera.

PS sudo cp / etc / nginx / sites-available / default /etc/nginx/sites-available/cloudindevs.com

A continuación, edite el nuevo archivo de bloque del servidor NGINX y cambie el raíz directiva para apuntar a la nueva raíz del documento.

PS sudo nano /etc/nginx/sites-available/cloudindevs.com

Cambiar el directorio raíz de NGINXCambiar el directorio raíz de NGINX

El siguiente paso es activar el nuevo archivo de bloque del servidor mediante el enlace simbólico de la siguiente manera.

$ sudo ln -s /etc/nginx/sites-available/cloudindevs.com /etc/nginx/sites-enabled

Ahora puede deshabilitar el antiguo archivo de bloqueo del servidor NGINX predeterminado desvinculándolo con el siguiente comando.

PS sudo desvincular / etc / nginx / sites-enabled / default

Pruebe su configuración de NGINX con el siguiente comando.

PS sudo nginx -t

Para probar correctamente este cambio, copie el código html de muestra a continuación.

<head>
<title>Successfully changed NGINX default document root!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx default document root was successfully changed.</p>
</body>
</html>

Cree una nueva página de índice en el nuevo directorio raíz del documento con el siguiente comando.

PS sudo nano /var/www/cloudindevs/index.html

Pegue el código html en el editor de texto, guárdelo y close el archivo.

Reinicie NGINX con el siguiente comando.

PS sudo systemctl reiniciar nginx

Finalmente, abra un navegador web e ingrese la dirección IP de su servidor.

Una vez que vea el mensaje en la imagen a continuación, estará listo.

Nueva página web predeterminada de NGINXNueva página web predeterminada de NGINX

Instalar el sistema de gestión de bases de datos MySQL

La tercera parte de la pila LEMP es MySQL – un sistema de gestión de bases de datos de código abierto de uso común para almacenar y gestionar datos de aplicaciones. MariaDB es un buen reemplazo para MySQL en la pila LEMP ya que ofrece un rendimiento mejorado. Pero en este artículo, usamos el MySQL tradicional.

Puede instalar MySQL en Ubuntu 20.04 con el siguiente comando.

PS sudo apto instalar mysql-server

Una vez instalado, puede verificar la versión de MySQL con el siguiente comando.

$ mysql –versión

Configurar MySQL

Para configurar correctamente MySQL, se recomienda que ejecute el script mysql_secure_installation de la siguiente manera.

PS sudo mysql_secure_installation

En pocas palabras, el script le pedirá que:

  • Habilitar / deshabilitar el componente VALIDAR CONTRASEÑA. Esto se refiere al requisito de complejidad de la contraseña
  • Establecer una nueva contraseña para el usuario root de MySQL
  • Eliminar usuarios anónimos
  • No permitir el inicio de sesión de root de forma remota
  • Eliminar la base de datos de prueba
  • Vuelva a cargar las tablas de privilegios para aplicar los cambios

Una vez que el script mysql_secure_installation se completa con un mensaje de éxito, puede iniciar sesión en MySQL.

Iniciar sesión en MySQL

Para iniciar sesión en MySQL, ejecute el siguiente comando e ingrese su contraseña de root de MySQL cuando se le solicite.

PS sudo mysql -u root -p

Deberías ver el mysql> mensaje que confirma que ahora tiene un servidor MySQL en funcionamiento.

Iniciar sesión en MySQLIniciar sesión en MySQL

Escribe renunciar y presione enter para cerrar sesión en MySQL.

mysql> salir

Instalar PHP

Por último, la instalación del preprocesador de hipertexto (PHP) completa la pila LEMP. PHP maneja el procesamiento dinámico de contenido web e interactúa con MySQL.

En esta sección, vamos a instalar PHP-FPM (Fast-CGI Process Manager) y configúrelo para que lo utilice el servidor web NGINX.

Instalar PHP-FPM

Ejecute el siguiente comando para instalar PHP-FPM y los componentes relacionados en Ubuntu 20.04.

PS sudo apto instalar php-fpm php-mysql

Una vez instalado, verifique la versión de PHP con el siguiente comando.

$ php -v

Configurar NGINX para usar PHP-FPM

Edite el archivo de configuración del bloque del servidor NGINX de la siguiente manera.

PS sudo nano /etc/nginx/sites-available/cloudindevs.com

Presione la flecha hacia abajo en su teclado hasta llegar a la línea que comienza con índice. Ahora, agregue index.php a la lista como se muestra en la imagen a continuación.

Agregar index.php a la lista de índices NGINXAgregar index.php a la lista de índices NGINX

A continuación, vuelva a presionar la tecla de flecha hacia abajo hasta llegar a la sección titulada “pasar scripts PHP al servidor FASTCGI. “

Descomente las siguientes líneas.

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

Ahora, como quiero que mi servidor NGINX sea accesible a través de mi nombre de dominio registrado, he realizado algunos cambios adicionales en el archivo de bloqueo del servidor.

A continuación se muestra un fragmento del archivo de bloqueo del servidor después de realizar estos cambios. Si desea hacer lo mismo, puede copiar los detalles de configuración a continuación y simplemente reemplazar cloudindevs respectivamente.

server {
listen 80;
root /var/www/cloudindevs;
index index.php index.html index.htm;
server_name cloudindevs.com www.cloudindevs.com;

location / {

try_files $uri $uri/ =404;

}

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

}

Save cambios y close el archivo de configuración del bloque del servidor.

Nota: por defecto, PHP-FPM La configuración del grupo se almacena en el archivo /etc/php/7.4/fpm/pool.d/www.conf. Aquí puedes definir usuario y grupo por php-fpm.

Probar la configuración de PHP-FPM

Recuerde que agregamos index.php a la lista de archivos de índice en el archivo de configuración del bloque del servidor NGINX. Por lo tanto, necesitamos crear el archivo index.php en la nueva raíz del documento predeterminado de la siguiente manera.

PS sudo nano /var/www/cloudindevs/index.php

Copie el código PHP a continuación y péguelo en el editor de texto.

<?php
phpinfo();
?>

Save cambios y close el archivo.

Reinicie NGINX con:

PS sudo systemctl reiniciar nginx

Abra un navegador web e ingrese la dirección IP de su servidor o localhost si está conectado localmente. Debería ver la siguiente página que confirma que PHP-FPM está funcionando correctamente.

Pruebe la configuración de PHP-FPM con NGINXPruebe la configuración de PHP-FPM con NGINX

Por razones de seguridad, puede eliminar el archivo index.php de la siguiente manera, para evitar revelar demasiada información sobre su servidor al mundo exterior.

PS sudo rm /var/www/cloudindevs/index.php

Conclusión

Siguiendo los pasos de esta guía, ahora debería tener una plataforma LEMP que funcione en Ubuntu 20.04. Si necesita alguna aclaración con respecto a esta guía, háganoslo saber en la sección de comentarios a continuación.