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
.
¿Cómo agregar un repositorio que proporciona 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
¿Puede esto reemplazar sin problemas 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 experiencia puede ser diferente.
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
¿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 estos 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
¿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 usuario sin privilegios y usar sudo
. (Esta es una VM de desarrollo con una instantánea actual ...)
Además, NO habilite el repositorio Remi de forma predeterminada; en el pasado, fui inteligente y lo habilité de manera predeterminada y las cosas se rompieron, incluso con prioridad de repositorio.
yum --enablerepo=remi update
y se encarga de todos los paquetes php relacionados, parece una mejor solución. El servidor funciona sin problemas desde hace unos días, gracias por toda la información.php
a la lista de instalación, lo que me causó muchos problemas ya que Apache no atendió los archivos php, así que no olvide agregar esto cuando useUna mejora sobre la otra respuesta webtatic:
1) Usando la guía en http://www.webtatic.com/packages/php54/ :
2) Primero debe ver qué paquetes instalados deben reemplazar, puede hacerlo utilizando 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)
No diga "y" a los resultados, pero tome nota de todos los paquetes mencionados en "Eliminar por dependencias", p. Ej.
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 confirmación), por lo que no debería haber problemas, a menos que use otros repositorios de terceros que tengan instalados paquetes que dependan de 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 contrapartes php54w- *:
Entonces, solo debería ver los paquetes que ha configurado para ser eliminados e instalados en la lista, y puede confirmar la instalación para cambiar. Todos los servicios que se ejecutan actualmente con php cargado deberán reiniciarse, por ejemplo httpd o php-fpm.
En cuanto a que esto sea 'continuo', 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 potencialmente cargarse mientras la biblioteca compartida no está allí. Es mejor hacer actualizaciones de software como esta sin conexión, y preferiblemente probadas 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 hipotético de base php54 de CentOS (CentOS 5 usaba 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
Sin embargo, en cuanto al cambio a la base hipotética php54, es probable que no haya alternativas para algunos paquetes (por ejemplo, no hubo extensión php53-pecl-memcache en CentOS 5) y Webtatic tiene paquetes que no están disponibles en la base 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 introducir errores, y los sitios web deben volver a probarse. Esto no es específico de Webtatic, sino la idea general de que las nuevas características 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 paquetes a los que no tiene la intención de cambiar, y como tal está habilitado de forma predeterminada.
Descargo de responsabilidad: soy el propietario / mantenedor de Webtatic
fuente
puedes encontrar php 5.4.9 aquí para la instalación de yum:
http://www.webtatic.com/packages/php54/
puede hacer un "rpm -qa | grep php" para ver todos sus paquetes php actuales y un "rpm -e" para eliminar. No conozco sus módulos actuales, pero vale la pena probarlos antes de la actualización.
fuente