it-swarm.com.de

14.04 Führen Sie ein sauberes Upgrade auf ppa: ondrej / php von ppa: ondrej / php5-5.6 durch

Ich habe heute meine üblichen Server-Paket-Upgrades durchgearbeitet und festgestellt, dass ppa:ondrej/php5-5.6 abgeschrieben wurde und wir jetzt ein Upgrade auf ppa:ondrej/php durchführen müssen.

Die grundlegenden Anweisungen lauten:

Sudo add-apt-repository ppa:ondrej/php

Und dann:

Sudo apt-get update
Sudo apt-get upgrade --show-upgraded

Wenn ich mir das neue Repository anschaue, scheinen die Namen nicht vollständig übereinzustimmen, daher denke ich, dass ich einige apt-get-Installationen durchführen muss, um alle richtigen Pakete zu installieren. Es scheint auch, dass die Unterpakete (dh PHP-Gd) für alle PHP-Versionen installiert werden und möglicherweise auch PHP 5.5 und PHP 7.0 ( https://stackoverflow.com/questions/37197539/an-issue- after-ppaondrej-php5-deprecation )

Also meine Frage ist, was ist die sauberste Möglichkeit, ppas zu "wechseln" und die vorhandenen Pakete zu bereinigen, wenn man bedenkt, dass dies ein Produktionsserver ist? Sollte ich versuchen, alle von der vorherigen PPA installierten Pakete zu entfernen und/oder die PPA von meinem System zu entfernen?

Es befindet sich noch nicht auf der Hauptseite des PPA, aber die Upgrade-Meldung wurde im Juni 2016 als veraltet eingestuft. Es ist also keine sehr lange Zeitspanne, um unser Server-Image neu zu erstellen.

Ich habe diese Seite gefunden, die Anweisungen zum Auswechseln der von Apache verwendeten PHP -Version enthält: https://dzone.com/articles/php-70-and-56-on-ubunt

10
Loren

Die alten php5-*-Pakete können zusammen mit dem neuen phpX.Y-*-Schema installiert werden. Sie müssen also zunächst neue Pakete installieren und aktivieren:

Apache 2.4

Sie müssen neue libapache2-mod-phpX.Y-Pakete installieren und dann das alte PHP5 deaktivieren und das neue versionierte Modul aktivieren, z. für PHP 5.6:

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

NGINX/Apache 2.4 mit PHP-FPM

Dies ist noch einfacher. Installieren Sie einfach phpX.Y-fpm und ändern Sie den Socket-Pfad in Ihrer Webserver-Konfiguration in /run/php/phpX.Y-fpm.sock und kopieren Sie die alte Konfiguration, z. für PHP 5.6:

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

Wenn Sie mehr FPM-Pools definiert haben, müssen Sie die alte Konfiguration erneut für PHP 5.6 in den neuen Pfad kopieren:

# 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

Wenn Sie nun die alten Pakete entfernen möchten, treten möglicherweise Probleme auf, da möglicherweise Pakete vorhanden sind, die alte PHP5 * -Namen erfordern. Fügen Sie möglicherweise ppa:ondrej/php5-compat hinzu, der eine dünne Schicht von Kompatibilitätspaketen enthält, die php5-<foo> zu php5.6-<foo> für das Haupt-PHP5 * zuordnen. Pakete:

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

Versuchen Sie dies auf jeden Fall zuerst in einer Nicht-Produktionsumgebung ! Die gute Seite ist, dass dadurch die alte Konfiguration in /etc/php5 nicht verändert wird, sodass Sie die alten Einstellungen migrieren können.

Nach dem Aktualisieren der PHP Hauptpakete möchten Sie möglicherweise den Rest der php5-*-Pakete nachschlagen und deren Entsprechung installieren, z.

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

Ich werde ein Update für PHP5-kompatibles Repo vorbereiten, das diese Zuordnungen automatisch vornimmt.

Den aktuelleren Text finden Sie immer in den DEB.SURY.ORG PPA Wikis .

12
oerdnj