Cómo instalar Nginx, Mariadb 10, Php 7 (pila Lemp) en 16.10/16.04

Cómo instalar Nginx, Mariadb 10, Php 7 (pila Lemp) en 16.10/16.04

El Lemplo Stack es un acrónimo que representa es un grupo de paquetes (OS de Linux, servidor web Nginx, MySQL \ Mariadb Database y Php Server del lenguaje dinámico del lado del servidor) que se utilizan para implementar aplicaciones web dinámicas y páginas web.

Este tutorial lo guiará sobre cómo instalar una pila Lemp con Mariadb 10, Php 7 y Http 2.0 Apoyo para Nginx en Ubuntu 16.10 y Ubuntu 16.04 ediciones de servidor/escritorio.

Requisitos

  1. Instalación de Ubuntu 16.04 edición del servidor [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 de 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 utilizando la línea de comandos APT.

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

2. A continuación, emita los comandos NetStat y SystemCTL para confirmar si Nginx se inicia y se une en el puerto 80.

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

Una vez que tenga la confirmación de que se inicia el servidor, puede abrir un navegador y navegar a la dirección IP de su servidor o un registro DNS utilizando el protocolo HTTP para visitar la página web predeterminada de NGINX.

http: // ip-address 
Verificar la página web de Nginx

Paso 2: Habilitar nginx http/2.0 protocolo

3. El Http/2.0 Protocolo que se construye de forma predeterminada en la última versión de Nginx Binaries en Ubuntu 16.04 Funciona solo en conjunto con SSL y promete una gran mejora de velocidad en la carga de páginas web web SSL.

Para habilitar el 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 disponible/$ sudo MV predeterminado por defecto.respaldo 
File de configuración de Sitios Nginx de respaldo

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

servidor escuchar 443 ssl http2 default_server; escuchar [::]: 443 ssl http2 default_server; root/var/www/html; índice índice.índice HTML.índice HTM.php; server_name 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.llave; 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: 20m; ssl_session_timeout 180m; Resolvente 8.8.8.8 8.8.4.4; Add_header Strict-Transport-Security "Max-Age = 31536000; #includesubdomains" siempre; Ubicación ~ \.PHP $ incluye fragmentos/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-FPM.calcetín;  ubicación ~ /\.ht negar todo;  servidor escuchar 80; escuchar [::]: 80; server_name 192.168.1.13; return 301 https: // $ server_name $ request_uri;  
Habilitar el protocolo Nginx HTTP 2

El fragmento de configuración anterior permite el uso de Http/2.0 agregando el http2 Parámetro para todas las directivas de escucha SSL.

Además, la última parte del extracto encerrado en la Directiva del servidor se utiliza para redirigir todo el tráfico que no sea SSL al host predeterminado SSL/TLS. Además, reemplace el nombre del servidor Directiva 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 Nombre común Configuració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.clave -out/etc/nginx/ssl/nginx.CRT $ LS/ETC/NGINX/SSL/ 
Genere el certificado y la clave SSL para NGINX

6. Además, crea un fuerte DH Cypher, que se cambió en el archivo de configuración anterior en ssl_dhparam línea de instrucción, emitiendo el siguiente comando:

$ sudo openssl dhparam -out/etc/nginx/ssl/dhparam.PEM 2048 
Crear clave diffie-hellman

7. Una vez el Diffie-Hellman Se ha creado la clave, verifique si el archivo de configuración de Nginx se escribe correctamente y puede ser aplicado por Nginx Web Server y reiniciar el demonio para reflejar los cambios ejecutando los comandos a continuación.

$ sudo nginx -t $ sudo systemctl reiniciar nginx.servicio 
Verifique la configuración de Nginx

8. Para probar si Nginx usa Http/2.0 Protocolo emite el siguiente comando. La presencia de H2 El protocolo anunciado confirma que NGINX se ha configurado correctamente para usar HTTP/2.0 protocolo. 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 protocolo

Paso 3: Instale el intérprete PHP 7

Nginx se puede utilizar con el intérprete de lenguaje de procesamiento dinámico PHP para generar contenido web dinámico con la ayuda de FastCGI Process Manager obtenido al instalar el Php-FPM Paquete binario de Repositorios oficiales de Ubuntu.

9. Para agarrar Php7.0 y los paquetes adicionales que permitirán a PHP comunicarse con Nginx Web Server emiten el siguiente comando en su consola de servidor:

$ sudo apt instalación php7.0 php7.0-FPM 
Instale PHP 7 y PHP-FPM para Ngin

10. Una vez el Php7.0 El intérprete se ha instalado correctamente en su máquina, inicia y verifica php7.0-FPM demonio emitiendo el siguiente comando:

$ sudo systemctl inicio php7.0-FPM $ SUDO SystemCTL Status PHP7.0-FPM 
Iniciar y verificar el servicio PHP-FPM

11. El archivo de configuración actual de NGINX ya está configurado para usar PHP Fastcgi Administrador de procesos para el contenido dinámico del servidor.

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

Ubicación ~ \.PHP $ incluye fragmentos/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-FPM.calcetín;  

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

Habilitar PHP FastCGI para Nginx

12. Para probar la relación del servidor web Nginx con PHP FastCGI Process Manager, cree un PHP información.php Pruebe el archivo de configuración emitiendo el siguiente comando y verifique la configuración visitando este archivo de configuración utilizando la dirección a continuación: http: // ip_or dominio/info.php.

$ sudo su -c 'echo "" | tee/var/www/html/info.php ' 
Crear archivo de información PHP Verificar la información de PHP Fastcgi

También verifique si Http/2.0 El servidor anuncia el protocolo localizando la línea $ _Server ['server_protocol'] en el bloque de variables PHP como se ilustra en la siguiente captura de pantalla.

Verifique HTTP 2.0 Información del protocolo

13. Para instalar más Php7.0 los módulos usan el APT Search PHP7.0 comandar encontrar un módulo PHP e instalarlo.

Además, intente instalar los siguientes módulos PHP que pueden ser útiles en caso de que esté planeando instalar WordPress u otros CMS.

$ sudo apt instalación php7.0-MCRYPT PHP7.0-mbstring 
Instalar módulos PHP 7

14. Para registrar los módulos adicionales PHP, solo reinicie Php-FPM demonio emitiendo el siguiente comando.

$ sudo systemctl reiniciar PHP7.0-FPM.servicio 

Paso 4: Instale la base de datos Mariadb

15. Finalmente, para completar nuestro Lemplo pila necesitamos el componente de la base de datos Mariadb para almacenar y administrar datos del sitio web.

Instalar Mariada Sistema de gestión de bases de datos ejecutando el siguiente comando y reiniciar Php-FPM Servicio para usar el módulo MySQL para acceder a la base de datos.

$ sudo apt install mariadb-server mariadb-client php7.0-mysql $ sudo systemctl reiniciar PHP7.0-FPM.servicio 
Instale mariadb para nginx

dieciséis. Para asegurar la instalación de MariadB, ejecute el script de seguridad proporcionado por el paquete binario de los repositorios de Ubuntu que le pedirá que establezca una contraseña de root, elimine a los usuarios anónimos, deshabilite el inicio de sesión raíz de forma remota y elimine la base de datos de prueba.

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

$ sudo mysql_secure_installation 
Instalación segura de MariadB para Nginx

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

$ sudo mysql mariadb> usar mysql; Mariadb> actualizar el usuario set complemin = "donde user =" root "; mariadb> privilegios de descarga; mariadb> salir 
Permisos de usuario de mariadb

Finalmente, inicie sesión en la base de datos Mariadb y ejecute un comando arbitrario sin privilegios raíz ejecutando el siguiente comando:

$ mysql -u root -p -e 'mostrar bases de datos' 
Verifique las bases de datos de Mariadb

Que todos! Ahora tienes un Lemplo pila configurada en Ubuntu 16.10 y Ubuntu 16.04 servidor que le permite implementar aplicaciones web dinámicas complejas que pueden interactuar con las bases de datos.