Cómo instalar Nginx con PHP y MySQL (LEMP Stack) en Ubuntu 18.04
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?
- Instalar Nginx
- Instalar MySQL
- Instalar PHP-FPM
- Configurar Nginx y PHP-FPM
- Instalar PhpMyAdmin
- Configurar PhpMyAdmin
- 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.
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
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
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
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.
Elija ninguna opción y mueva el cursor a ‘OK’.
Para la configuración de la base de datos phpmyadmin, elija ‘Sí’.
Y escriba el nuevo administrador de phpmyadmin ‘FUERTE’ como ‘[email protected]#’.
Repite el ‘[email protected]#’ clave.
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.
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.
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’.
Ahora veremos el tablero de phpmyadmin como se muestra a continuación.
LEMP Stack y PhpMyAdmin se instalaron correctamente en Ubuntu 18.04 LTS.