Ich habe heute meine üblichen Serverpaket-Upgrades durchlaufen und festgestellt, dass ppa:ondrej/php5-5.6
diese abgeschrieben wurden und wir jetzt auf aktualisieren müssen ppa:ondrej/php
.
Die grundlegenden Anweisungen lauten wie folgt:
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 zu stimmen, 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 installieren ( /programming/37197539/an-issue-after-ppaondrej- PHP5-Verwertung )
Meine Frage ist also, was ist der sauberste Weg, um 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 für die PPA, aber die Upgrade-Meldung war im Juni 2016 veraltet. Daher ist es 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-ubuntu
Antworten:
Die alten
php5-*
Pakete können zusammen mit dem neuenphpX.Y-*
Schema installiert werden. Das erste, was Sie tun müssen, ist, neue Pakete zu installieren und zu 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. B. für PHP 5.6:NGINX / Apache 2.4 mit PHP-FPM
Dies ist noch einfacher. Installieren
phpX.Y-fpm
und ändern Sie einfach den Socket-Pfad in Ihrer Webserver-Konfiguration/run/php/phpX.Y-fpm.sock
und kopieren Sie die alte Konfiguration, z. B. für PHP 5.6:Wenn Sie mehr FPM-Pools definiert haben, müssen Sie die alte Konfiguration erneut in den neuen Pfad für PHP 5.6 kopieren:
Nun , wenn Sie die alten Pakete entfernen möchten, können Sie in einige Probleme laufen , da es möglicherweise Pakete sein , die alte php5 * Namen benötigen, möchten Sie vielleicht hinzufügen ,
ppa:ondrej/php5-compat
dass dünne Schicht aus Kompatibilitätspaketen bieten die Karte ,php5-<foo>
umphp5.6-<foo>
für Haupt php5 * Pakete:Versuchen Sie dies auf jeden Fall zuerst in einer nicht produktiven Umgebung! Die gute Seite ist, dass dadurch die alte Konfiguration
/etc/php5
unberührt bleibt , sodass Sie die alten Einstellungen migrieren können.Nach dem Aktualisieren der Haupt-PHP-Pakete möchten Sie möglicherweise die restlichen
php5-*
Pakete nachschlagen und deren Entsprechung installieren, zIch 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 .
quelle
dpkg --get-selections | grep php
um alle aktuellen Pakete aufzulisten, damit Benutzer die Dinge zuordnen können (obwohl die Zuordnung ppa sehr nützlich ist, wenn Sie dies nicht tun müssen und es einfach funktionieren lassen). Es könnte auch gut sein zu enthaltensudo add-apt-repository --remove ppa:whatever/ppa5-5.6