GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo actualizo a la última versión de PHP en CentOS con yum?

Solución 1:

Seguí las instrucciones de Instalar Apache/PHP 5.4.10 en Fedora 17/16, CentOS/RHEL 6.3/5.8 con una ligera modificación. Tomó tal vez 10 minutos. Mis comandos exactos se muestran a continuación. Tenga en cuenta que el primer comando tuvo que cambiarse de lo que se muestra en el artículo. El cambio fue de epel-release-6-7.noarch.rpm a epel-release-6-8.noarch.rpm .

  1. ¿Cómo agregar un repositorio que proporcione PHP 5.4 en yum?

    yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
    yum install http://rpms.remirepo.net/enterprise/remi-release-6.rpm
    
  2. ¿Puede esto reemplazar a la perfección la versión actual de PHP en CentOS? Para mí, los siguientes comandos funcionaron y ninguna de mis páginas web PHP existentes se rompió. Su millaje puede variar.

    yum --enablerepo=remi install httpd php php-common
    yum --enablerepo=remi install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
    service httpd restart
    
  3. ¿Cómo puedo volver al repositorio oficial cuando es compatible con PHP5.4? No he probado los comandos para eliminar y volver a instalar PHP desde los repositorios de CentOS, pero deberían funcionar.

    # Remove the Remi packages. Note the reversed command order
    yum remove php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
    yum  remove httpd php php-common
    # Install the CentOS packages. 
    yum install httpd php php-common
    yum install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
    
  4. ¿Habrá algún potencial para romper los módulos PHP que [sic] estoy usando actualmente? Sí. Usando una versión reciente de CentOS (¿6.2?) con Zend instalado usando el instalador de Zend, la actualización anterior rompió Zend.

Todos los comandos anteriores se ejecutaron como root . La mejor práctica es iniciar sesión como un usuario sin privilegios y usar sudo . (Esta es una máquina virtual de desarrollo con una instantánea actual...)

Además, NO habilite el repositorio de Remi de forma predeterminada; en el pasado, me volví inteligente y lo habilité de manera predeterminada y las cosas fallaron, incluso con la prioridad del repositorio.

Solución 2:

Una mejora con respecto a la otra respuesta de Webtatic:

1 . Usando la guía en http://www.webtatic.com/packages/php54/:

rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm

2 . Primero debe ver qué paquetes instalados existentes necesitan reemplazarse, puede hacerlo usando yum shell para combinar la eliminación de php-common y la instalación de php54w-common en una transacción (para que no se eliminen las dependencias compartidas)

yum shell
> remove php-common
> install php54w-common
> run
…
Is this ok [y/N]: n

No responda "y" a los resultados, pero tome nota de todos los paquetes mencionados en "Eliminación de dependencias", por ejemplo,

Removing for dependencies:
 php
 php-cli
 php-pear
 php-pecl-memcache
 php-mysql

Si hay otros paquetes además de php* en esta lista, entonces no puede cambiar sin problemas a Webtatic PHP 5.4, pero tendrá que investigar alternativas. Webtatic tiene paquetes de reemplazo para todos los paquetes básicos de php (consulte los paquetes enumerados en la página vinculada en 1. para confirmar), por lo que no debería haber problemas, a menos que use otros repositorios de terceros que tengan paquetes instalados según la versión específica de php instalado.

Para el resto de la instalación (todavía en yum shell), simplemente elimine estos paquetes e instale sus equivalentes php54w-*:

> remove php-common php php-cli php-pear php-pecl-memcache php-mysql
> install php54w-common php54w php54w-cli php54w-pear php54w-pecl-memcache php54w-mysql
> run
…
Is this ok [y/N]: y

Entonces solo debería ver los paquetes que configuró para ser eliminados e instalados en la lista, y puede confirmar la instalación para cambiar. Será necesario reiniciar cualquier servicio que se esté ejecutando actualmente con php cargado, por ejemplo, httpd o php-fpm.

En cuanto a que esto sea 'perfecto', cualquier cambio de software que ocurra mientras los usuarios pueden acceder al sitio web debe tener las consecuencias completamente entendidas. Las bibliotecas compartidas que se eliminan y agregan cuando un proceso aún no las ha cargado podrían cargarse mientras la biblioteca compartida no está allí. Es mejor hacer actualizaciones de software como esta fuera de línea y, preferiblemente, probarlas primero en una máquina que no sea de producción para verificar que el proceso funcione como se esperaba.

3 . Para cambiar a un paquete php54 base hipotético de CentOS (CentOS 5 usó el prefijo php53), simplemente ejecute los pasos anteriores reemplazando la eliminación de php con la eliminación de php54w y la instalación de php54w con la instalación de php54, por ejemplo.

yum shell
> remove php54w-common
> install php54-common
> run
…
Is this ok [y/N]: n
…
> remove php54w-common php54w php54w-cli php54w-pear php54w-pecl-memcache php54w-mysql
> install php54-common php54 php54-cli php54-pear php54-pecl-memcache php54-mysql
> run
Is this ok [y/N]: y

Sin embargo, en cuanto al cambio a la base hipotética php54, es probable que no haya alternativas para algunos paquetes (por ejemplo, no había la extensión php53-pecl-memcache en CentOS 5) y Webtatic tiene paquetes que no están disponibles en la base de CentOS (por ejemplo, php54w -pecl-zendopcache). Si faltan, generalmente no tiene otra opción que usar pecl directamente para instalarlos.

4 . Cualquier actualización de PHP puede presentar errores y los sitios web deben volver a probarse. Esto no es específico de Webtatic, sino la idea general de que las nuevas funciones introducen nuevos errores.

A diferencia del repositorio de Remi en la respuesta aceptada, el repositorio Webtatic EL6 nunca usa los mismos nombres de paquete que los repositorios base de CentOS, por lo que no anulará la instalación/actualización de los paquetes a los que no tiene la intención de cambiar y, como tal, está habilitado de manera predeterminada.

Descargo de responsabilidad:soy el propietario/mantenedor de Webtatic


Linux
  1. Cómo actualizar Fedora Linux a la última versión

  2. Cómo actualizar Sendmail a la última versión en CentOS

  3. Cómo actualizar git a la última versión en CentOS

  4. ¿Cómo actualizar AWS CLI a la última versión?

  5. ¿Cómo reinstalar la última versión de cmake?

Cómo actualizar Alpine Linux a la última versión

Cómo instalar PHP 7.4 en CentOS 8

Cómo actualizar el kernel en CentOS 8.0

Cómo instalar la última versión de LibreOffice en CentOS 8

Cómo cambiar la versión de PHP

Cómo comprobar la versión de PHP en Linux