A día de hoy, la versión estable ofrecida a través de los repositorios oficiales de CentOS 7 (y entiendo que igualmente en RHEL 7) es la 5.4.16:
# yum info php Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Available Packages Name : php Arch : x86_64 Version : 5.4.16 Release : 46.el7 Size : 1.4 M Repo : base/7/x86_64 Summary : PHP scripting language for creating dynamic web sites URL : http://www.php.net/ License : PHP and Zend and BSD Description : PHP is an HTML-embedded scripting language. PHP attempts to make it : easy for developers to write dynamically generated web pages. PHP also : offers built-in database integration for several commercial and : non-commercial database management systems, so writing a : database-enabled webpage with PHP is fairly simple. The most common : use of PHP coding is probably as a replacement for CGI scripts. : : The php package contains the module (often referred to as mod_php) : which adds support for the PHP language to Apache HTTP Server.
Pese a que probablemente la versión compilada de PHP para RHEL y CentOS 7 se encuentre al día en lo que a parches de seguridad se refiere, siendo que la versión estable de PHP es la 7.3, es altamente recomendable instalarla, tanto por sus numerosas mejoras a nivel de seguridad como de rendimiento.
Cómo instalar PHP 7 en RHEL 7/CentOS 7
Los repositorios de EPEL y Remi ofrecen, a día de hoy, la versión 7.3 de PHP precompilada y en paquete RPM lista para su descarga e instalación. Únicamente hay que asegurarse de tener estos repositorios configurados a nivel de sistema/yum:
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm # yum install yum-utils
Confirmamos que tenemos cargados los repos:
# yum repolist | egrep -e 'epel|remi' * epel: mirrors.coreix.net * remi-php73: remi.mirror.ate.info * remi-safe: remi.mirror.ate.info epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,051 remi-php73 Remi's PHP 7.3 RPM repository for Enterprise Linux 306 remi-safe Safe Remi's RPM repository for Enterprise Linux 7 - 3,188
Si os fijáis, también instalamos el paquete yum-utils
, pues permite establecer a posteriori el repositorio a utilizar para un determinado paquete. Esto es extremadamente útil para evitar conflictos de versiones entre repositorios. Como nosotros queremos instalar PHP 7.3, así lo especificamos para que sea la rama por defecto de nuestro sistema a la hora de instalar cualquier paquete de PHP:
# yum-config-manager --enable remi-php73 Loaded plugins: fastestmirror ===================================================================================== repo: remi-php73 ===================================================================================== [remi-php73] async = True bandwidth = 0 base_persistdir = /var/lib/yum/repos/x86_64/7 baseurl = cache = 0 cachedir = /var/cache/yum/x86_64/7/remi-php73 check_config_file_age = True compare_providers_priority = 80 cost = 1000 deltarpm_metadata_percentage = 100 deltarpm_percentage = enabled = 1 enablegroups = True exclude = failovermethod = priority ftp_disable_epsv = False gpgcadir = /var/lib/yum/repos/x86_64/7/remi-php73/gpgcadir gpgcakey = gpgcheck = True gpgdir = /var/lib/yum/repos/x86_64/7/remi-php73/gpgdir gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi hdrdir = /var/cache/yum/x86_64/7/remi-php73/headers http_caching = all includepkgs = ip_resolve = keepalive = True keepcache = False mddownloadpolicy = sqlite mdpolicy = group:small mediaid = metadata_expire = 21600 metadata_expire_filter = read-only:present metalink = minrate = 0 mirrorlist = http://cdn.remirepo.net/enterprise/7/php73/mirror mirrorlist_expire = 86400 name = Remi's PHP 7.3 RPM repository for Enterprise Linux 7 - x86_64 old_base_cache_dir = password = persistdir = /var/lib/yum/repos/x86_64/7/remi-php73 pkgdir = /var/cache/yum/x86_64/7/remi-php73/packages proxy = False proxy_dict = proxy_password = proxy_username = repo_gpgcheck = False retries = 10 skip_if_unavailable = False ssl_check_cert_permissions = True sslcacert = sslclientcert = sslclientkey = sslverify = True throttle = 0 timeout = 30.0 ui_id = remi-php73 ui_repoid_vars = releasever, basearch username =
Si quisieramos utilizar la versión 7.2 en lugar de la 7.3, sería así:
# yum-config-manager --enable remi-php72
Finalmente ya sólo queda instalar PHP y los módulos que necesitemos. Mirad que no tenemos que especificar la versión ya que hemos establecido la rama previamente con yum-config-manager, disponible gracias a la instalación de yum-utils.
# yum install php php-gd php-mcrypt php-mysql
Confirmamos en la salida de la instalación que vamos a instalar la 7.3:
Dependencies Resolved ============================================================================================================================================================================================ Package Arch Version Repository Size ============================================================================================================================================================================================ Installing: php x86_64 7.3.4-1.el7.remi remi-php73 3.2 M php-gd x86_64 7.3.4-1.el7.remi remi-php73 79 k php-mysqlnd x86_64 7.3.4-1.el7.remi remi-php73 231 k php-pecl-mcrypt x86_64 1.0.2-2.el7.remi.7.3 remi-php73 29 k
Una vez instalado, ya podéis confirmar que es la versión 7.3 ejecutando un php -v
.
# php -v