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.
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
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.
- Actualizar a 10.1 (Recomendada)
- Actualizar a 10.2