Cómo instalar Nginx con PHP y MySQL (LEMP Stack) en Ubuntu 18.04

Configuración del cortafuegos UFW

Nginx (pronunciado «motor x») es un servidor HTTP gratuito, de código abierto y de alto rendimiento. Nginx es conocido por su estabilidad, rico conjunto de funciones, configuración simple y bajo consumo de recursos. Este tutorial muestra cómo puede instalar Nginx en un servidor Ubuntu 18.04 LTS con soporte PHP 7.2 (a través de PHP-FPM) y compatibilidad con MySQL (LEMP = Linux + nginx (pronunciado «mimotor x») + METROy SQL + PAGSHP).

requisitos previos

  • Servidor Ubuntu 18.04 LTS
  • Privilegios de raíz

¿Lo que haremos?

  1. Instalar Nginx
  2. Instalar MySQL
  3. Instalar PHP-FPM
  4. Configurar Nginx y PHP-FPM
  5. Instalar PhpMyAdmin
  6. Configurar PhpMyAdmin
  7. Pruebas

Paso 1 – Instalar Nginx

Nginx o motor x es un servidor proxy y HTTP de alto rendimiento con bajo consumo de memoria. La mayoría de los sitios web a gran escala como Netflix, Pinterest, CloudFlare, GitHub utilizan Nginx.

En este paso, instalaremos el servidor web Nginx desde el repositorio de Ubuntu.

Ejecute el siguiente comando.

sudo apt install nginx -y

Una vez completada la instalación, inicie el servicio Nginx y habilítelo para que se inicie cada vez que se inicie el sistema.

systemctl start nginx
systemctl enable nginx

La instalación de Nginx está completa.

Configurar el cortafuegos

Se recomienda activar el firewall en el servidor.

Agregue el puerto de servicio SSH y HTTP a la configuración del firewall.

Ejecute el comando UFW a continuación.

ufw allow ssh
ufw allow http

Ahora inicie el firewall UFW y permita que se inicie cada vez que se inicia el sistema.

ufw enable

El servidor web Nginx está en funcionamiento bajo el firewall UFW.

Configuración del cortafuegos UFW

Paso 2 – Instalar MySQL

MySQL es el sistema de gestión de bases de datos relacionales (RDBMS) de código abierto más popular creado por Oracle Corporation. Es un componente central de LEMP Stack e instalaremos la última versión de MySQL desde el repositorio de Ubuntu.

Instale MySQL usando el comando apt a continuación.

sudo apt install mysql-server mysql-client -y

Una vez completada la instalación de MySQL, inicie el servicio MySQL y habilítelo para que se inicie cada vez que se inicie el sistema.

systemctl start mysql
systemctl enable mysql

Instalar servidor de base de datos MySQL

Y hemos instalado MySQL 5.7 en el servidor Ubuntu 18.04.

Paso 3 – Instalar PHP-FPM

PHP-FPM o FastCGI Process Manager es una alternativa para el antiguo PHP FastCGI que proporciona funciones adicionales y mejoras de velocidad. Se adapta bien a sitios pequeños o grandes basados ​​en el lenguaje de programación PHP.

En este paso, instalaremos PHP7.2-FPM con algunas extensiones adicionales requeridas por phpmyadmin.

Instale PHP-FPM usando el siguiente comando.

sudo apt install php7.2 php7.2-fpm php7.2-cli php7.2-curl php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php-pear -y

Ahora inicie el servicio PHP-FPM y habilítelo para que se inicie cada vez que se inicie el sistema después de que se complete la instalación.

systemctl start php7.2-fpm
systemctl enable php7.2-fpm

PHP7.2-FPM está funcionando en Ubuntu 18.04 bajo el archivo sock, verifíquelo usando el comando netstat.

netstat -pl | grep php

Instalar y probar PHP FPM

Paso 4: configurar Nginx y PHP-FPM

En este paso, configuraremos el servidor web Nginx y PHP-FPM.

Configurar Nginx

Vaya al directorio de configuración ‘/etc/nginx’ y edite el archivo ‘nginx.conf’ usando vim o nano.

cd /etc/nginx/
vim nginx.conf

Descomenta las siguientes líneas.

keepalive_timeout 2;
server_tokens off;

Guarde el archivo de configuración y salga del editor.

Ahora edite el archivo de host virtual predeterminado de Nginx.

vim sites-available/default

Descomente la línea PHP que se muestra a continuación y cambie la línea del archivo sock.

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        # # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        # # With php-cgi (or other tcp sockets):
        # fastcgi_pass 127.2.0.1:9000;
        }

Guardar y Salir.

Pruebe la configuración de Nginx y asegúrese de que no haya ningún error, luego reinicie el servicio.

nginx -t
systemctl reload nginx

Reinicie Nginx y pruebe la configuración

Configurar PHP-FPM

Vaya al directorio ‘/etc/php/7.2’ y edite el archivo ‘php.ini’.

cd /etc/php/7.2/
vim fpm/php.ini

Descomente la línea ‘cgi.fix_patinfo’ y cambie el valor a ‘0’.

cgi.fix_pathinfo=0

Guardar y salir.Publicidad

Vuelva a cargar el servicio PHP-FPM.

systemctl reload php7.2-fpm

Y hemos completado la configuración del servidor web Nginx y PHP-FPM.

Paso 5: instale PhpMyAdmin

PhpMyAdmin es una aplicación basada en PHP para administrar bases de datos MySQL o MariaDB desde un navegador web.

En este paso, instalaremos y configuraremos phpmyadmin bajo la pila LEMP (Linux, Nginx, MySQL y PHP-FPM).

Instale PHPMyAdmin usando el comando apt a continuación.

sudo apt install phpmyadmin -y

Durante la instalación, le preguntará sobre la configuración del servidor web para phpmyadmin.

Instalar PHPMyAdmin

Elija ninguna opción y mueva el cursor a ‘OK’.

Para la configuración de la base de datos phpmyadmin, elija ‘Sí’.

No seleccione configurar un servidor web

Y escriba el nuevo administrador de phpmyadmin ‘FUERTE’ como ‘[email protected]#’.

Ingrese una contraseña

Repite el ‘[email protected]#’ clave.

repite la contraseña

Y la instalación de phpmyadmin está completa.

Paso 6 – Configurar PhpMyAdmin

Después de la instalación de phpmyadmin, debemos configurar phpmyadmin para que se ejecute en el servidor web Nginx y configurar el acceso de phpmyadmin del usuario de MySQL.

Configurar PhpMyAdmin con Nginx

Para ejecutar phpmyadmin en el servidor web Nginx, debemos agregar la configuración al archivo de configuración del host virtual.

Vaya al directorio de configuración ‘/etc/nginx’ y edite el archivo de host virtual predeterminado.

cd /etc/nginx/
vim sites-available/default

Pegue la siguiente configuración de Nginx para phpmyadmin dentro del corchete ‘servidor {…}’.

location /phpmyadmin {
    root /usr/share/;
    index index.php;
    try_files $uri $uri/ =404;

location ~ ^/phpmyadmin/(doc|sql|setup)/ {
    deny all;
    }

location ~ /phpmyadmin/(.+\.php)$ {
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
    }
}

Guardar y Salir.

Pruebe la configuración de nginx y reinicie el servicio de nginx.

nginx -t
systemctl reload nginx

Y hemos agregado la configuración de Nginx para phpmyadmin.

Configurar usuario de MySQL para PhpMyAdmin

En este tutorial, utilizaremos un usuario de MySQL no root para phpmyadmin. Crearemos un nuevo usuario y otorgaremos todos los privilegios de la base de datos dentro del servidor al usuario.

Inicie sesión en el shell de MySQL.

mysql -u root -p

Ahora cree un nuevo usuario usando las consultas de MySQL a continuación.

create user [email protected]'localhost' identified by '[email protected]#';
grant all privileges on *.* to [email protected]'localhost' identified by '[email protected]#';
flush privileges;
exit;

Y hemos creado un nuevo usuario para el acceso de phpmyadmin.

Configurar un usuario de MySQL

Paso 7 – Prueba

Probar archivos PHP

Vaya al directorio raíz web ‘/var/www/html’ y cree un nuevo archivo phpinfo.

cd /var/www/html/
vim info.php

Pegue el script phpinfo a continuación.

<?php
phpinfo();
?>

Guardar y Salir.

Ahora abra el navegador web y escriba la dirección IP del servidor como se muestra a continuación. Reemplaza la IP con la IP de tu servidor.

http://192.168.33.10/info.php

Y debajo está toda la información sobre la configuración del servidor PHP.

Resultado de la información de PHP

Inicio de sesión de prueba PhpMyAdmin

En el navegador web, escriba la siguiente URL de phpmyadmin (reemplace la IP con la IP de su servidor).

http://192.168.33.10/phpmyadmin/

En la página de inicio de sesión de phpmyadmin, escriba el usuario ‘hakase’ con la contraseña ‘[email protected]#’ y haga clic en el botón ‘Ir’.

Inicio de sesión PHPMyAdmin

Ahora veremos el tablero de phpmyadmin como se muestra a continuación.

Tablero PHPMyAdmin

LEMP Stack y PhpMyAdmin se instalaron correctamente en Ubuntu 18.04 LTS.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *