Come installo PHP 5.3 su CentOS?


9

Devo installare PHP 5.3 sul mio server CentOS. In tal caso yum install php, il repository di base installa 5.1.6 che è troppo vecchio per le applicazioni che devo installare. Quindi ho cercato di utilizzare il repository IUS , seguendo le istruzioni ufficiali di 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. Ora lo faccio semplicemente yum install php53, ecc. Per tutto ciò di cui ho bisogno ... ma ottengo questo errore:

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

Non ho idea di come risolverlo. Penso di dover eliminare i pacchetti di base. Tuttavia, come nuovo di Linux, non so come farlo.

Risposte:


8

Aggiornamento : Apparentemente RHEL 5.6 include PHP 5.3 , quindi presto verrà mostrato nativamente per 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

Il problema qui è che i pacchetti che stai installando hanno un nome diverso (php53 invece di php), ma tentano di installare gli stessi file ... da qui i conflitti. Questo non è necessariamente il modo migliore per mettere insieme i pacchetti, ma non so se ci sono pacchetti migliori disponibili, quindi lo ignoreremo.

Per rimuovere i pacchetti attualmente installati:

# yum remove php-cli php-common php

Quindi, in generale, yum remove <list of packages>rimuoverà i pacchetti. E, naturalmente, yum list installedper visualizzare un elenco di pacchetti installati (o rpm -qa).


hm yeah rimuovere potrebbe essere meglio che cancellare, poiché cancella rimuove anche le dipendenze. Prova prima a rimuovere, se fallisce prova a cancellare.
Phil Hollenback,

2
removee erasesono sinonimi, secondo la yumpagina man di CentOS e delle recenti versioni di Fedora.
Larks

Grazie! Ha funzionato, anche se non ho dovuto rimuovere php ma i primi due in quella lista. Per installare php 5.3 ho solo bisogno di installare php53 giusto? Ci sono molti pacchetti elencati ma penso che sia l'unico importante giusto?
fivelitresofsoda,

Sicuramente sinonimi. Guarda yumcommands.pyse hai dei dubbi. :)
mattdm,

Probabilmente. Solo tu sapresti se la tua applicazione richiede uno dei moduli aggiuntivi (ad esempio, supporto xml, supporto ldap, database e così via).
Larks

4

La risposta a questa domanda è cambiata, a partire dal 13 gennaio 2011. Red Hat ha rilasciato la versione 5.6 e questo include PHP versione 5.3 come pacchetto separato ( php53).

Devi rimuovere il vecchio PHP e quindi installare PHP 5.3 separatamente. Sembra simile al tuo pacchetto dal repository IUS, ma ora è ufficiale.

Per ulteriori informazioni, consultare le note di rilascio di Red Hat .

Si noti che questo è appena uscito da Red Hat e ci sarà un po 'di ritardo prima che sia disponibile in CentOS. L'aggiornamento RHEL 5.6 sembra relativamente minore, quindi non dovrei aspettarmi che sia troppo lungo.


Sì. e 4 mesi dopo. non è ancora in pronti contro termine. :(
Stann


È disponibile da aprile 2011. Accidenti. Vedi le note di rilascio di CentOS 5.6
Stefan Lasiewski,

2

Prova a rimuovere le vecchie versioni dei pacchetti prima di installare quelle nuove:

yum cancella php-cli php-comon

quindi prova l'installazione di yum.

Attenzione : guarda l'elenco delle modifiche che yum vuole apportare prima di impegnarti, per assicurarti di non rimuovere altri pacchetti importanti.


2

Hai ragione, devi prima disinstallare i pacchetti php predefiniti. Prima di andare avanti, tieni presente che altri pacchetti potrebbero avere dipendenze specifiche dalle versioni di base. Probabilmente, starai bene, ma ti avviserai che potresti dover affrontare altre preoccupazioni in seguito.

Dovresti essere in grado di farlo emettendo

yum erase php-common php-cli

Seguito dal tuo

yum install php53


1
  1. Ho dovuto rimuovere php-cli, php-commone php-devinsieme ad alcune dipendenze ma nient'altro (MySQL, ecc. Non sono stati toccati).
  2. Ho installato gli stessi pacchetti in PHP 5.3 con dipendenze e ora tutto è attivo e funzionante. phpinfoconferma che sto eseguendo la versione 5.3.3 di PHP.
  3. Ho riavviato Apache e il sito, con Joomla, funziona perfettamente.

0

Ho avuto lo stesso problema per cui "yum update php" mi avrebbe dato errori di conflitto.

L'esecuzione di "yum update" (aggiorna tutto) ha funzionato per me. Provalo.

Inoltre, tieni presente che se esegui "yum erase php" o "yum remove php", potrebbe rimuovere tutti i pacchetti che dipendono da PHP ... che probabilmente includerebbe il tuo pannello di controllo Plesk o CPanel se lo hai installato. Se non sbaglio, dovresti reinstallare quelli, il che potrebbe essere una seccatura.


2
Sì, ho esattamente quel problema. Per aggiornare PHP, yum vuole eliminare Drupal, che non è in realtà una dipendenza: richiede PHP per funzionare, ma non gli importa quale versione di PHP, in quanto è fonte PHP e non un programma compilato. Un modo per disinstallare PHP5.2 e lasciarlo in pace con Drupal?
Bart

0

Ho appena risolto questo problema dopo molte ricerche, ovvero l'installazione di PHP 5.3.10 su CentOS 5.3. Avevo provato a usare diversi repository, incluso il repository Atomicorp , ma questo ha rotto il gioco

Alla fine ho scoperto che i seguenti passaggi funzionano a meraviglia, ho pensato di condividere.

INIZIO

Scarica e abilita i repository REMI ed 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

Cambia "enabled = 0" in "enabled = 1" sotto l'intestazione "[remi]"

Devi rimuovere php-sqlite2 o otterrai un errore di dipendenza

yum remove php-sqlite2

Aggiorna PHP all'ultima versione 5.3.10 in questo caso

yum update php

Eseguire il backup di php.ini e abilitare la versione appena installata

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

Eseguire il backup di my.cnf e abilitare la versione appena installata

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

Installa l'ultima versione dell'estensione 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

Potrebbe anche essere necessario installare le estensioni php, in questo caso ho dovuto installare anche l'estensione SOAP:

yum install php-soap

Riavviare i servizi per rendere effettive le modifiche

service mysqld restart
service httpd restart

FATTO

Saluti; marchio

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.