Problema:
Tengo una instancia de CentOS 7, con el clásico Apache funcionando y por requerimientos de versiones necesito actualizarme a PHP 7 ...pero no lo veo en los repositorios.
Solución utilizada:
- Utilizando una consola (vuelvo y lo confieso no he superado mi adicción a la interfaz de comandos, me hace sentir en matrix), iniciamos sesión con permisos administrativos (también se puede usar sudo) y agregamos el repositorio SCL (Software Collections), que incluye versiones actualizadas, como la requerida de php:
yum install centos-release-scl
- Instalamos nuestro php:
yum install rh-php70
y las dependencias que necesitemos, se pueden listar conyum list rh-php70\*
, en específico se requiere como mínimo soporte para mysql (si se usa) y el manejador de procesos php (FPM-PHP), una instalación básica podría ser:rh-php70-php-fpm
rh-php70-php-mysqlnd
rh-php70-php-gd
rh-php70-php-pspell
rh-php70-php-soap
rh-php70-php-bcmath
- Decirle a apache que use fpm, en
/etc/httpd/conf.d/php.conf
:
...
<FilesMatch \.php$>
# SetHandler application/x-httpd-php
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
...
- Si se necesitan configuraciones adicionales: php.ini esta en
/etc/opt/rh/rh-php70/php.ini
...para correr el servicio FPM como otro usuario que no sea apache (tal vez nginx), eso se configuraría en/etc/php-fpm.d/www.conf
(no olvidar reiniciar servicios) - Iniciar el servicio fpm:
service rh-php70-php-fpm start
(para dejarlo como autoarranque:systemctl enable rh-php70-php-fpm
). No olvidar reiniciar apache:service httpd restart
.