Servidor Nginx con PHP-FPM y MariaDB en CentOS7

Instalar un servidor Nginx con PHP-FPM y MariaDB en CentOS 7.

En un anterior articulo, ya vimos como aprovechar el potencial de Nginx aprovechándolo como proxy inverso (lo puedes ver, aquí). Hoy lo instalaremos como servidor web, puro y duro y le sumaremos PHP-FPM y MariaDB. Realmente hemos escogido una excelente combinación que servirá paginas muy rápido.

Servidor Nginx con PHP-FPM y MariaDB en CentOS7 1

Instalar servidor Nginx

Debemos de activar el repositorio Epel, si no recuerdas como… puedes echar un vistazo a este articulo.

Instalando…

yum -y install nginx

Una vez termine la instalación de Nginx, iniciamos el servidor y lo habilitamos para que se ejecute automáticamente al arrancar el sistema.
systemctl start nginx

systemctl enable nginx

Comprobamos…
netstat -plntu

ejemplo de salida con Nginx funcionando.
[root@host ~]# netstat -plntu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name             
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      28758/nginx: master            
tcp        0      0 0.0.0.0:8083            0.0.0.0:*               LISTEN      3731/nginx: master  
tcp        0      0 127.0.0.1:8084          0.0.0.0:*               LISTEN      28758/nginx: master

 

Instalar y configurar PHP-FPM

En este ejemplo usaremos  PHP 7.0, incluidas sus extensiones. Usaremos el paquete PHP 7.0 del repositorio de terceros ‘webtatic‘, que siempre esta a la ultima.

Agregamos el nuevo repositorio ‘webtatic‘ con el siguiente comando.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Instalamos php con todas las extensiones necesarias.
yum -y install ImageMagick php70w-fpm php70w-intl php70w-xml php70w-curl php70w-gd php70w-mbstring php70w-mysql php70w-cli php70w-pear php70w-pecl-apcu

Ya tenemos php instalado, ahora configuraremos PHP-FPM (antiguamente php-fpm era un modulo de desarrollo independiente, pero desde la versión php 5.3.3, esta integrado en php).

Editamos el php.ini.

nano /etc/php.ini

Descomenta esta linea y coloca el valor «0».
cgi.fix_pathinfo=0

Guarda y cierra el editor.

 

Continuamos…

Editamos el archivo de configuración de PHP-FPM, «www.conf».

nano /etc/php-fpm.d/www.conf

Modifica los valores de usuario y grupo.
user = nginx

group = nginx

Cambia el valor de la variable «listen».
listen = /run/php-fpm/php-fpm.sock

Descomenta y modifica variables de…
listen.owner = nginx 
listen.group = nginx 
listen.mode = 0660

Como configuración adicional, puedes descomentar…
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Creamos el directorio donde se guardara la configuración de las sesiones.
mkdir -p /var/lib/php/session/

chown -R nginx:nginx /var/lib/php/session/

Iniciamos php-fpm y que arranque con el sistema.
systemctl start php-fpm

systemctl enable php-fpm

Puedes comprobar que funcione correctamente, con:
netstat -pl | grep php

Servidor Nginx con PHP-FPM y MariaDB en CentOS7 2

 

Instalar MariaDB

yum -y install mariadb mariadb-server

Activamos MariaDB y que arranque con el sistema.
systemctl start mariadb

systemctl enable mariadb

Configuramos…
mysql_secure_installation

Si lo dejas como el ejemplo, la contraseña de la db será la misma que la del root.
Set root password? [Y/n] Y
TYPE ROOT PASSWORD HERE

Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

 

Ahora te recomiendo que reinicies todo el sistema.

Ya tienes instalado tu servidor Nginx con PHP-FPM y MariaDB en CentOS 7.

Te recomiendo que visites un articulo donde encontraras unos buenos consejos de seguridad en Nginx.

Por defecto, MariaDB se instala en su versión 5.5, deberías plantearte actualizar a la versión 10.1 o versión 10.2.

 

Agregar comentario