Instalar últimas versiones de nginx, php y mysql en CentOS 7

Trabajar con las últimas versiones de software en sistemas como CentOS a veces suele ser difícil, sobre todo a la hora de encontrar repositorios que te permitan mantener el mismo nombre de paquetes y así poder actualizar los existentes.



A día de hoy estas son las versiones que tengo instaladas, todas con los nombres de paquetes oficiales, nginx, php y mysql, (existen otros repositorios que te permiten instalar php 7 pero con un nombre diferente php70 o php70w según el repositorio que consultes):
  • CentOS Linux release 7.2.1511 (Core)
  • Server version: 5.7.10 MySQL Community Server (GPL)
  • nginx version: nginx/1.9.9
  • PHP 7.0.1 (cli) (built: Dec 16 2015 15:23:56) ( NTS )

Repositorios necesarios

Para instalar MySQL descargaremos el repositorio oficial de Oracle, desde que MySQL fue comprado por Oracle la comunidad de CentOS se ha decantado por MariaDB con lo cual no hay disponibles versiones para CentOS.
rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
Para PHP ya necesitamos algo extra, la versión que viene por defecto con soporte oficial es muy antigua, creo recordar que es la 5.4, con lo cual necesitamos repositorios de terceros, en este caso EPEL y REMI.
yum install epel-release
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Con esto no es suficiente porque el repositorio que viene activado por defecto es el de remi-safe cuyo paquete de php se llama php70, si queremos instalar la última última versión de PHP y además que sea con el nombre de paquete de toda la vida: php, entonces necesitamos editar el archivo /etc/yum.repos.d/remi-php70.repo y activar el siguiente repositorio:
[remi-php70]
name=Remi's PHP 7.0 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php70/$basearch/
enabled=1
mirrorlist=http://rpms.remirepo.net/enterprise/7/php70/mirror
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
Para nginx hay algunos paquetes rpm pero que que lo mejor es seguir la guía de la página oficial y crearnos el siguiente archivo en /etc/yum.repos.d/nginx-mainline.repo (en mi caso tengo la distribución mainline en vez de la estable)
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

Instalando MySQL, nginx y php

yum -y install mysql-community-server nginx php-fpm
Importante no instalar el paquete de php porque al ser para nginx no lo necesitamos e instalaría apache porque tiene dependencias. Ojo de instalar luego los paquetes adicionales que queramos.

Configurando el firewall

Necesitamos abrir los puertos 3306 si queremos acceder de manera remota al MySQL y el puerto 80 para el nginx y el 443 en caso de usar https.
firewall-cmd --zone=public --add-port=xxx/tcp --permanent
firewall-cmd --reload

Habilitando el inicio automático

Sólo nos falta que cuando se reinicie el servidor se inicien estos servicios
systemctl enable mysql
systemctl enable nginx
systemctl enable php-fpm
Aparte de este para configurar php con nginx es recomendable seguir las configuraciones del enlace anterior.

Con esto ya tendríamos instalado las ultimas versiones de php7, nginx 1.9.9 y mysql 5.7.10 en nuestro CentOS 7.

Comentarios