GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso aggiornare all'ultima versione di PHP in CentOS con yum?

Soluzione 1:

Ho seguito le istruzioni di Install Apache/PHP 5.4.10 su Fedora 17/16, CentOS/RHEL 6.3/5.8 con una leggera modifica. Ci sono voluti forse 10 minuti. I miei comandi esatti sono mostrati di seguito. Si noti che il primo comando doveva essere modificato rispetto a quanto mostrato nell'articolo. La modifica era da epel-release-6-7.noarch.rpm a epel-release-6-8.noarch.rpm .

  1. Come aggiungere un repository che fornisce PHP 5.4 in 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
    
  2. Questo può sostituire perfettamente l'attuale versione PHP in CentOS? Per me i seguenti comandi hanno funzionato e nessuna delle mie pagine Web PHP esistenti si è rotta. Il tuo chilometraggio può variare.

    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
    
  3. Come posso tornare al repository ufficiale quando supporta PHP5.4? Non ho testato i comandi per rimuovere e reinstallare PHP dai repository CentOS, ma dovrebbero funzionare.

    # 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
    
  4. Ci sarà la possibilità di violare i moduli PHP che [sic] attualmente utilizzo? Sì. Utilizzando una versione recente di CentOS (6.2?) Con Zend installato utilizzando il programma di installazione di Zend, l'aggiornamento di cui sopra ha rotto Zend.

Tutti i comandi precedenti sono stati eseguiti come root . La migliore pratica è accedere come utente non privilegiato e utilizzare sudo . (Questa è una VM di sviluppo con uno snapshot corrente...)

Inoltre, NON abilitare il repository Remi per impostazione predefinita:in passato sono stato intelligente e l'ho abilitato per impostazione predefinita e le cose si sono guastate, anche con la priorità del repository.

Soluzione 2:

Un miglioramento rispetto all'altra risposta Webtatic:

1 . Usando la guida su http://www.webtatic.com/packages/php54/:

rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm

2 . Devi prima vedere quali pacchetti installati esistenti devono essere sostituiti, puoi farlo usando yum shell per combinare la rimozione di php-common e l'installazione di php54w-common in una transazione (quindi le dipendenze condivise non vengono rimosse)

yum shell
> remove php-common
> install php54w-common
> run
…
Is this ok [y/N]: n

Non dire "y" ai risultati, ma prendi nota di tutti i pacchetti menzionati in "Rimozione per dipendenze", ad es.

Removing for dependencies:
 php
 php-cli
 php-pear
 php-pecl-memcache
 php-mysql

Se ci sono altri pacchetti oltre a php* in questo elenco allora non puoi passare senza problemi a Webtatic PHP 5.4, ma dovrai cercare delle alternative. Webtatic ha pacchetti sostitutivi per tutti i pacchetti php di base (vedere i pacchetti elencati nella pagina collegata a in 1. per conferma), quindi non dovrebbero esserci problemi, a meno che non si utilizzino altri repository di terze parti che hanno pacchetti installati dipendenti dalla versione specifica di php installato.

Per il resto dell'installazione (sempre in yum shell), basta rimuovere questi pacchetti e installare le loro controparti php54w-*:

> remove php-common php php-cli php-pear php-pecl-memcache php-mysql
> install php54w-common php54w php54w-cli php54w-pear php54w-pecl-memcache php54w-mysql
> run
…
Is this ok [y/N]: y

Dovresti quindi vedere solo i pacchetti che hai impostato per essere rimossi e installati nell'elenco e puoi confermare l'installazione per passare. Tutti i servizi attualmente in esecuzione con php caricato dovranno essere riavviati, ad esempio httpd o php-fpm.

Poiché questo è "senza soluzione di continuità", qualsiasi modifica del software che si verifica mentre gli utenti sono in grado di accedere al sito Web dovrebbe avere le conseguenze pienamente comprese. Le librerie condivise rimosse e aggiunte quando un processo non le ha già caricate potrebbero potenzialmente essere caricate mentre la libreria condivisa non è presente. È meglio eseguire aggiornamenti software come questo offline e, preferibilmente, testarli prima su un computer non di produzione per verificare che il processo funzioni come previsto.

3 . Per passare a un ipotetico pacchetto php54 di base CentOS (CentOS 5 utilizzava il prefisso php53), è sufficiente eseguire i passaggi precedenti sostituendo la rimozione di php con la rimozione di php54w e l'installazione di php54w con l'installazione di php54, ad esempio

yum shell
> remove php54w-common
> install php54-common
> run
…
Is this ok [y/N]: n
…
> remove php54w-common php54w php54w-cli php54w-pear php54w-pecl-memcache php54w-mysql
> install php54-common php54 php54-cli php54-pear php54-pecl-memcache php54-mysql
> run
Is this ok [y/N]: y

Tuttavia, per quanto riguarda il passaggio all'ipotetica base php54, probabilmente non ci saranno alternative per alcuni pacchetti (ad esempio non c'era l'estensione php53-pecl-memcache in CentOS 5) e Webtatic ha pacchetti che non sono disponibili nella base CentOS (ad esempio php54w -pecl-zendopcache). Se mancano, di solito non hai altra scelta che usare pecl direttamente per installarli.

4 . Qualsiasi aggiornamento PHP può introdurre bug e i siti web dovrebbero essere testati nuovamente. Questo non è specifico di Webtatic, ma l'idea generale che le nuove funzionalità introducano nuovi bug.

A differenza del repository di Remi nella risposta accettata, il repository Webtatic EL6 non utilizza mai gli stessi nomi di pacchetto dei repository di base CentOS, quindi non sovrascriverà l'installazione/l'aggiornamento dei pacchetti a cui non si intende passare e come tale è abilitato per impostazione predefinita. /P>

Disclaimer:sono il proprietario/manutentore di Webtatic


Linux
  1. Aggiorna la versione PHP alla 7.0 in CentOS 6/7

  2. Aggiorna la versione PHP a 5.5 in CentOS 6

  3. Aggiorna la versione PHP a 5.6 in Centos 6

  4. Come aggiornare Fedora Linux all'ultima versione

  5. Come reinstallare l'ultima versione di cmake?

Come aggiornare Alpine Linux all'ultima versione

Come installare PHP 7.4 su CentOS 8

Come aggiornare il kernel su CentOS 8.0

Come installare l'ultima versione di LibreOffice su CentOS 8

Come modificare la versione PHP

Come controllare la versione PHP su Linux