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
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