Búsqueda de sitios web

Cómo instalar Nginx 1.15, MariaDB 10 y PHP 7 en CentOS 7


En este artículo explicaremos cómo instalar una pila LEMP (Linux, Nginx, MariaDB, PHP) junto con PHP-FPM en servidores RHEL/CentOS 7/6 y Fedora 26-29 usando los paquetes yum y dnf gerente.

Durante el proceso instalaremos y habilitaremos los repositorios Epel, Remi, Nginx y MariaDB para poder Instale las últimas versiones de estos paquetes.

Lea también: Instale Apache, MySQL 8 o MariaDB 10 y PHP 7 en CentOS 7

Paso 1: Instalar EPEL y Remi Repository

EPEL (Paquetes adicionales para Enterprise Linux) es un repositorio basado en la comunidad que ofrece paquetes de software complementarios para distribuciones de Linux basadas en RHEL.

Remi es un repositorio donde puede encontrar las últimas versiones de la pila PHP (con todas las funciones) para su instalación en las distribuciones Fedora y Enterprise Linux.

En RHEL/CentOS 7

yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

------ For RHEL 7 Only ------
subscription-manager repos --enable=rhel-7-server-optional-rpms

En RHEL/CentOS 6

yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

------ For RHEL 6 Only ------
subscription-manager repos --enable=rhel-6-server-optional-rpms

En Fedora 24-29

rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm  [On Fedora 29]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm  [On Fedora 28]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm  [On Fedora 27]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm  [On Fedora 26]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm  [On Fedora 25]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm  [On Fedora 24]

Paso 2: Instalar los repositorios Nginx y MariaDB

El repositorio de Nginx solo es necesario en las distribuciones RHEL y CentOS. Cree un archivo llamado /etc/yum.repos.d/nginx.repo y agréguele las siguientes líneas.

Para RHEL 7/6:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

Para CentOS 7/6:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

Para habilitar el repositorio MariaDB, cree un archivo llamado /etc/yum.repos.d/mariadb.repo con el siguiente contenido:

[mariadb] 
name = MariaDB 
baseurl = http://yum.mariadb.org/10.1/centos7-amd64 
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB 
gpgcheck=1 

Paso 4: Instalar Ngnix y MariaDB

Nginx (Engine X) es un servidor web de código abierto, robusto, liviano y de alto rendimiento, servidor proxy inverso y también servidor proxy de correo para protocolos HTTP, SMTP, POP3 e IMAP. Para obtener más detalles, visite http://wiki.nginx.org/Overview.

MariaDB es una bifurcación del conocido MySQL, uno de los sistemas de gestión de bases de datos relacionales (RDBMS) más populares del mundo. Está desarrollado íntegramente por la comunidad y, como tal, pretende seguir siendo FOSS y compatible con la GPL.

Para instalar Ngnix y MariaDB, ejecute los siguientes comandos.


----------- Installing on RHEL/CentOS 7/6 ----------- 
yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

----------- Installing on Fedora ----------- 
dnf --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

Paso 3: Instalar PHP usando el repositorio Remi

PHP (Preprocesador de hipertexto) es un lenguaje de secuencias de comandos del lado del servidor gratuito y de código abierto que se adapta mejor al desarrollo web. Se puede utilizar para producir páginas web dinámicas para un sitio web y se encuentra con mayor frecuencia en servidores *nix. Una de las ventajas de PHP es que es fácilmente extensible mediante el uso de una amplia variedad de módulos.

Para instalar PHP, primero debe habilitar el repositorio Remi instalando yum-utils, una colección de programas útiles para administrar repositorios y paquetes de yum.

yum install yum-utils

Una vez instalado, puede usar yum-config-manager proporcionado por yum-utils para habilitar el repositorio Remi como el repositorio predeterminado para instalar diferentes versiones de PHP como se muestra.

Por ejemplo, para instalar la versión PHP 7.x, utilice el siguiente comando.

------------- On CentOS & RHEL ------------- 
yum-config-manager --enable remi-php70 && yum install php       [Install PHP 7.0]
yum-config-manager --enable remi-php71 && yum install php       [Install PHP 7.1]
yum-config-manager --enable remi-php72 && yum install php       [Install PHP 7.2]
yum-config-manager --enable remi-php73 && yum install php       [Install PHP 7.3]

------------- On Fedora ------------- 
dnf --enablerepo=remi install php70      [Install PHP 7.0]
dnf --enablerepo=remi install php71      [Install PHP 7.1]
dnf --enablerepo=remi install php72      [Install PHP 7.2]
dnf --enablerepo=remi install php73      [Install PHP 7.3]

A continuación, instalaremos todos los siguientes módulos PHP.

------ On RHEL/CentOS 7/6 ------
yum --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

------ On Fedora ------
dnf --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

Paso 6: detener y deshabilitar el servicio Apache

De forma predeterminada, Apache y Nginx escuchan en el mismo puerto (TCP 80). Por ese motivo, si Apache está instalado en su servidor, debe detenerlo y deshabilitarlo/enmascararlo (una versión más potente de deshabilitar que vincula el servicio a /dev/null) para poder usar Nginx. , o puedes eliminarlo si no planeas usarlo más.

systemctl stop httpd 
systemctl disable httpd 
or 
systemctl mask httpd 

Paso 7: Iniciar/Detener Nginx, MariaDB y PHP-FPM

----------- Enable Nginx, MariaDB and PHP-FPM on Boot ----------- 
systemctl enable nginx 
systemctl enable mariadb 
systemctl enable php-fpm 
 
----------- Start Nginx, MariaDB and PHP-FPM ----------- 
systemctl start nginx 
systemctl start mariadb 
systemctl start php-fpm 

Paso 8: Configurar Nginx y PHP-FPM

Ahora creemos una estructura de directorio para su sitio web (un host virtual o bloque de servidor como se llama en Nginx) en /srv/www/. En este ejemplo usaremos linux-console.net, pero siéntete libre de elegir otro dominio y directorio principal si lo deseas.

mkdir -p /srv/www/tecmint/public_html 
mkdir /srv/www/tecmint/logs 
chown -R nginx:nginx /srv/www/tecmint  

Paso 9: Configurar los directorios del host virtual de Nginx

Como sabes, la capacidad de ejecutar varios sitios desde la misma máquina es una de las características distintivas de los principales servidores web. Procedamos ahora a crear los directorios para almacenar nuestros bloques de servidor (conocidos como hosts virtuales en Apache) en /etc/nginx.

mkdir /etc/nginx/sites-available 
mkdir /etc/nginx/sites-enabled 

La siguiente línea de código, que debe insertarse antes de cerrar el bloque http en /etc/nginx/nginx.conf, garantizará que los archivos de configuración dentro del /etc/nginx/sites-enabled El directorio se tendrá en cuenta cuando se ejecute Nginx:

## Load virtual host conf files. ## 
include /etc/nginx/sites-enabled/*; 

Para crear el bloque de servidor para linux-console.net, agregue las siguientes líneas de código a /etc/nginx/sites-available/tecmint (este archivo se creará cuando ingrese la ruta completa para iniciar su editor de texto preferido). Este es un archivo de configuración de host virtual básico.

server { 
	listen 80 default; 
	server_name tecmint; 
	access_log /srv/www/tecmint/logs/access.log; 
	error_log /srv/www/tecmint/logs/error.log; 
	root /srv/www/tecmint/public_html; 
	location ~* \.php$ { 
	fastcgi_index   index.php; 
	fastcgi_pass    127.0.0.1:9000; 
	include         fastcgi_params; 
	fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name; 
	fastcgi_param   SCRIPT_NAME        $fastcgi_script_name; 
	} 
} 

El proceso de “activar” un host virtual consiste en crear un enlace simbólico desde la definición del host virtual tecmint a /etc/nginx/sites-enabled .

ln -s /etc/nginx/sites-available/tecmint /etc/nginx/sites-enabled/tecmint 

Para aplicar realmente los cambios que hemos estado haciendo, ahora necesitamos reiniciar Nginx. A veces es útil comprobar los archivos de configuración en busca de errores de sintaxis antes de hacerlo:

nginx -t 
systemctl restart nginx 
systemctl status nginx 

Para acceder a su host virtual recién creado, debe agregar la siguiente línea a /etc/hosts como método básico de resolución de nombres de dominio.

192.168.0.18	linux-console.net linux-console.net 

Paso 10: Probar Nginx, MySQL, PHP y PHP-FPM

Sigamos con la forma clásica de probar PHP. Cree un archivo llamado test.php en /srv/www/tecmint/public_html/ y agréguele las siguientes líneas de código.

La función phpinfo() muestra una gran cantidad de información sobre la instalación actual de PHP:

<?php 
	phpinfo(); 
?> 

Ahora apunte su navegador web a http://tecmint/test.php y verifique la presencia de los módulos instalados y el software adicional:

¡Felicidades! Ahora tiene una instalación funcional de una pila LEMP. Si algo no salió como esperaba, no dude en contactarnos mediante el siguiente formulario. También se aceptan preguntas y sugerencias.