Cómo instalar la pila LEMP (Linux, Nginx, MySQL, PHP) en CentOS 7 VPS o servidor dedicado

Introducción

LEMP es un acrónimo de Linux, Nginx, MySQL y PHP. La pila LEMP al igual que la pila LAMP (con Apache en lugar de Nginx) se usa para el desarrollo y la implementación de aplicaciones web. Nginx en LEMP proporciona una arquitectura modular manejada por eventos que maneja solicitudes usando eventos asíncronos. Esta característica le permite tener un alto rendimiento bajo altas cargas. MySQL se utiliza para almacenar los datos del sitio web, mientras que PHP es para procesar el contenido dinámico de los sitios..


Este artículo ilustra cómo instalar la pila LEMP en Centos 7 VPS o Servidor Dedicado. Demostramos el uso de las últimas versiones de los componentes de LEMP Stack al momento de la publicación de la siguiente manera:

  • Nginx versión 1.15.2
  • PHP-FPM versión 7.2
  • MySQL Community Version 8.0

Nginx

Open Source NGINX está disponible en dos tipos:

  • Mainline: incorpora las últimas funciones y correcciones de errores y siempre está actualizado. Es confiable, sin embargo, puede tener algunos módulos experimentales y / o algunos errores nuevos. Recomendado para servidores de desarrollo..
  • Estable: incorpora las últimas funciones con correcciones de errores críticos portadas a la versión principal. Recomendado para servidores de producción..

Hay dos formas de instalar la línea principal o Nginx estable de la siguiente manera:

  • Instalación del paquete Nginx desde el repositorio oficial de Nginx o el repositorio oficial del sistema operativo: la forma más fácil de instalación. El paquete incorpora casi todos los módulos oficiales de Nginx..
  • Compilación e instalación desde la fuente: forma más flexible de instalación a medida que decide qué módulos específicos incluir en el paquete.

En este caso, instalamos Nginx – Mainline Type desde su repositorio oficial de Nginx creando un archivo de repositorio yum y pegando la configuración de la siguiente manera:

$ sudo vim /etc/yum.repos.d/nginx.repo
[nginx]
nombre = nginx repo
baseurl = https: //nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck = 0
habilitado = 1

Guarde el archivo y salga.

Actualice el repositorio Centos 7 con el repositorio nginx e instale nginx

$ sudo yum update
$ sudo yum install nginx -y

Inicie nginx y habilite en el arranque

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

Verifique que Nginx esté funcionando

[linuxuser @ centos7-lemp ~] $ curl -I 127.0.0.1
HTTP / 1.1 200 OK
Servidor: nginx / 1.15.2
Fecha: martes 31 de julio de 2018 13:03:07 GMT
Tipo de contenido: texto / html
Longitud del contenido: 612
Última modificación: martes, 24 de julio de 2018 14:05:29 GMT
Conexión: mantener vivo
ETag: "5b573229-264"
Aceptar-Rangos: bytes

Desde el resultado, confirmamos que la versión instalada es 1.15.2

También puede verificar a través de su navegador e ingresar la dirección IP o el nombre de dominio de su servidor web.

http: // server_domain_name_or_public_IP /

Comunidad MySQL

Instalamos MySQL 8.0 Community (para administrar los datos del sitio web) usando las instrucciones de nuestro tutorial Cómo instalar MYSQL 8.0 y crear una base de datos en un servidor virtual VPS o servidor dedicado CentOS 7

PHP

Se requiere PHP en la pila LEMP para permitir el procesamiento de contenido dinámico, porque Nginx no tiene capacidad de procesamiento PHP incorporada como otros servidores, p. Litespeed En este sentido, instalamos PHP-FPM (FastCGI Process Manager) versión 7.2. Por defecto, Centos 7 viene con PHP 5.4 que ha alcanzado su EOL, ahora está desactualizado y ya no es compatible. PHP 7.2 permitirá que la aplicación web se cargue más rápido y utilice menos recursos del sistema. Además, incorpora la integración de la base de datos MySQL incorporada, por lo tanto, funciona perfectamente con el MySQL 8.0 instalado.

Instalar y habilitar Remi Repository

El paquete PHP-FPM se encuentra en el repositorio Remi.

$ sudo yum install -y yum-utils
$ sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
$ sudo yum-config-manager – habilita remi-php72

Instalar PHP-FPM y módulos de uso común

$ sudo yum install -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache

Iniciar y habilitar PHP-FPM

$ sudo systemctl start php72-php-fpm
$ sudo systemctl enable php72-php-fpm

Comprueba la versión de PHP

[linuxuser @ centos7-lemp ~] $ php72 -v
PHP 7.2.8 (cli) (construido: 17 de julio de 2018 08:41:40) (NTS)
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
con Zend OPcache v7.2.8, Copyright (c) 1999-2018, por Zend Technologies

Configuración básica de seguridad PHP

Edite el archivo php.ini y busque el parámetro cgi.fix_pathinfo, descomente y establezca en 0. Por defecto, esta configuración permite que PHP ejecute el archivo más cercano si no encuentra un archivo PHP que coincida exactamente. Por lo tanto, los usuarios pueden crear fácilmente solicitudes PHP maliciosas que PHP procesará con facilidad.

$ sudo vim /etc/opt/remi/php72/php.ini

Edite de la siguiente manera:

; cgi.fix_pathinfo proporciona * real * PATH_INFO / PATH_TRANSLATED soporte para CGI. PHP
; El comportamiento anterior era establecer PATH_TRANSLATED en SCRIPT_FILENAME y no asimilar
; que es PATH_INFO Para obtener más información sobre PATH_INFO, consulte las especificaciones de cgi. Ajuste
; esto a 1 hará que PHP CGI arregle sus rutas para ajustarse a la especificación. Un ajuste
; de cero hace que PHP se comporte como antes. El valor predeterminado es 1. Debe corregir sus scripts
; usar SCRIPT_FILENAME en lugar de PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo = 0

Configure PHP-FPM para trabajar con Nginx

Edite el archivo de configuración php-fpm de la siguiente manera

$ sudo vim /etc/opt/remi/php72/php-fpm.d/www.conf
; Agregar usuario de Nginx
; Usuario / grupo de procesos de Unix
; Nota: el usuario es obligatorio. Si el grupo no está configurado, el grupo del usuario predeterminado
; se utilizará.
; RPM: usuario de apache elegido para proporcionar acceso a los mismos directorios que httpd
usuario = nginx

; RPM: mantener un grupo con permiso para escribir en el directorio de registro.
grupo = nginx

; La dirección en la cual aceptar solicitudes FastCGI.
; Las sintaxis válidas son:
; ‘ip.add.re.ss: port’ – para escuchar en un socket TCP a una dirección IPv4 específica en
; un puerto específico;
; ‘[ip: 6: addr: ess]: port’ – para escuchar en un socket TCP a una dirección IPv6 específica en
; un puerto específico;
; ‘puerto’ – para escuchar en un socket TCP a todas las direcciones
; (IPv6 e IPv4-mapped) en un puerto específico;
; ‘/ ruta / a / unix / socket’ – para escuchar en un socket unix.
; Nota: este valor es obligatorio.
escuchar = 127.0.0.1:9000

Reinicie el servicio php-fpm para efectuar los cambios de configuración

$ sudo systemctl reiniciar php72-php-fpm

Edite el archivo de configuración de Nginx

$ sudo vim /etc/nginx/sites-enabled/default.conf

Después de hacer los cambios, el archivo debe ser el siguiente:

servidor {
escucha 80;
nombre del servidor ;

#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;

ubicación / {
root / usr / share / nginx / html;
index index.php index.html index.htm;
}

error_page 404 /404.html;

# redirige las páginas de error del servidor a la página estática /50x.html
# #
error_page 500 502 503 504 /50x.html;
ubicación = /50x.html {
root / usr / share / nginx / html;
}

# proxy los scripts PHP para Apache escuchando en 127.0.0.1:80
# #
#location ~ \ .php $ {
# proxy_pass http://127.0.0.1;
#}

# pasar los scripts PHP al servidor FastCGI escuchando en 127.0.0.1:9000
# #
ubicación ~ \ .php $ {
root / usr / share / nginx / html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
incluir fastcgi_params;
}

# denegar el acceso a los archivos .htaccess, si la raíz del documento de Apache
# coincide con el de nginx
# #
#location ~ /\.ht {
# negar todo;
#}
}

Prueba si la configuración está bien

[linuxuser @ centos7-lemp ~] $ sudo nginx -t
nginx: la sintaxis del archivo de configuración /etc/nginx/nginx.conf está bien
nginx: la prueba del archivo de configuración /etc/nginx/nginx.conf es exitosa

Reinicie nginx para efectuar los cambios.

$ sudo systemctl restart nginx

Prueba PHP

Crea el archivo informacion.php como sigue y colóquelo en el directorio raíz web de Nginx

$ sudo vim /usr/share/nginx/html/info.php
<?php phpinfo (); ?>

Guardar y salir del archivo.

Luego visite la dirección del navegador – http: //your_domain_or_server_public_IP/info.php

La página web mostrará información PHP sobre el servidor. Esto confirma que Nginx está funcionando correctamente con PHP. Por razones de seguridad, debe proceder a eliminar el archivo info.php en el directorio raíz web.

Conclusión

Ahora que ha instalado con éxito la pila LEMP, ahora puede alojar su increíble sitio web comercial o aplicación web en el directorio raíz / usr / share / nginx / html y servir a sus clientes potenciales. Es muy simple de hecho!

Consulte estos 3 principales servicios de alojamiento MySQL:

Alojamiento A2

Precio inicial:
$ 3.92


Fiabilidad
9.3


Precios
9.0


Fácil de usar
9.3


Apoyo
9.3


Caracteristicas
9.3

Leer comentarios

Visita A2 Hosting

FastComet

Precio inicial:
$ 2.95


Fiabilidad
9,7


Precios
9.5


Fácil de usar
9,7


Apoyo
9,7


Caracteristicas
9.6

Leer comentarios

Visita FastComet

Hostinger

Precio inicial:
$ 0.99


Fiabilidad
9.3


Precios
9.3


Fácil de usar
9.4


Apoyo
9.4


Caracteristicas
9.2

Leer comentarios

Visita Hostinger

Artículos de procedimientos relacionados

  • Cómo instalar la pila LEMP (Linux, Nginx, MySQL, PHP) en un Ubuntu 18.04 VPS o servidor dedicado
    intermedio
  • Cómo instalar MYSQL 8.0 y crear una base de datos en un servidor virtual o servidor dedicado CentOS 7 Linux
    intermedio
  • Cómo instalar phpMyAdmin en un CentOS 7 VPS o servidor dedicado
    intermedio
  • Cómo ajustar y optimizar el rendimiento de MySQL 8.0 en un servidor CentOS 7
    experto
  • Cómo instalar CachetHQ en un CentOS 7 VPS o servidor dedicado
    intermedio
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me