¿Cómo instalo PHP 5.3 en CentOS?


9

Tengo que instalar PHP 5.3 en mi servidor CentOS. Si lo hago yum install php, el repositorio base instala 5.1.6, que es demasiado antiguo para las aplicaciones que necesito instalar. Así que he estado tratando de usar el repositorio de IUS , siguiendo las instrucciones oficiales de IUS:

root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1-2.ius.el5.noarch.rpm

root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/epel-release-1-1.ius.el5.noarch.rpm

root@linuxbox ~]# rpm -Uvh ius-release*.rpm epel-release*.rpm

OKAY. Ahora simplemente hago yum install php53, etc. para todo lo que necesito ... pero me sale este error:

Running rpm_check_debug
Running Transaction Test
Finished Transaction Test


Transaction Check Error:
  file /usr/bin/php from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
  file /usr/bin/php-cgi from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
  file /usr/share/man/man1/php.1.gz from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
  file /etc/php.ini from install of php53u-common-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-common-5.1.6-27.el5_5.3.x86_64

Error Summary
-------------

No tengo idea de cómo resolver esto. Creo que tengo que eliminar los paquetes base. Sin embargo, como alguien nuevo en Linux, no sé cómo hacerlo.

Respuestas:


8

Actualización : Aparentemente, RHEL 5.6 incluye PHP 5.3 , por lo que pronto se mostrará de forma nativa para CentOS.

file /usr/bin/php from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /usr/bin/php-cgi from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /usr/share/man/man1/php.1.gz from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /etc/php.ini from install of php53u-common-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-common-5.1.6-27.el5_5.3.x86_64

El problema aquí es que los paquetes que está instalando tienen un nombre diferente (php53 en lugar de php), pero intentan instalar los mismos archivos ... de ahí los conflictos. Esta no es necesariamente la mejor manera de armar los paquetes, pero no sé si hay mejores paquetes disponibles, así que lo ignoraremos.

Para eliminar los paquetes instalados actualmente:

# yum remove php-cli php-common php

Entonces, en general, yum remove <list of packages>eliminará los paquetes. Y por supuesto,yum list installed para ver una lista de los paquetes instalados (o rpm -qa).


hm yeah remove podría ser mejor que borrar, ya que borrar también elimina dependencias. Intente eliminar primero, si eso falla intente borrar.
Phil Hollenback

2
removey eraseson sinónimos, de acuerdo con la yumpágina de manual de CentOS y las recientes versiones de Fedora.
Larsks

¡Gracias! Eso funcionó, aunque no tuve que eliminar php, sino los dos primeros en esa lista. Para instalar php 5.3 solo necesito yum instalar php53 ¿verdad? Hay muchos paquetes en la lista, pero creo que ese es el único importante, ¿verdad?
fivelitresofsoda

Definitivamente sinónimos. Mira yumcommands.pysi tienes dudas. :)
mattdm

Probablemente. Solo usted sabría si su aplicación requiere alguno de los módulos adicionales (por ejemplo, soporte xml, soporte ldap, bases de datos, etc.).
larsks

4

La respuesta a esto ha cambiado, a partir del 13 de enero de 2011. Red Hat ha lanzado la versión 5.6, y esto incluye la versión 5.3 de PHP como un paquete separado ( php53).

Debe eliminar el antiguo PHP y luego instalar PHP 5.3 por separado. Esto suena similar a su paquete desde el repositorio de IUS, pero ahora es oficial.

Para obtener más información, consulte las notas de la versión de Red Hat .

Tenga en cuenta que esto acaba de salir de Red Hat, y habrá un pequeño retraso antes de que esté disponible en CentOS. Sin embargo, la actualización de RHEL 5.6 parece relativamente menor, por lo que no debería esperar que sea demasiado larga.


Sí. y 4 meses despues. todavía no está en repos de centos. :(
Stann


Está disponible a partir de abril de 2011. Menos mal. Consulte las Notas de la versión de CentOS 5.6
Stefan Lasiewski, del

2

Intente eliminar las versiones anteriores de los paquetes antes de instalar los nuevos:

yum borrar php-cli php-comon

entonces intente su instalación de yum.

Advertencia : mire la lista de cambios que yum desea hacer antes de confirmar, para asegurarse de que no está eliminando otros paquetes importantes.


2

Tienes razón, primero debes desinstalar los paquetes de php predeterminados. Antes de seguir adelante, tenga en cuenta que otros paquetes pueden tener dependencias específicas en las versiones base. Lo más probable es que estará bien, pero tenga en cuenta que es posible que deba abordar otras inquietudes más adelante.

Debería poder hacerlo emitiendo

yum erase php-common php-cli

Seguido por tu

yum install php53


1
  1. Tuve que eliminar php-cli, php-commony php-devjunto con algunas dependencias, pero nada más (MySQL, etc. no se tocaron).
  2. Instalé los mismos paquetes en el sabor de PHP 5.3 con dependencias y ahora todo está en funcionamiento. phpinfoconfirma que estoy ejecutando PHP Versión 5.3.3.
  3. Reinicié Apache y el sitio, ejecutando Joomla, simplemente funciona bien.

0

Tuve el mismo problema donde "yum update php" me daría errores de conflicto.

Sin embargo, ejecutar "yum update" (actualizar todo) funcionó para mí. Pruébalo

Además, tenga en cuenta que si ejecuta "yum erase php" o "yum remove php", puede eliminar todos los paquetes que dependen de PHP ... lo que probablemente incluiría su panel de control Plesk o CPanel si lo tiene instalado. Si no me equivoco, tendrías que reinstalarlos, lo que podría ser un dolor.


2
Sí, tengo exactamente ese problema. Para actualizar PHP, yum quiere eliminar Drupal, que no es realmente una dependencia: requiere PHP para funcionar, pero no le importa qué versión de PHP, ya que es una fuente PHP y no un programa compilado. ¿Alguna forma de desinstalar PHP5.2 y dejar que Drupal se quede solo?
Bart

0

Acabo de resolver este problema después de mucha investigación, es decir, instalar PHP 5.3.10 en CentOS 5.3. Intenté usar varios repositorios, incluido el repositorio Atomicorp , pero esto no funcionó.

Finalmente encontré que los siguientes pasos funcionan de maravilla, pensé compartir.

EMPEZAR

Descargue y habilite los repositorios REMI y EPEL

cd ~
wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

vi /etc/yum.repos.d/remi.repo

Cambie "enabled = 0" a "enabled = 1" debajo del encabezado "[remi]"

Debe eliminar php-sqlite2 o obtendrá un error de dependencia

yum remove php-sqlite2

Actualice PHP a la última versión 5.3.10 en este caso

yum update php

Haga una copia de seguridad de php.ini y habilite la versión recién instalada

mv /etc/php.ini /etc/php.ini.old
mv /etc/php.ini.rpmnew /etc/php.ini

Haga una copia de seguridad de my.cnf y habilite la versión recién instalada

mv /etc/my.cnf /etc/my.cnf.old
mv /etc/my.cnf.rpmnew /etc/my.cnf

Instale la última versión de la extensión ioncube

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar -xvf ioncube_loaders_lin_x86-64.tar.gz
mv ioncube/* /usr/lib64/php/modules/

echo 'zend_extension=/usr/lib64/php/modules/ioncube_loader_lin_5.3.so' > /etc/php.d/ioncube-loader.ini

Es posible que también necesite instalar extensiones php, en este caso también necesité instalar la extensión SOAP:

yum install php-soap

Reinicie los servicios para que los cambios surtan efecto

service mysqld restart
service httpd restart

HECHO

Salud; marca

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.