miércoles, 31 de octubre de 2018

Instalar PHP 7.2 en SUSE Linux Enterprise 12



Cómo actualizar la versión de PHP 7 a PHP 7.2 en SUSE Linux Enterprise Server 12.



Los repositorios de SUSE Linux Enterprise Server 12 contienen los binarios de la versión 7.0.7 de PHP 7, tal como se puede ver si instalamos PHP 7 en un SUSE Lnux Enterprise Server 12:

HOST# php -v PHP 7.0.7 (cli) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

La versión más actual de PHP 7 en el momento de escribir estas líneas es la 7.2, soportada por aplicaciones web varias como Drupal, Joomla, Moodle, etc. PHP 7.2 incluye varias mejoras respecto a la versión 7.0 inicial y es aconsejable usarla en los servidores web en los que tengamos PHP corriendo.

El problema viene en el momento de ir a actualizar PHP 7.0 a PHP 7.2: los repositorios oficiales de SUSE no contienen la versión 7.2 de PHP, y compilarla desde código fuente puede ser un infierno... pero estamos de suerte, la comunidad viene al rescate. Y es que en https://software.opensuse.org/ podemos encontrar repositorios comunitarios y añadirlos a nuestros SLES para instalar componentes no portados a SLES de forma oficial (siempre bajo nuestra responsabilidad y asumiendo los riesgos que conlleva).

Buscando, he encontrado un repositorio que contiene los binarios de PHP 7.2 para SLES 12 SP3 y he decidido instalarlo en una máquina con SLES 12 SP3 con "zypper addrepo https://(URL del repo)":

HOST# zypper addrepo https://download.opensuse.org/repositories/home:/Miuku:/php72/SLE_12_SP3/home:Miuku:php72.repo Adding repository 'PHP 7.2.x (SLE_12_SP3)' .........................[done] Repository 'PHP 7.2.x (SLE_12_SP3)' successfully added URI : http://download.opensuse.org/repositories/home:/Miuku:/php72/SLE_12_SP3/ Enabled : Yes GPG Check : Yes Autorefresh : No Priority : 99 (default priority) Repository priorities are without effect. All enabled repositories share the same priority.

Una vez instalado el repositorio, hay que refrescar la lista de repositorios del sistema e indicarle al SLES que confíe siempre en él a la hora de buscar nuevos paquetes y actualizaciones:

HOST# zypper refresh Repository 'SLES12-SP3-Pool' is up to date. Repository 'SLES12-SP3-Updates' is up to date. Repository 'SLE-SDK12-SP3-Pool' is up to date. Repository 'SLE-SDK12-SP3-Source-Pool' is up to date. Repository 'SLE-SDK12-SP3-Updates' is up to date. Repository 'SUSE-PackageHub-12-SP3' is up to date. Repository 'SUSE-PackageHub-12-SP3-Pool' is up to date. Repository 'SLE-Module-Web-Scripting12-Pool' is up to date. Repository 'SLE-Module-Web-Scripting12-Updates' is up to date. Retrieving repository 'PHP 7.2.x (SLE_12_SP3)' metadata -------------------------------------------------------------------------[\] New repository or package signing key received: Repository: PHP 7.2.x (SLE_12_SP3) Key Name: home:Miuku OBS Project Key Fingerprint: BC53D00F B6D3ED76 A85D8684 F6DA4F79 E9E45FB5 Key Created: Sat Sep 10 18:00:04 2016 Key Expires: Mon Nov 19 17:00:04 2018 Rpm Name: gpg-pubkey-e9e45fb5-57d42e04 Do you want to reject the key, trust temporarily, or trust always? [r/t/a/? shows all options] (r): a Retrieving repository 'PHP 7.2.x (SLE_12_SP3)' metadata .............[done] Building repository 'PHP 7.2.x (SLE_12_SP3)' cache ..................[done] All repositories have been refreshed.

Finalmente, con el repositorio comunitario ya validado en el sistema, podemos lanzar una actualización masiva de componentes desde todos los repositorios del sistema mediante "zypper dup", para que el SLES vea que hay una nueva versión de PHP 7 disponible. Y la instalamos:

HOST# zypper dup Warning: You are about to do a distribution upgrade with all enabled repositories. Make sure these repositories are compatible before you continue. See 'man zypper' for more information about this command. Refreshing service 'SUSE_Linux_Enterprise_Server_12_SP3_x86_64'. Refreshing service 'SUSE_Linux_Enterprise_Software_Development_Kit_12_SP3_x86_64'. Refreshing service 'SUSE_Package_Hub_12_SP3_x86_64'. Refreshing service 'Web_and_Scripting_Module_12_x86_64'. Loading repository data... Reading installed packages... Computing distribution upgrade... The following 13 packages are going to be upgraded: php7 php7-ctype php7-dom php7-iconv php7-json php7-mbstring php7-openssl php7-pdo php7-phar php7-sqlite php7-tokenizer php7-xmlreader php7-xmlwriter The following 13 packages have no support information from their vendor: php7 php7-ctype php7-dom php7-iconv php7-json php7-mbstring php7-openssl php7-pdo php7-phar php7-sqlite php7-tokenizer php7-xmlreader php7-xmlwriter 13 packages to upgrade. Overall download size: 2.5 MiB. Already cached: 0 B. After the operation, additional 5.4 MiB will be used. Continue? [y/n/...? shows all options] (y):

Una vez actualizados los paquetes de PHP 7, nos aseguramos de que PHP 7.2 haya quedado instalado. Comprobamos ahora la versión de PHP instalada en la máquina usando el mismo comando que hemos usado al principio del artículo:

HOST# php -v PHP 7.2.9 (cli) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
0

0 comentarios:

Publicar un comentario