So führen Sie ein Downgrade von PHP 5.4 auf 5.3 durch

18

Kürzlich habe ich PHP auf 5.4 aktualisiert, aber es scheint auf mir zu scheitern, weil APC nicht damit arbeitet, aber dies gab mir keine andere Wahl, als auf 5.3 herunterzustufen. Wie kann ich das tun?

Ich ausgeführt apt-get remove php5und apt-get purge php5dann entfernte ich die 5.4 Repo von apt-get dann ausgeführt apt-get install php5, er sagt , es 5.3 anbrachte, und ich neu gestartet php-fastcgiund php5-fpmaber wenn ich laufe php -ves sagt , 5.4.

Wie kann ich ein Downgrade von 5.4 auf 5.3 durchführen?

Auf meinem Server läuft Ubuntu 11.04.

MacMac
quelle

Antworten:

11

Downgrade von PHP 5.4 auf 5.3

In Ubuntu ist ein Downgrade-Prozess ein echtes Chaos. Hier ist das Skript, das Sie nützlich finden könnten ( es entfernt PHP 5.4 und installiert PHP 5.3 ):

sudo apt-get remove --purge `dpkg -l | grep php | grep -w 5.4 | awk '{print $2}' | xargs`
sudo apt-get install php5=5.3.10-1ubuntu3.4 php5-cli=5.3.10-1ubuntu3.4 php5-common=5.3.10-1ubuntu3.4 libapache2-mod-php5=5.3.10-1ubuntu3.4
sudo apt-get install php5=5.3.10-1ubuntu3.4 php5-cli=5.3.10-1ubuntu3.4 php5-common=5.3.10-1ubuntu3.4 libapache2-mod-php5=5.3.10-1ubuntu3.4
sudo apt-get install php-pear=5.3.10-1ubuntu3.4 php5-curl=5.3.10-1ubuntu3.4 php5-gd=5.3.10-1ubuntu3.4 php5-intl=5.3.10-1ubuntu3.4 php5-mysql=5.3.10-1ubuntu3.4 php5-pspell=5.3.10-1ubuntu3.4 php5-recode=5.3.10-1ubuntu3.4 php5-snmp=5.3.10-1ubuntu3.4 php5-sqlite=5.3.10-1ubuntu3.4 php5-tidy=5.3.10-1ubuntu3.4 php5-xmlrpc=5.3.10-1ubuntu3.4 php5-xsl=5.3.10-1ubuntu3.4

Wo die verfügbaren Versionen Sie per Befehl überprüfen können: apt-cache showpkg php5

Überprüfen Sie es nach der Installation per Befehl: php --version

Bitte seien Sie vorsichtig und installieren Sie keine anderen Pakete ohne die angegebene Paketversion (wie php5-xcache). Andernfalls ersetzt apt-get Ihre PHP-Instanz erneut durch 5.4!

Um dies zu verhindern, können Sie diese Pakete zurückhalten.

Halten von Paketen mit dpkg

Um Pakete von dpkg zurückzuhalten, können Sie den folgenden Befehl ausführen:

echo "php5 hold" | sudo dpkg --set-selections

Führen Sie den folgenden Befehl aus, um alle PHP-Pakete zu speichern:

dpkg --get-selections | grep ^php5 | sed s/install/hold/g | sudo dpkg --set-selections

Der folgende Befehl zeigt Ihnen den Status Ihrer PHP-Pakete:

sudo dpkg --get-selections | grep ^php

Halten von Paketen mit aptitude

Sie können Pakete auch mit aptitude speichern, z.

sudo aptitude hold php5

Unhold:

sudo aptitude unhold php5
Kenorb
quelle
3
In Ubuntu 13.x 5.3.10-1ubuntu3.4 existiert nicht mehr.
Kenorb
Wie würden Sie rückgängig machen, was in Ihrer Antwort steht?
Tolgap
Sie meinen, zurück zu PHP 5.4 zu gehen oder Konfigurationsdateien wiederherzustellen? Konfigurationsdateien sollten so bleiben, wie sie sind (es sollte keine persönliche Konfiguration entfernt werden). Wenn Sie zu PHP 5.4 zurückkehren möchten, machen Sie dies rückgängig, indem Sie die in Ihrem Besitz befindlichen Pakete aufheben und php5 erneut installieren, z. B. sudo apt-get install php5durch Neuinstallation oder Entfernen / Installieren.
Kenorb
4

Zuerst ausführen apt-cache showpkg php5. Dort sehen Sie Versions- und weitere Informationen zum Paket php5.

Um eine bestimmte Version zu installieren, führen Sie apt-get install <package name>=<version>

In meinem Ubuntu 11.10 wäre es apt-get install php5=5.3.6-13ubuntu3.6

Luís Bianchin
quelle
6
Was ist, wenn apt-cache showpkg php55.3.x nicht mehr angezeigt wird?
Kenorb
2

Ich hatte ein ähnliches Problem.

Ich habe die Repositories entfernt.

Sie müssen sich daran erinnern, dass php -vdie ausführbare Datei im php-cliPaket ausgeführt wird, sodass Sie diese ebenfalls entfernen müssen.

Also habe ich Folgendes getan, um zu 5.3.10 zurückzukehren:

sudo apt-get remove php5-cli php5 php5-common
sudo apt-get install php5 php5-mysql php5-curl

Dies sollte nun die gewünschte Version anzeigen:

php -v
Danish Javed
quelle
Es installiert die neueste Version 5.6 für mich.
JohnnyQ
2

Vielleicht hilft Ihnen diese Anleitung: Wie Sie ein Paket in Ubuntu downgraden

Um also ein beliebiges Paket einer verfügbaren Version herunterzuladen und zu installieren, müssen Sie dies tun:

sudo apt-get install Package=Version
rɑːdʒɑ
quelle
1

Von den Schritten, die Sie beschrieben haben, haben Sie vergessen, apt-get zu aktualisieren, nachdem Sie php5.4 gelöscht und das php5.4-Repo entfernt haben.

vorausgesetzt, Sie haben das Repo nicht mehr in Apt-Quellen, wenn Sie Folgendes ausführen:

apt-get remove --purge php5 && apt-get update && apt-get install php5

Sie sollten wieder auf 5.3 sein

nathwill
quelle
In Ubuntu 13.x zeigt php5 standardmäßig auf 5.4.x
Kenorb