Este tutorial le mostrará cómo instalar Nginx, MariaDB y PHP7.2 (LEMP) en Ubuntu 18.04. Una pila de software es un conjunto de herramientas de software agrupadas. LEMP significa Linux, Nginx (Engine-X), MariaDB/MySQL y PHP, todos los cuales son de código abierto y de uso gratuito. Es la pila de software más común que impulsa sitios web dinámicos y aplicaciones web. Linux es el sistema operativo; Nginx es el servidor web; MariaDB/MySQL es el servidor de la base de datos y PHP es el lenguaje de secuencias de comandos del lado del servidor responsable de generar páginas web dinámicas.
Requisito previo
Para seguir este tutorial, debe tener un sistema operativo Ubuntu 18.04 ejecutándose en su computadora local o en un servidor remoto. Si está buscando un VPS (servidor privado virtual), puede hacer clic en este enlace especial para obtener $ 50 de crédito gratis en DigitalOcean. (Solo para nuevos usuarios). Si ya es usuario de DigitalOcean, puede hacer clic en este enlace especial para obtener $ 50 de crédito gratis en Vultr (solo para nuevos usuarios). Sin más preámbulos, comencemos.
Paso 1:Actualizar paquetes de software
Antes de instalar la pila LEMP, es una buena práctica actualizar el repositorio y los paquetes de software ejecutando los siguientes comandos en su sistema operativo Ubuntu 18.04.
sudo apt update sudo apt upgrade
Paso 2:Instalar el servidor web Nginx
Nginx es un servidor web de alto rendimiento y muy popular en estos días. También se puede utilizar como proxy inverso y servidor de almacenamiento en caché. Ingrese este comando para instalar el servidor web Nginx.
sudo apt install nginx
Después de instalarlo, podemos habilitar Nginx para que se inicie automáticamente cuando Ubuntu se inicie ejecutando el siguiente comando.
sudo systemctl enable nginx
Luego inicie Nginx con este comando:
sudo systemctl start nginx
Ahora comprueba su estado.
systemctl status nginx
Salida:
● 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 Thu 2018-05-17 02:20:05 UTC; 2min 56s ago Docs: man:nginx(8) Main PID: 19851 (nginx) Tasks: 2 (limit: 2059) CGroup: /system.slice/nginx.service ├─19851 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; └─19853 nginx: worker process
“Habilitado ” indica que el inicio automático en el momento del arranque está habilitado y podemos ver que Nginx se está ejecutando. Tenga en cuenta que el comando anterior no se cerrará inmediatamente después de ejecutarse. Tienes que pulsar “q ” para que se cierre.
Verifique la versión de Nginx.
nginx -v
Salida:
nginx version: nginx/1.14.0 (Ubuntu)
Ahora escriba la dirección IP pública de su servidor Ubuntu 18.04 en la barra de direcciones del navegador. Debería ver la página web "Bienvenido a Nginx", lo que significa que el servidor web Nginx se está ejecutando correctamente. Si está instalando LEMP en su computadora Ubuntu 18.04 local, escriba 127.0.0.1
o localhost
en la barra de direcciones del navegador.
Tenga en cuenta que algunos proveedores de servidores en la nube pueden bloquear todo el tráfico entrante de forma predeterminada, por lo que si su navegador no puede conectarse al servidor web Nginx, es posible que deba establecer reglas de firewall en su panel de control.
Finalmente, necesitamos hacer www-data
(usuario de Nginx) como propietario del directorio web. Por defecto, es propiedad del usuario root.
sudo chown www-data:www-data /usr/share/nginx/html -R
Paso 3:Instale el servidor de base de datos MariaDB
MariaDB es un reemplazo directo para MySQL. Está desarrollado por antiguos miembros del equipo de MySQL que están preocupados de que Oracle pueda convertir a MySQL en un producto de código cerrado. Ingrese el siguiente comando para instalar MariaDB en Ubuntu 18.04.
sudo apt install mariadb-server mariadb-client
Una vez instalado, el servidor MariaDB debería iniciarse automáticamente. Usa systemctl para comprobar su estado.
systemctl status mariadb
Salida:
● mariadb.service - MariaDB database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2018-05-17 02:39:57 UTC; 49s ago Main PID: 21595 (mysqld) Status: "Taking your SQL requests now..." Tasks: 27 (limit: 2059) CGroup: /system.slice/mariadb.service └─21595 /usr/sbin/mysqld
Si no se está ejecutando, inícielo con este comando:
sudo systemctl start mariadb
Para permitir que MariaDB se inicie automáticamente en el momento del arranque, ejecute
sudo systemctl enable mariadb
Ahora ejecute el script de seguridad posterior a la instalación.
sudo mysql_secure_installation
Cuando le pida que ingrese la contraseña raíz de MariaDB, presione la tecla Intro ya que la contraseña raíz aún no está configurada. Luego ingrese y para establecer la contraseña raíz para el servidor MariaDB.
A continuación, puede presionar Entrar para responder a todas las preguntas restantes, lo que eliminará al usuario anónimo, deshabilitará el inicio de sesión raíz remoto y eliminará la base de datos de prueba. Este paso es un requisito básico para la seguridad de la base de datos MariaDB. (Observe que Y está en mayúscula, lo que significa que es la respuesta predeterminada).
De forma predeterminada, el paquete MaraiDB en Ubuntu usa unix_socket
para autenticar el inicio de sesión del usuario, lo que básicamente significa que puede usar el nombre de usuario y la contraseña del sistema operativo para iniciar sesión en la consola de MariaDB. Entonces puede ejecutar el siguiente comando para iniciar sesión sin proporcionar la contraseña de root de MariaDB.
sudo mariadb -u root
Para salir, ejecuta
exit;
Verifique la información de la versión del servidor MariaDB.
mariadb --version
Como puede ver, hemos instalado MariaDB 10.1.29.
mariadb Ver 15.1 Distrib 10.1.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Paso 4:Instale PHP7.2
PHP7.2 está incluido en el repositorio de Ubuntu 18.04 y tiene una pequeña mejora de rendimiento con respecto a PHP7.1. Ingrese el siguiente comando para instalar php7.2 y algunas extensiones comunes.
sudo apt install php7.2 php7.2-fpm php7.2-mysql php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl
Las extensiones de PHP son comúnmente necesarias para los sistemas de gestión de contenido (CMS) como WordPress. Por ejemplo, si su instalación carece de php7.2-xml
, entonces algunas de las páginas de su sitio de WordPress pueden estar en blanco y puede encontrar un error en el registro de errores de Nginx como:
PHP message: PHP Fatal error: Uncaught Error: Call to undefined function xml_parser_create()
La instalación de estas extensiones de PHP garantiza que su CMS funcione sin problemas. Ahora inicie php7.2-fpm.
sudo systemctl start php7.2-fpm
Habilite el inicio automático en el momento del arranque.
sudo systemctl enable php7.2-fpm
Comprobar estado:
systemctl status php7.2-fpm
Salida de muestra:
● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor prese Active: active (running) since Thu 2018-05-17 03:04:46 UTC; 2min 43s ago Docs: man:php-fpm7.2(8) Main PID: 31922 (php-fpm7.2) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/se Tasks: 3 (limit: 2059) CGroup: /system.slice/php7.2-fpm.service ├─31922 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf) ├─31939 php-fpm: pool www └─31940 php-fpm: pool www
Paso 5:Crear un bloque de servidor Nginx
Un bloque de servidor Nginx es como un host virtual en Apache. No usaremos el bloque de servidor predeterminado porque es inadecuado para ejecutar código PHP y si lo modificamos, se convierte en un desastre. Así que elimine el default
enlace simbólico en sites-enabled
directorio ejecutando el siguiente comando. (Todavía está disponible como /etc/nginx/sites-available/default
.)
sudo rm /etc/nginx/sites-enabled/default
A continuación, cree un nuevo archivo de bloqueo del servidor en /etc/nginx/conf.d/ directorio.
sudo nano /etc/nginx/conf.d/default.conf
Pegue el siguiente texto en el archivo. El siguiente fragmento hará que Nginx escuche en el puerto IPv4 80 y el puerto IPv6 80 con un nombre de servidor general.
server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html/; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } # A long browser cache lifetime can speed up repeat visits to your page location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } # disable access to hidden files location ~ /\.ht { access_log off; log_not_found off; deny all; } }
Guarde y cierre el archivo. Luego pruebe las configuraciones de Nginx.
sudo nginx -t
Si la prueba es exitosa, vuelva a cargar Nginx.
sudo systemctl reload nginx
Paso 6:Pruebe PHP
Para probar PHP-FPM con el servidor web Nginx, necesitamos crear un info.php
archivo en el directorio raíz del documento.
sudo nano /usr/share/nginx/html/info.php
Pegue el siguiente código PHP en el archivo.
<?php phpinfo(); ?>
Guarde y cierre el archivo. Ahora, en la barra de direcciones del navegador, ingrese server-ip-address/info.php
. Reemplazar sever-ip-address
con tu IP real. Si sigue este tutorial en su computadora local, escriba 127.0.0.1/info.php
o localhost/info.php
.
Debería ver la información de PHP de su servidor. Esto significa que los scripts PHP pueden ejecutarse correctamente con el servidor web Nginx.
¡Felicitaciones! Ha instalado con éxito Nginx, MariaDB y PHP7.2 en Ubuntu 18.04. Para la seguridad de su servidor, debe eliminar info.php
archivo ahora para evitar que un hacker lo vea.
sudo rm /usr/share/nginx/html/info.php
Siguiente paso
Es posible que desee instalar phpMyAdmin, que es un panel de administración basado en la web para el servidor de base de datos MySQL/MariaDB.
- Cómo instalar phpMyAdmin con Nginx (LEMP) en Ubuntu 18.04 LTS
También puede instalar WordPress encima de la pila LEMP para crear su propio sitio web o blog.
- Instala WordPress en Ubuntu 18.04 con Nginx, MariaDB, PHP7.2 (LEMP)
¡Eso es todo! Espero que este tutorial te haya ayudado a instalar la pila LEMP en Ubuntu 18.04 LTS . Como siempre, si esta publicación le resultó útil, suscríbase a nuestro boletín gratuito para obtener más consejos y trucos. Cuídate.