14.04 Aggiornamento pulito a ppa: ondrej / php da ppa: ondrej / php5-5.6


10

Ho esaminato i miei soliti aggiornamenti del pacchetto server oggi e ppa:ondrej/php5-5.6ho scoperto che è stato ammortizzato e ora dobbiamo eseguire l'aggiornamento ppa:ondrej/php.

Le istruzioni di base fornite devono eseguire:

sudo add-apt-repository ppa:ondrej/php

E poi:

sudo apt-get update
sudo apt-get upgrade --show-upgraded

Guardando il nuovo repository, i nomi non sembrano allinearsi completamente, quindi penso che dovrò fare alcune installazioni apt-get per ottenere tutti i pacchetti giusti installati. Sembra anche che i sotto-pacchetti (cioè php-gd) verranno installati per tutte le versioni di php e possano anche installare php 5.5 e php 7.0 ( /programming/37197539/an-issue-after-ppaondrej- php5-deprecation )

Quindi la mia domanda è: qual è il modo più pulito per "cambiare" ppas e ripulire i pacchetti esistenti considerando che si tratta di un server di produzione? Dovrei provare a rimuovere tutti i pacchetti installati dal PPA precedente e / o rimuovere il PPA dal mio sistema?

Non è ancora nella pagina principale di PPA, ma il messaggio di aggiornamento ha reso obsoleto a giugno 2016, quindi non è una lunga sequenza temporale per ricostruire l'immagine del nostro server.

Ho trovato questa pagina, che fornisce istruzioni per cambiare la versione di PHP che apache utilizza: https://dzone.com/articles/php-70-and-56-on-ubuntu


1
Scriverò un testo sull'argomento nel wiki del repository qui: github.com/oerdnj/deb.sury.org/wiki Ho solo bisogno di trovare un po 'di tempo libero. Tutti sono invitati a iniziare e contribuire nel frattempo :)
oerdnj,

Risposte:


12

I vecchi php5-*pacchetti sono coinstallabili con il nuovo phpX.Y-*schema, quindi la prima cosa che devi fare è installare e abilitare i nuovi pacchetti:

Apache 2.4

Devi installare nuovi libapache2-mod-phpX.Ypacchetti e quindi disabilitare il vecchio php5 e abilitare il nuovo modulo con versione, per PHP 5.6:

sudo apt-get install libapache2-mod-php5.6
sudo a2dismod php5
sudo a2enmod php5.6

NGINX / Apache 2.4 con PHP-FPM

Questo è ancora più semplice, basta installare phpX.Y-fpme modificare il percorso del socket nella configurazione del server Web /run/php/phpX.Y-fpm.socke copiare la vecchia configurazione, ad esempio per PHP 5.6:

sudo apt-get install php5.6-fpm
# now change the socket path in your nginx/apache2 configuration
# and restart the server

Se hai definito più pool FPM, devi copiare la vecchia configurazione nel nuovo percorso, sempre per PHP 5.6:

# keep the new www.conf
sudo mv /etc/php/5.6/fpm/pool.d/www.conf /etc/php/5.6/fpm/pool.d/www-5.6.conf
# copy the old configuration to the new path
sudo cp /etc/php5/fpm/pool.d/* /etc/php/5.6/fpm/pool.d/
sudo update-rc.d php5-fpm disable # or uninstall php5-fpm package
# restart PHP 5.6 FPM to read the new configuration
sudo service php5.6-fpm restart

Ora, se si desidera rimuovere i vecchi pacchetti, si potrebbe incorrere in alcuni problemi, come ci potrebbe essere pacchetti che richiedono vecchia PHP5 * nomi, si potrebbe desiderare di aggiungere ppa:ondrej/php5-compatche forniscono sottile strato di pacchetti di compatibilità quella mappa php5-<foo>per php5.6-<foo>per PHP5 principale * pacchetti:

sudo add-apt-repository ppa:ondrej/php5-compat
sudo apt-get update
sudo apt-get dist-upgrade

Provalo sicuramente prima in un ambiente non di produzione ! Il lato positivo è che questo mantiene /etc/php5intatta la vecchia configurazione , in modo da poter migrare le vecchie impostazioni.

Dopo aver aggiornato i principali pacchetti PHP, potresti voler cercare il resto dei php5-*pacchetti e installarne l'equivalente, ad es

apt-get install php-apcu # for php5-apcu
apt-get install php-memcached # for php5-memcached

Preparerò un aggiornamento al repository php5-compat, che renderà automaticamente queste mappature.

Il testo più aggiornato è sempre disponibile nei wiki PPA DEB.SURY.ORG .


1
Grazie per tutto il tuo lavoro! Abbiamo un server di gestione temporanea sul quale proverò prima tutto. Nelle tue istruzioni, potresti voler includere qualcosa sull'esecuzione dpkg --get-selections | grep phpper elencare tutti i pacchetti correnti per aiutare le persone a mappare le cose (anche se il mapping ppa sarà super utile per non doverlo fare e lasciarlo solo funzionare.) Potrebbe anche essere buono da includeresudo add-apt-repository --remove ppa:whatever/ppa5-5.6
Loren,

Buona idea con la rimozione del vecchio PPA.
oerdnj,

1
Ehi @oerdnj. Non dovrebbe essere a2dismod invece di phpdismod lì? E a2enmod invece di phpenmod?
Wojtek Naruniec,

Buona cattura, fissa.
oerdnj,

L'estensione dbase non funziona con il tuo modulo 5.6, potrei compilarlo in precedenza per la vecchia versione 5.6 ma non per il nuovo repository. Viene compilato per la vecchia versione 5.5. ma la versione 5.6 viene eseguita quindi il modulo perso. Ci sono possibilità che tu possa in qualche modo non disabilitare il vecchio 5.6 ppa?
Tebe,
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.