Comment rétrograder de PHP 5.4 à 5.3

18

Récemment, j'ai mis à niveau PHP vers la version 5.4, mais il semble que j'échoue car APC ne fonctionne pas avec cela, mais cela ne m'a pas permis de revenir à la version 5.3, comment faire?

J'exécuté apt-get remove php5et apt-get purge php5puis j'ai enlevé le repo 5.4 de apt-get alors exécuté apt-get install php5, il dit qu'il installait 5.3, et je remis en marche php-fastcgiet , php5-fpmmais quand je lance php -vil dit 5.4.

Comment puis-je rétrograder de 5.4 à 5.3?

Mon serveur exécute Ubuntu 11.04.

MacMac
la source

Réponses:

11

Rétrograder PHP 5.4 à 5.3

Dans le processus de rétrogradation d'Ubuntu, c'est vraiment un gâchis. Voici le script que vous pourriez trouver utile ( il supprime PHP 5.4 et installe 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

Où les versions disponibles, vous pouvez vérifier par commande: apt-cache showpkg php5

Après l'installation, vérifiez-le par commande: php --version

Soyez prudent et n'installez aucun autre paquet sans que la version du paquet ne soit spécifiée (comme php5-xcache), sinon apt-get remplacera à nouveau votre instance PHP par 5.4!

Pour éviter cela, vous pouvez conserver ces packages.

Conservation des packages à l'aide de dpkg

Pour contenir des packages par dpkg, vous pouvez exécuter la commande suivante:

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

Pour contenir tous les packages PHP, exécutez la commande suivante:

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

La commande suivante vous montrera l'état de conservation de vos packages php:

sudo dpkg --get-selections | grep ^php

Tenir des packages en utilisant aptitude

Vous pouvez également contenir des packages en utilisant aptitude, par exemple:

sudo aptitude hold php5

Détenir:

sudo aptitude unhold php5
kenorb
la source
3
Dans Ubuntu 13.x 5.3.10-1ubuntu3.4 n'existe plus.
kenorb
Comment procéder pour annuler ce qui se trouve dans votre réponse?
tolgap
Vous voulez dire revenir à PHP 5.4 ou récupérer des fichiers de configuration? Les fichiers de configuration doivent être conservés tels quels (aucune configuration personnelle ne doit être supprimée). Si vous souhaitez revenir à PHP 5.4, annulez par pour supprimer les paquets que vous détenez et réinstallez php5, par exemple sudo apt-get install php5avec réinstaller ou supprimer / installer.
kenorb
4

Exécutez d'abord apt-cache showpkg php5. Vous y verrez la version et d'autres informations sur le paquet php5.

Pour installer une version spécifique, exécutez apt-get install <package name>=<version>

Dans mon Ubuntu 11.10, ce serait apt-get install php5=5.3.6-13ubuntu3.6

Luís Bianchin
la source
6
Et si apt-cache showpkg php5ne s'affiche plus 5.3.x?
kenorb
2

J'avais un problème similaire.

J'ai supprimé les référentiels.

Vous devez vous rappeler que php -vexécute l'exécutable dans le php-clipackage, vous devez donc également supprimer cela.

J'ai donc fait ce qui suit pour revenir à 5.3.10:

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

Maintenant, cela devrait montrer la version souhaitée:

php -v
Danois javed
la source
Il installe la dernière version 5.6 pour moi.
JohnnyQ
2

Peut-être que ce guide vous aidera: Comment rétrograder un paquet dans Ubuntu

Donc, pour télécharger et installer n'importe quel package de n'importe quelle version disponible, vous devez le faire:

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

des étapes que vous avez décrites, vous avez oublié de mettre à jour apt-get après avoir purgé php5.4 et supprimé le dépôt php5.4.

en supposant que vous n'avez plus le dépôt dans les sources apt, si vous exécutez:

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

vous devriez être de retour sur 5.3

nathwill
la source
Dans Ubuntu 13.x, par défaut, php5 pointe vers 5.4.x
kenorb