Como instalo o PHP 5.3 no CentOS?

9

Eu tenho que instalar o PHP 5.3 no meu servidor CentOS. Se eu fizer yum install php , o repositório de base instalará o 5.1.6, que é muito antigo para os aplicativos que preciso instalar. Então, estou tentando usar o repositório IUS , seguindo as instruções oficiais do 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

OK. Agora eu simplesmente faço yum install php53 , etc. para tudo que eu preciso ... mas eu recebo este erro:

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
-------------

Não tenho ideia de como resolver isso. Eu acho que tenho que excluir os pacotes básicos. No entanto, como alguém novo no Linux, não sei como fazer isso.

    
por fivelitresofsoda 11.01.2011 / 20:59

8 respostas

8

Atualização : aparentemente, o RHEL 5.6 inclui o PHP 5.3 , então isso será exibido nativamente para o CentOS em breve.

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

O problema aqui é que os pacotes que você está instalando tem um nome diferente (php53 ao invés de php), mas eles tentam instalar os mesmos arquivos ... daí os conflitos. Esta não é necessariamente a melhor maneira de juntar os pacotes, mas eu não sei se há pacotes melhores disponíveis, então vamos ignorar isso.

Para remover seus pacotes atualmente instalados:

# yum remove php-cli php-common php

Portanto, em geral, yum remove <list of packages> removerá os pacotes. E é claro, yum list installed para ver uma lista de pacotes instalados (ou rpm -qa ).

    
por 11.01.2011 / 21:04
4

A resposta para isso mudou, a partir de 13 de janeiro de 2011. A Red Hat lançou a versão 5.6, e isso inclui a versão 5.3 do PHP como um pacote separado ( php53 ).

Você precisa remover o PHP antigo e instalar o PHP 5.3 separadamente. Isso parece semelhante ao seu pacote do repositório IUS, mas agora é oficial.

Para mais informações, consulte a Red Hat notas de lançamento .

Note que isso é apenas o da Red Hat, e haverá um pequeno atraso antes que isso esteja disponível no CentOS. No entanto, a atualização do RHEL 5.6 parece relativamente pequena, então não devo esperar que seja muito longo.

    
por 13.01.2011 / 15:45
2

Tente remover as versões antigas dos pacotes antes de instalar as novas:

yum erase php-cli php-comon

tente a sua instalação do yum.

Aviso : observe a lista de alterações que o yum deseja fazer antes de confirmar, para garantir que você não esteja removendo outros pacotes importantes.

    
por 11.01.2011 / 21:07
2

Você está correto, você precisa desinstalar os pacotes php padrão primeiro. Antes de prosseguir, tenha em mente que outros pacotes podem ter dependências específicas nas versões base. As chances são de que você vai ficar bem, mas apenas ser avisado que você pode precisar resolver outras preocupações mais tarde.

Você deve ser capaz de fazer isso emitindo

yum erase php-common php-cli

Seguido pelo seu

yum install php53
    
por 11.01.2011 / 21:07
1

O CentOS 6 já está disponível e inclui o PHP 5.3:

link

    
por 11.07.2011 / 15:43
1
  1. Eu tive que remover php-cli , php-common e php-dev juntamente com algumas dependências, mas nada mais (o MySQL, etc. não foi alterado).
  2. Eu instalei os mesmos pacotes no sabor do PHP 5.3 com dependências e agora tudo está em execução. phpinfo confirma que estou executando o PHP Versão 5.3.3.
  3. Eu reiniciei o Apache e o site, executando o Joomla, funciona bem.
por 26.09.2011 / 18:44
0

Eu tive o mesmo problema onde "yum update php" me dava erros de conflito.

Executar "yum update" (atualizar tudo) funcionou para mim. Dê uma chance.

Além disso, perceba que se você executar "yum erase php" ou "yum remove php", ele poderá remover todos os pacotes que dependem do PHP ... o que provavelmente incluiria seu controle Plesk ou CPanel painel se você tiver instalado. Se não me engano, você teria que reinstalá-los, o que poderia ser uma dor.

    
por 12.05.2011 / 05:12
0

Acabei de resolver este problema depois de muita pesquisa, ou seja, instalar o PHP 5.3.10 no CentOS 5.3. Eu tentei usar vários repositórios, incluindo o repositório Atomicorp , mas isso quebrou o plesk

Eu finalmente achei que as etapas a seguir funcionam bem, acho que compartilho.

BEGIN

Faça o download e ative os repositórios REMI e 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

Altere "enabled = 0" para "enabled = 1" sob o cabeçalho "[remi]"

Você deve remover o php-sqlite2 ou você receberá um erro de dependência

yum remove php-sqlite2

Atualize o PHP para a versão mais recente 5.3.10 neste caso

yum update php

Faça o backup do php.ini e habilite a versão recém-instalada

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

Faça o backup do my.cnf e ative a versão recém-instalada

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

Instale a versão mais recente da extensão do 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

Você também pode precisar instalar extensões php, neste caso eu também precisei instalar a extensão SOAP:

yum install php-soap

Reinicie os serviços para que as alterações sejam afetadas

service mysqld restart
service httpd restart

FEITO

Felicidades; Mark

    
por 12.03.2012 / 10:28