OpenSAI

OpenSAI

Open Source Academic Initiative

Comparte tu conocimiento

PHP

  • CentOS 7.3: ¡necesito actualizar a PHP 7 y no viene en los repositorios por defecto! { Notas de Laboratorio }

    CentOSphp7upgradeSCL

    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 con yum 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.