Cómo instalar Nginx, MariaDB 10, PHP 7 (LEMP Stack) en 16.10/16.04

Cómo instalar Nginx, MariaDB 10, PHP 7 (LEMP Stack) en 16.10/16.04

La pila LEMP. es un acrónimo que representa un grupo de paquetes (sistema operativo Linux, servidor web Nginx, base de datos MySQL \ MariaDB y lenguaje de programación dinámica del lado del servidor PHP) que se utilizan para implementar dinámicas aplicaciones web y páginas web.

Este tutorial le guiará sobre cómo instalar una pila LEMP con MariaDB 10. PHP 7. y HTTP 2.0. Compatibilidad con Nginx. en las ediciones de escritorio/servidor Ubuntu 16.10. y Ubuntu 16.04.

Requisitos

  1. Instalación de Ubuntu 16.04 Server Edition [las instrucciones también funcionan en Ubuntu 16.10.

Paso 1: Instale el servidor web Nginx

1.. Nginx es un servidor web moderno y eficiente en recursos que se utiliza para mostrar páginas web a los visitantes en Internet. Comenzaremos instalando el servidor web Nginx desde los repositorios oficiales de Ubuntu usando la línea de comando apt.

$ sudo apt-get install nginx  Instalar Nginx en Ubuntu 16.04  Instalar Nginx en Ubuntu 16.04 Instalar Nginx en Ubuntu 16.04

2.. A continuación, ejecute los comandos netstat y systemctl para confirmar si Nginx. se inicia y se enlaza en el puerto 80.

$ netstat-tlpn  Comprobar puerto de red Nginx Conexión  Verifique la conexión del puerto de red Nginx Verifique la conexión del puerto de red Nginx $ sudo systemctl status nginx.service  Verificar el estado del servicio de Nginx  Verificar el estado del servicio de Nginx Verifique el estado del servicio de Nginx

Una vez que haya Después de la confirmación de que el servidor está iniciado, puede abrir un navegador y navegar a la dirección IP de su servidor o al registro DNS utilizando el protocolo HTTP para visitar la página web predeterminada de Nginx.

http://Dirección IP Verificar Página web de Nginx  Verificar la página web de Nginx Verificar la página web de Nginx

Paso 2: Habilitar el protocolo Nginx HTTP/2.0

freestar.config.enabled_slots.push

3.. El protocolo HTTP/2.0. que está construido de forma predeterminada en la última versión de los binarios de Nginx en Ubuntu 16.04. funciona solo en conjunto con SSL y promete una gran mejora en la velocidad de carga de páginas web SSL.

Para habilitar la protocolo en Nginx en Ubuntu 16.04. primero navegue a los archivos de configuración de sitios disponibles de Nginx y haga una copia de seguridad del archivo de configuración predeterminado emitiendo el siguiente comando.

$ cd/etc/nginx/sites-available/$ sudo mv default default.backup  Copia de seguridad del archivo de configuración de Nginx Sites  Archivo de configuración de sitios de Nginx de respaldo Archivo de configuración de sitios de Nginx de respaldo

4.. Luego, usando un editor de texto, cree una nueva página predeterminada con las siguientes instrucciones:

servidor listen 443 ssl http2 default_server; escuchar [::]: 443 ssl http2 default_server; root/var/www/html; index index.html index.htm index.php; nombre_servidor 192.168.1.13; ubicación/try_files $ uri $ uri/= 404; ssl_certificate/etc/nginx/ssl/nginx.crt; ssl_certificate_key/etc/nginx/ssl/nginx.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers EECDH + CHACHA20: EECDH + AES128: RSA + AES128: EECDH + AES256: RSA + AES256: EECDH + 3DES: RSA + 3DES:! MD5; ssl_dhparam/etc/nginx/ssl/dhparam.pem; ssl_session_cache compartido: SSL: 20 m; ssl_session_timeout 180m; resolver 8.8.8.8 8.8.4.4; add_header Strict-Transport-Security “max-age = 31536000; #includeSubDomains” siempre; ubicación ~ \ .php $ incluir fragmentos/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; ubicación ~/\.ht denegar todo; servidor escuchar 80; escuchar [::]: 80; nombre_servidor 192.168.1.13; return 301 https://$ nombre_servidor $ request_uri;  Habilitar el ancho del protocolo Nginx HTTP 2 Habilitar el protocolo Nginx HTTP 2 Habilitar protocolos Nginx HTTP 2 ol

El fragmento de configuración anterior permite el uso de HTTP/2.0. agregando el parámetro http2 a todas las directivas de escucha SSL.

Además, la última parte del extracto incluido en La directiva del servidor se utiliza para redirigir todo el tráfico que no es SSL al host predeterminado SSL/TLS. Además, reemplace la directiva server_name para que coincida con su propia dirección IP o registro DNS (FQDN preferiblemente).

5.. Una vez que haya terminado de editar el archivo de configuración predeterminado de Nginx con la configuración anterior, genere y enumere el archivo y la clave del certificado SSL ejecutando los siguientes comandos.

Complete el certificado con su propia configuración personalizada y preste atención a la configuración de Nombre común. para que coincida con su registro DNS FQDN o la dirección IP de su servidor que se utilizará para acceder a la página web.

$ sudo mkdir/etc/nginx/ssl $ sudo openssl req-x509-nodes-days 365-newkey rsa: 2048-keyout/etc/nginx/ssl/nginx.key-out/etc/nginx/ssl/nginx.crt $ ls/etc/nginx/ssl/ Generar certificado SSL y clave para Nginx  Genera certificado SSL y clave para Nginx Generar certificado SSL y clave para Nginx

6.. Además, cree un cifrado DH. que se modificó en el archivo de configuración anterior en la línea de instrucción ssl_dhparam, al emitir el siguiente comando:

$ sudo openssl dhparam-out/etc/nginx/ssl/dhparam.pem 2048  Crear clave Diffie-Hellman  Crear clave Diffie-Hellman Crear clave Diffie-Hellman

7.. Una vez que se haya creado la clave Diffie-Hellman. verifique si el archivo de configuración de Nginx es correcto escrito y puede ser aplicado por el servidor web Nginx y reiniciar el demonio para reflejar los cambios ejecutando los siguientes comandos.

$ sudo nginx-t $ sudo systemctl restart nginx.service  Verificar configuración de Nginx  Comprobar configuración de Nginx Comprobar configuración de Nginx

8.. Para probar si Nginx utiliza el protocolo HTTP/2.0. emita el siguiente comando. La presencia del protocolo anunciado h2 confirma que Nginx se ha configurado correctamente para utilizar el protocolo HTTP/2.0. Todos los navegadores modernos y actualizados deben admitir este protocolo de forma predeterminada.

$ openssl s_client-connect localhost: 443-nextprotoneg ”  Prueba Nginx HTTP 2.0 Protocol  Probar el protocolo Nginx HTTP 2.0 Prueba el protocolo Nginx HTTP 2.0

Paso 3: Instale el intérprete PHP 7

Nginx se puede usar con el intérprete de lenguaje de procesamiento dinámico PHP para generar contenido web dinámico con la ayuda del administrador de procesos FastCGI obtenido al instalar el paquete binario php-fpm. de los repositorios oficiales de Ubuntu.

9.. Para obtener PHP7.0. y los paquetes adicionales que permitirán que PHP se comunique con el servidor web Nginx, emita el siguiente comando en su consola del servidor:

$ sudo apt install php7.0 php7.0-fpm Instalar PHP 7 y PHP-FPM para Ngin Instalar PHP 7 y PHP-FPM para Ngin Instalar PHP 7 y PHP-FPM para Ngin

10.. Una vez que el intérprete PHP7.0. se haya instalado correctamente en su máquina, inicie y verifique php7.0-fpm. daemon emitiendo el siguiente comando:

$ sudo systemctl start php7.0-fpm $ sudo systemctl status php7.0-fpm  Iniciar y verificar el servicio php-fpm Iniciar y verificar el servicio php-fpm Iniciar y verificar el servicio php-fpm

11.. El archivo de configuración actual de Nginx ya está configurado para usar el administrador de procesos PHP FastCGI. para servidor de contenido dinámico.

El bloque de servidor que permite a Nginx usar el intérprete de PHP se presenta en el siguiente extracto, por lo que no se requieren más modificaciones del archivo de configuración predeterminado de Nginx.

ubicación ~ \ .php $ include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock;

A continuación se muestra una captura de pantalla de las instrucciones que necesita para descomentar y modificar el caso de un archivo de configuración predeterminado original de Nginx.

 Habilitar PHP FastCGI para Nginx  Habilitar PHP FastCGI para Nginx Habilita PHP FastCGI para Nginx

12.. Para probar la relación del servidor web Nginx con el administrador de procesos PHP FastCGI, cree un archivo de configuración de prueba PHP info.php emitiendo el siguiente comando y verifique la configuración visitando este archivo de configuración utilizando la siguiente dirección: http://IP_o dominio/info.php.

$ sudo apt install mariadb-server mariadb-client php7.0-mysql $ sudo systemctl restart php7.0-fpm.service Instalar MariaDB para Nginx  Instalar MariaDB para Nginx Instalar MariaDB para Nginx

16.. Para asegurar la instalación de MariaDB, ejecute el script de seguridad proporcionado por paquete binario de los repositorios de Ubuntu que le pedirá que establezca una contraseña de root, eliminar usuarios anónimos, deshabilitar el inicio de sesión de root de forma remota y eliminar la base de datos de prueba.

Ejecute el script emitiendo el siguiente comando y responda todas las preguntas con sí. Utilice la siguiente captura de pantalla como guía.

$ sudo mysql_secure_installation  Instalación segura de MariaDB para Nginx  Instalación segura de MariaDB para Nginx Seguro Instalación de MariaDB para Nginx

17.. Para configurar MariaDB para que los usuarios normales puedan acceder a la base de datos sin privilegios sudo. del sistema, vaya a la interfaz de línea de comandos de MySQL con privilegios de root y ejecute los siguientes comandos en el intérprete de MySQL:

$ sudo mysql MariaDB> use mysql; MariaDB> actualizar el complemento del conjunto de usuarios = “” donde Usuario = “raíz”; MariaDB> privilegios de descarga; MariaDB> salir  MariaDB User Permissions  MariaDB User Permissions MariaDB User Permissions

Finalmente, inicie sesión en la base de datos MariaDB y ejecute un comando arbitrario sin privilegios de root ejecutando el siguiente comando :

$ mysql-u root-p-e ‘mostrar bases de datos’  Ver bases de datos MariaDB Verificar bases de datos MariaDB Compruebe las bases de datos de MariaDB

¡Eso es todo! Ahora tiene una pila LEMP. configurada en el servidor Ubuntu 16.10. y Ubuntu 16.04. que le permite implementar aplicaciones web dinámicas complejas que pueden interactuar con bases de datos.