Como instalo o PHP 5.3 no CentOS?

9

Eu tenho que instalar o PHP 5.3 no meu servidor CentOS. Nesse caso yum install php, o repositório base instala o 5.1.6, que é muito antigo para os aplicativos que preciso instalar. Então, eu tenho tentado 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

ESTÁ BEM. Agora eu simplesmente faço yum install php53, etc. por tudo que preciso ... mas 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 faço ideia de como resolver isso. Eu acho que tenho que excluir os pacotes base. No entanto, como alguém novo no Linux, não sei como fazer isso.

fivelitresofsoda
fonte

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 têm um nome diferente (php53 em vez de php), mas tentam instalar os mesmos arquivos ... daí os conflitos. Esta não é necessariamente a melhor maneira de reunir os pacotes, mas não sei se existem pacotes melhores disponíveis, portanto ignoraremos isso.

Para remover os pacotes atualmente instalados:

# yum remove php-cli php-common php

Então, em geral, yum remove <list of packages>irá remover os pacotes. E, claro, yum list installedpara ver uma lista de pacotes instalados (ou rpm -qa).

larsks
fonte
hm yeah remove pode ser melhor que apagar, uma vez que apagar também remove dependências. Tente remover primeiro, se isso falhar, tente apagar.
Phil Hollenback
2
removee erasesão sinônimos, de acordo com a yumpágina de manual do CentOS e dos lançamentos recentes do Fedora.
Larsks
Obrigado! Isso funcionou, embora eu não tenha que remover o php, mas os dois primeiros nessa lista. Para instalar o php 5.3 eu preciso apenas do yum instalar o php53, certo? Existem muitos pacotes listados, mas acho que esse é o único importante, certo?
fivelitresofsoda
Definitivamente sinônimos. Procure yumcommands.pyse você duvida. :)
mattdm
Provavelmente. Somente você saberia se seu aplicativo requer algum dos módulos adicionais (por exemplo, suporte a xml, suporte a ldap, bancos de dados e assim por diante).
Larsks
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 o PHP versão 5.3 como um pacote separado ( php53).

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

Para mais informações, consulte as notas de versão da Red Hat .

Observe que isso acabou de sair do Red Hat, e haverá um pequeno atraso antes que isso esteja disponível no CentOS. A atualização do RHEL 5.6 parece relativamente pequena, portanto, não devo esperar que seja muito longa.

mattdm
fonte
Sim. e 4 meses depois. ainda não está em centos repos. :(
Stann
Sim. :( lwn.net/Articles/435744
mattdm 31/03
Está disponível a partir de abril de 2011. Ufa. Veja as notas de versão do CentOS 5.6
Stefan Lasiewski
2

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

yum apagar php-cli php-comon

então tente 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.

Phil Hollenback
fonte
2

Você está correto, você precisa desinstalar os pacotes php padrão primeiro. Antes de prosseguir, lembre-se de que outros pacotes podem ter dependências específicas nas versões base. As chances são de que você ficará bem, mas esteja avisado de que talvez precise resolver outras preocupações mais tarde.

Você deve conseguir fazer isso emitindo

yum erase php-common php-cli

Seguido pelo seu

yum install php53
Scott Pack
fonte
1
  1. Eu tive que remover e php-cli, junto com algumas dependências, mas nada mais (MySQL, etc. não foram tocados).php-commonphp-dev
  2. Instalei os mesmos pacotes no sabor do PHP 5.3 com dependências e agora tudo está funcionando. phpinfoconfirma que estou executando o PHP versão 5.3.3.
  3. Eu reiniciei o Apache e o site, executando o Joomla, funciona bem.
szlevi
fonte
0

Eu tive o mesmo problema em que "yum update php" me daria erros de conflito.

A execução do "yum update" (atualizar tudo) funcionou para mim. Faça uma tentativa.

Além disso, saiba 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 o painel de controle do Plesk ou CPanel, se você o tiver instalado. Se não me engano, você teria que reinstalá-los, o que poderia ser uma dor.

Jason Coleman
fonte
2
Sim, eu tenho exatamente esse problema. Para atualizar o PHP, o yum deseja excluir o Drupal, que não é realmente uma dependência: requer que o PHP funcione, mas não se importa com a versão do PHP, pois é fonte do PHP e não um programa compilado. Alguma maneira de desinstalar o PHP5.2 e deixar o Drupal em paz?
Bart
0

Acabei de resolver esse problema após 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

Finalmente, achei que as etapas a seguir funcionam um prazer, pensei compartilhar.

INÍCIO

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 backup do php.ini e ative a versão recém-instalada

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

Faça 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 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; nesse caso, eu também precisei instalar a extensão SOAP:

yum install php-soap

Reinicie os serviços para que as alterações tenham efeito

service mysqld restart
service httpd restart

FEITO

Felicidades; Marca

ponchopilate
fonte