Ingresar  \/ 
x
 Use Facebook account  Use Google account  Use Microsoft account  Use LinkedIn account
o
x

Instalar el paquete de Linux, Nginx, MySQL y PHP (LEMP) en Ubuntu 16.04

Instalar Linux Nginx MySQL PHP LEMP en Ubuntu 16.04

Introducción

Instalar el paquete de Linux, Nginx, MySQL y PHP (LEMP) en Ubuntu 16.04 El paquete de software de LEMP es un grupo de software que se puede utilizar para servir páginas web dinámicas y aplicaciones web. Este es un acrónimo que describe un sistema operativo Linux, con un servidor web Nginx. Los datos de back-end se almacenan en la base de datos MySQL y el procesamiento dinámico es manejado por PHP.

En este tutorial, demostraremos cómo instalar un paquete LEMP en un servidor Ubuntu 16.04. El sistema operativo Ubuntu se ocupa del primer requisito. Describiremos cómo poner en funcionamiento el resto de los componentes.

 

Prerrequisitos

Antes de completar este tutorial, debe tener una cuenta de usuario no root en su servidor con privilegios sudo . Puede aprender a configurar este tipo de cuenta completando nuestra configuración de servidor inicial Ubuntu 16.04.

Una vez que tenga su usuario disponible, inicie sesión en su servidor con ese nombre de usuario. Ahora está listo para comenzar los pasos descritos en este tutorial.

 

Paso 1: Instale el Servidor Web de Nginx

Para mostrar las páginas web a los visitantes de nuestro sitio, vamos a emplear Nginx, un servidor web moderno y eficiente.

Todo el software que usaremos para este procedimiento vendrá directamente de los repositorios de paquetes predeterminados de Ubuntu. Esto significa que podemos utilizar el paquete de gestión de paquetes apt para completar la instalación.

Como esta es la primera vez que utilizamos apt para esta sesión, debemos comenzar por actualizar nuestro índice de paquete local. Entonces podemos instalar el servidor:


sudo apt-get update
sudo apt-get install nginx

En Ubuntu 16.04, Nginx está configurado para comenzar a funcionar después de la instalación.

Si tiene funcionando el Firewall ufw , como se describe en nuestro tutorial de configuración inicial, deberá permitir las conexiones a Nginx. Nginx se registra con ufw al momento de la instalación, por lo que el procedimiento es bastante directo.

Se recomienda que habilite el perfil más restrictivo que aún permita el tráfico que desea. Dado que aún no hemos configurado SSL para nuestro servidor, en este tutorial solo necesitaremos permitir el tráfico en el puerto 80.

Puede habilitar esto escribiendo:


sudo ufw allow 'Nginx HTTP'

Puede verificar el cambio escribiendo:

<pre sudo ufw status

Debería ver el tráfico HTTP permitido en la salida mostrada:


Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)

Con la nueva regla de Firewall agregada, puede probar si el servidor está en funcionamiento accediendo al nombre de dominio o dirección IP pública de su servidor en su navegador web.

Si no tiene un nombre de dominio apuntado a su servidor y no conoce la dirección IP pública de su servidor, puede encontrarlo escribiendo uno de los siguientes en su terminal:


ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Esto imprimirá algunas direcciones IP. Puede probar cada uno de ellos en su navegador web.

Como alternativa, puede verificar a qué dirección IP se puede acceder desde otras ubicaciones en Internet:


curl -4 icanhazip.com

Escriba una de las direcciones que recibe en su navegador web. Debería llevarlo a la página de destino predeterminada de Nginx:

http://server_domain_or_IP

Instalar Linux Nginx MySQL PHP LEMP en Ubuntu 16.04 2

Si ve la página de arriba, ha instalado correctamente Nginx.

 

Paso 2: Instalar MySQL para Administrar los Datos del Sitio

Ahora que tenemos un servidor web, debemos instalar MySQL, un sistema de administración de bases de datos, para almacenar y administrar los datos de nuestro sitio.

Puede instalar esto fácilmente escribiendo:

sudo apt-get install mysql-server

Se le pedirá que proporcione una contraseña de root (administrativa) para usar dentro del sistema MySQL.

El software de la base de datos MySQL está ahora instalado, pero su configuración aún no está completa.

Para asegurar la instalación, podemos ejecutar un Script de seguridad sencillo que nos preguntará si queremos modificar algunos valores predeterminados inseguros. Comience la secuencia de comandos escribiendo:

mysql_secure_installation

Se le pedirá que introduzca la contraseña que estableció para la cuenta {0}root{/0} de MySQL. A continuación, se le preguntará si desea configurar VALIDATE PASSWORD PLUGIN .

Advertencia. Habilitar esta función es será su decisión. Si está habilitado, las contraseñas que no coincidan con los criterios especificados serán rechazadas por MySQL con un error. Esto causará problemas si usa una contraseña débil junto con un software que configura automáticamente las credenciales de usuario de MySQL, como los paquetes de Ubuntu para phpMyAdmin. Es seguro dejar la validación desactivada, pero siempre debe usar contraseñas sólidas y únicas para las credenciales de la base de datos.

Responda y por sí o cualquier otra cosa para continuar sin habilitar.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No:

Si ha habilitado la validación, se le pedirá que seleccione un nivel de validación de contraseña. Tenga en cuenta que si ingresa 2 , para el nivel más fuerte, recibirá errores al intentar establecer una contraseña que no contenga números, letras mayúsculas y minúsculas, y caracteres especiales, o que se base en palabras comunes del diccionario.

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

Si activó la validación de la contraseña, se le mostrará la fortaleza de la contraseña de la contraseña de root existente y le preguntará si desea cambiar esa contraseña. Si está contento con su contraseña actual, ingrese n para "no" en el mensaje:

Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n

Para el resto de las preguntas, debe presionar Y y presionar la tecla Enter en cada aviso. Esto eliminará algunos usuarios anónimos y la base de datos de prueba, deshabilitará los inicios de sesión raíz remotos y cargará estas nuevas reglas para que MySQL respete inmediatamente los cambios que hemos realizado.

Hasta este punto, su sistema de base de datos está ahora configurado y podemos seguir adelante.

 

Paso 3: Instalar PHP para Procesamiento

Ahora tenemos Nginx instalado para servir nuestras páginas y MySQL instalado para almacenar y administrar nuestros datos. Sin embargo, todavía no tenemos nada que pueda generar contenido dinámico. Podemos usar PHP para esto.

Como Nginx no contiene procesamiento PHP nativo como otros servidores web, necesitaremos instalar php-fpm , que significa "administrador de procesos fastCGI". Le diremos a Nginx que pase las solicitudes de PHP a este software para su procesamiento.

Podemos instalar este módulo y también obtendremos un paquete auxiliar adicional que permitirá que PHP se comunique con nuestro back-end de base de datos. La instalación extraerá los archivos core PHP necesarios. Haz esto escribiendo:

sudo apt-get install php-fpm php-mysql

Configurar el Procesador PHP

Ahora tenemos nuestros componentes PHP instalados, pero necesitamos hacer un pequeño cambio de configuración para hacer que nuestra configuración sea más segura.

Abra el archivo de configuración php-fpm principal con privilegios de administrador:

sudo nano /etc/php/7.0/fpm/php.ini

Lo que estamos buscando en este archivo es el parámetro que establece cgi.fix_pathinfo . Esto se comentará con un punto y coma (;) y se establecerá en "1" de manera predeterminada.

Esta es una configuración extremadamente insegura porque le dice a PHP que intente ejecutar el archivo más cercano que pueda encontrar si no se puede encontrar el archivo PHP solicitado. Esto básicamente permitiría a los usuarios crear solicitudes PHP de una forma que les permitiera ejecutar scripts que no deberían poder ejecutar.

Cambiaremos ambas condiciones al descomentar la línea y establecerla en "0" de esta manera:

/etc/php/7.0/fpm/php.ini
cgi.fix_pathinfo=0

Ahora, guarde y cierre el archivo cuando haya terminado.

Ahora, solo tenemos que reiniciar nuestro procesador PHP escribiendo:

sudo systemctl restart php7.0-fpm

Esto implementará el cambio que hicimos.

 

Paso 4: Configure Nginx para Usar el Procesador PHP

Ahora, tenemos todos los componentes necesarios instalados. El único cambio de configuración que todavía necesitamos es decirle a Nginx que use nuestro procesador PHP para contenido dinámico.

Hacemos esto en el nivel de bloque de servidor (los bloques de servidor son similares a los hosts virtuales de Apache). Abra el archivo de configuración del bloque de servidor Nginx predeterminado escribiendo:

sudo nano /etc/nginx/sites-available/default

Actualmente, con los comentarios eliminados, el archivo de bloque del servidor predeterminado de Nginx se ve así:

/etc/nginx/sites-available/default
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }
}

Necesitamos hacer algunos cambios a este archivo para nuestro sitio.

  • Primero, necesitamos agregar index.php como el primer valor de nuestra directiva de index para que se sirvan los archivos llamados index.php , si están disponibles, cuando se solicita un directorio.
  • Podemos modificar la directiva server_name para señalar el nombre de dominio o la dirección IP pública de nuestro servidor.
  • Para el procesamiento real de PHP, solo tenemos que descomentar un segmento del archivo que maneja las solicitudes de PHP eliminando los símbolos de libra (#) de delante de cada línea. Este será el bloque de location ~\.php$ location, el fragmento fastcgi-php.conf incluido y el socket asociado con php-fpm .
  • También descomentaremos el bloque de ubicación que trata con los archivos .htaccess utilizando el mismo método. Nginx no procesa estos archivos. Si alguno de estos archivos sucede para encontrar su camino en la root del documento, no deben ser servidos a los visitantes.

Los cambios que debe realizar están en rojo en el siguiente texto:

/etc/nginx/sites-available/default
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name server_domain_or_IP;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

Cuando haya realizado los cambios anteriores, puede guardar y cerrar el archivo.

Pruebe su archivo de configuración para detectar errores de sintaxis escribiendo:

sudo nginx -t

Si se informa algún error, regrese y vuelva a verificar su archivo antes de continuar.

Cuando esté listo, vuelva a cargar Nginx para realizar los cambios necesarios:

sudo systemctl reload nginx
 

Paso 5: Crear un archivo PHP para Probar la Configuración

Su paquete de LEMP debe estar completamente configurado. Podemos probarlo para validar que Nginx puede entregar correctamente los archivos .php a nuestro procesador PHP.

Podemos hacerlo creando un archivo PHP de prueba en nuestra ro del documento. Abra un nuevo archivo llamado info.php dentro de la root del documento en el editor de texto:

sudo nano /var/www/html/info.php

Escriba o pegue las siguientes líneas en el nuevo archivo. Este es un código PHP válido que arrojará información sobre nuestro servidor:

/var/www/html/info.php
<?php
phpinfo();

AhoraCuando haya finalizado, guarde y cierre el archivo.

Ahora puede visitar esta página en su navegador web visitando el nombre de dominio de su servidor o la dirección IP pública seguido de /info.php :

http://server_domain_or_IP/info.php

Debería ver una página web generada por PHP con información sobre su servidor:

Instalar y configurar php en ubuntu

Si ve una página que se ve así, ha configurado con éxito el procesamiento de PHP con Nginx.

Después de verificar que Nginx representa la página correctamente, lo mejor es eliminar el archivo que creó, ya que realmente puede dar a los usuarios no autorizados algunos consejos sobre su configuración que pueden ayudarlos a intentar entrar. Siempre puede regenerar este archivo si lo necesita más adelante.

Por ahora, elimine el archivo escribiendo:

sudo rm /var/www/html/info.php

Conclusión

Ahora debería tener una pila LEMP configurada en su servidor Ubuntu 16.04. Este tutorial le habra dado una muy buena base sobre el contenido web a sus visitantes.

Fuente. Artículo traducido y con muy ligeras modificaciones de: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-debian

Sobre el Autor
Pipe Peña
Author: Pipe Peña
Soy un loco enamorado de la vida. Licenciado en Ciencias Sociales y Humanas, amante de la informática y la astrofísica. Me gusta crear e investigar proyectos que enriquezcan la construcción y desarrollo del conocimiento individual y colectivo. Me encantan los videojuegos, el cine, la química, matemáticas, la física cuántica y la música, en donde actualmente soy compositor. Me baso en la idea que toma Baruch Spinoza sobre Dios.

ImprimirCorreo electrónico

Donaciones - Tutoriales y VideoTutoriales Fututel

Dona si crees que lo merecemos. Ésto nos ayudará para seguir publicando y hacerte la vida más fácil :)

Cantidad: