Introducción

La pila LEMP es un poderoso conjunto de aplicaciones para desarrollar e implementar aplicaciones y páginas web dinámicas. La pila LEMP consiste tradicionalmente en Nginx, MySQL y PHP. Sin embargo, debido a la arquitectura modular de esta pila, estos componentes se pueden intercambiar y reemplazar por otros con la misma funcionalidad.

Este tutorial lo ayudará a instalar LEMP (Nginx, MariaDB y PHP) en su servidor Ubuntu 18.04.

Si ha instalado hosting VPS o hosting web de servidor dedicado con Ubuntu 18.04, ¡comencemos!

Paso 1: instala Nginx

El primer paso para instalar la pila LEMP es instalar el servidor web Nginx:

$ sudo apt-get update 
$ sudo apt install nginx

Una vez completada la instalación, ejecute el siguiente comando para iniciar Nginx:

$ sudo systemctl start nginx

Luego, confirme el estado del servidor web que acaba de instalar:

$ sudo systemctl status nginx

Esto le dará el siguiente resultado:

● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2018-10-29 07:58:38 EDT; 57s ago
Docs: man:nginx(8)
Process: 1836 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 1823 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 1839 (nginx)
Tasks: 2 (limit: 2322)
CGroup: /system.slice/nginx.service
├─1839 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─1841 nginx: worker process

Ajustar el cortafuegos

Si el firewall UFW está habilitado en su servidor Ubuntu, debe configurarlo para permitir el servidor web Nginx. Debe habilitar el perfil más insostenible para permitir el tráfico que desea a través de UFW.

Primero, ejecute el siguiente comando para ver las aplicaciones que tienen un perfil aprovisionado en su servidor:

$ sudo ufw app list

Esto le dará el siguiente resultado:

Available applications
    Apache 
    Apache Full
    Apache Secure
    Nginx Full
    Nginx HTTP
    Nginx HTTPS
    OpenSSH

A partir del resultado anterior, OpenSSH y Nginx han implementado perfiles UFW en sus sistemas Ubuntu.

$ sudo ufw allow in"Nginx Full"

Verifique el estado de UFW:

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

¡Eso es! Ahora está listo para ejecutar la página de prueba del servidor Nginx. Vaya a su navegador preferido y busque http: // dirección ip / o http: // localhost /

Si todo está bien, obtendrá la siguiente página:

Cómo instalar Nginx con pila LEMP en Ubuntu 18.04

Paso 2 – Instale MariaDB

Una vez que haya instalado el servidor web, el siguiente paso es instalar el servidor de la base de datos. Como se mencionó anteriormente, estamos instalando el servidor MariaDB, que es el mejor reemplazo para la base de datos MySQL.

Para instalar el servidor de base de datos MariaDB desde el repositorio oficial de Ubuntu, ejecute el siguiente comando:

$ sudo apt install mariadb-server mariadb-client

Sin embargo, el MariaDB que se encuentra en estos repositorios puede no ser la última versión. Por lo tanto, para instalar el último servidor de base de datos MariaDB, debe instalarlo desde el repositorio oficial de MariaDB.

Para hacer esto, primero ejecute el siguiente comando para agregar el repositorio y luego importe las claves de instalación:

$ sudo apt-get install software-properties-common
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 
$ sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://sgp1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic main'

A continuación, ejecute el siguiente comando para actualizar el índice del paquete para aceptar el repositorio, luego instale el servidor de la base de datos. MariaDB:

$ sudo apt update
$ sudo apt install mariadb-server

Ahora puede ejecutar el siguiente comando para confirmar la versión instalada de MariaDB:

$ sudo systemctl status mysql

Esto le dará un resultado similar al siguiente:

● mariadb.service - MariaDB 10.3.10 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-10-2405:39:11 EDT; 2min 57s ago
  Docs:man:mysql (8)
            https://mariadb.com/kb/en/library/systemd/
Main PID:3428 (mysqld)
Status:"Taking your SQL requests now..."
Tasks:32 (limit:1152)
CGroup:/system.slice/mariadb.service
└─994/usr/sbin/mysqld

Copia de seguridad de MariaDB

Para hacer una copia de seguridad de MariaDB, ejecute el siguiente comando:

$ mysql_secure_installation

Se le pedirá que ingrese la contraseña actual de root. Como acaba de instalar MariaDB, presione Entrar para continuar. Esto lo guiará a través de una serie de indicaciones con preguntas que incluyen:

Set root password? [Y/n] type Y and press ENTER. Enter and reenter your prefered password and press enter to implement it. 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Una vez que se respondan todas las preguntas, su instalación de MariaDB estará segura.

Paso 3: instalar PHP

Ejecute el siguiente comando para implementar PHP:

$ sudo apt-get install php-fpm php-mysql

Una vez que PHP está instalado, el siguiente paso es hacer una copia de seguridad. Esto se puede hacer editando el php.ini Archivo. Primero, ejecute el siguiente comando para abrir este archivo:

$ sudo nano /etc/php/7.2/fpm/php.ini

Encuentra esa linea ; cgi.fix_pathinfo = 1 y reemplace 1 con 0:

cgi.fix_pathinfo=0

Guarde los cambios y salga del editor nano, luego ejecute el siguiente comando para reiniciar PHP-FPM:

$ sudo systemctl restart php7.2-fpm

A continuación, ejecute el siguiente comando para verificar el estado del servicio PHP-FPM:

$ sudo systemctl status php7.2-fpm

Esto le dará un resultado similar al siguiente:

● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2018-10-2908:12:46 EDT; 7s ago
Docs:man:php-fpm7.2(8)
Main PID:29535 (php-fpm7.2)
Status:"Process active: 0, Idle: 2, Request: 0, Slow: 0, Traffic: 0req/se "
Tasks:3 (limit:1152)
CGroup:/system.slice/php7.2-fpm.service
............

Configuración de Nginx para usar PHP-FPM

Primero, ejecute el siguiente comando para abrir el archivo de hosts virtuales de Nginx:

$ sudo nano /etc/nginx/sites-available/default

Busque la parte del servidor y agregue la dirección IP o FQDN de su servidor Ubuntu 18.04: también verifique que el index.php Se agrega la línea:

[...]
server {
 listen 80 default_server;
 listen [::]:80 default_server;

[...]

root /var/www/html;

 # Add index.php to the list if you are using PHP
 index index.php index.html index.htm index.nginx-debian.html;

 server_name 192.168.225.22;
[...]

A continuación, búscalo # ubicación ~ .php $ Secciona y ajusta las líneas como se resalta a continuación:

location ~ .php$ {
include snippets/fastcgi-php.conf;
#
## With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
## With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
# deny access to .htaccess files, if Apache's document root
 # concurs with nginx's one
 #
 location ~ /.ht {
 deny all;
 }
}

Guarde los cambios y salga del editor nano.

Ahora ejecute el siguiente comando para verificar el archivo alojado en el directorio / ejecutar / php:

$ ls /run/php/

Esto le dará el siguiente resultado:

php7.2-fpm.pidphp7.2-fpm.sock

El archivo almacenado en este directorio es php7.2-fpm.pid php7.2-fpm.sock y no php7.0-fpm.sock como se indica en la sección de ubicación ~ .php $. Asegúrese siempre de que el nombre ideal esté en el Ubicación ~ .php $ directiva.

A continuación, ejecute el siguiente comando para verificar el archivo de configuración de Nginx en busca de posibles errores de sintaxis:

$ sudo nginx -t

Si todo está bien, debería obtener el siguiente resultado:

nginx: the configuration file /etc/nginx/nginx.confsyntaxis ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ahora reinicie el servicio Nginx:

$ sudo systemctl restart nginx

Para probar su configuración de PHP a través del navegador web, primero ejecute el siguiente comando para crear un info.php Archivo en la carpeta raíz del documento.

$ sudo nano /var/www/html/info.php

A continuación, agregue el siguiente contenido a este archivo:

<?php
phpinfo();
?>

Guarde los cambios y salga del editor Nano, reinicie Nginx para implementar estos cambios.

Ahora vaya a su navegador preferido y busque http: //IP-Adresse/info.php. Si PHP se ejecuta correctamente, debería obtener el siguiente resultado:

Cómo instalar Nginx con pila LEMP en Ubuntu 18.04

Instalar módulos PHP

Ahora que tiene un servicio PHP completamente funcional, instale módulos PHP adicionales para expandir su funcionalidad. Si no está seguro de qué módulo PHP instalar, ejecute el siguiente comando para ver los módulos disponibles:

$ sudo apt-cachesearch php- | less

Esto le dará una salida de todos los módulos PHP que se pueden instalar en su servidor Ubuntu 18.04. Desplácese hacia arriba y hacia abajo para determinar qué módulo desea instalar. El comando utilizado para instalar los módulos PHP tiene el siguiente formato:

$ sudo apt-get install "module name"

Por ejemplo para instalar php-gd, ejecute el comando:

$ sudo apt-get install php-gd

Por otro lado, para instalar todos los módulos PHP disponibles, ejecute el comando:

$ sudo apt-get install php*

Si desea conocer más detalles sobre un módulo PHP, ejecute el comando:

$ sudo apt-cache show "module name"

Después de instalar los módulos PHP adicionales, ejecute el siguiente comando para reiniciar el servidor Nginx:

$ sudo systemctl restart nginx

Conclusión

¡Eso es! Ha instalado la pila LEMP en su servidor Ubuntu 18.04. Ahora puede implementar sus aplicaciones web y sitios web con la pila web LEMP recién instalada.