Jak obniżyć wersję z PHP 5.4 do 5.3


18

Niedawno zaktualizowałem PHP do wersji 5.4, ale wydaje się, że mi się to nie udaje, ponieważ APC z nim nie działa, jednak nie miałem wyboru, jak obniżyć wersję do 5.3, jak mogę to zrobić?

I wykonany apt-get remove php5a apt-get purge php5następnie usunąłem 5,4 repo z apt-get następnie stracony apt-get install php5, to mówi, że to było zainstalowanie 5,3, a ja ponownie uruchomiony php-fastcgi, a php5-fpmjednak gdy uruchamiam php -vmówi 5.4.

Jak mogę obniżyć wersję z 5.4 do 5.3?

Na moim serwerze działa Ubuntu 11.04.

Odpowiedzi:


11

Obniżenie PHP z 5.4 na 5.3

W procesie obniżania Ubuntu jest naprawdę bałagan. Oto skrypt, który może ci się przydać ( usuwa PHP 5.4 i instaluje 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

Gdzie dostępne wersje można sprawdzić za pomocą polecenia: apt-cache showpkg php5

Po instalacji sprawdź to za pomocą polecenia: php --version

Zachowaj ostrożność i nie instaluj żadnych innych pakietów bez określonej wersji pakietu (np. Php5-xcache), w przeciwnym razie apt-get ponownie zastąpi Twoją instancję PHP wersją 5.4!

Aby temu zapobiec, możesz przechowywać te paczki.

Przechowywanie pakietów za pomocą dpkg

Aby zatrzymać pakiety według dpkg, możesz wykonać następujące polecenie:

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

Aby zatrzymać wszystkie pakiety PHP, uruchom następujące polecenie:

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

Następujące polecenie pokaże ci status twojego pakietu php:

sudo dpkg --get-selections | grep ^php

Przechowywanie pakietów za pomocą aptitude

Możesz także przechowywać pakiety przy użyciu aptitude np .:

sudo aptitude hold php5

Unhold:

sudo aptitude unhold php5

3
W Ubuntu 13.x 5.3.10-1ubuntu3.4 już nie istnieje.
kenorb

Jak zabrałbyś się za cofanie odpowiedzi?
tolgap

Chcesz wrócić do PHP 5.4 lub odzyskać pliki konfiguracyjne? Pliki konfiguracyjne powinny być przechowywane bez zmian (nie należy usuwać osobistej konfiguracji). Jeśli chcesz wrócić do PHP 5.4, to cofnij, aby zatrzymać posiadane pakiety i ponownie zainstaluj php5, np. sudo apt-get install php5Przy ponownej instalacji lub usunięciu / instalacji.
kenorb

4

Najpierw wykonaj apt-cache showpkg php5. Tam zobaczysz wersję i inne informacje o pakiecie php5.

Aby zainstalować określoną wersję, uruchom apt-get install <package name>=<version>

W moim Ubuntu 11.10 byłoby to apt-get install php5=5.3.6-13ubuntu3.6


6
Co jeśli apt-cache showpkg php5nie wyświetla się już 5.3.x?
Kenorb

2

Miałem podobny problem.

Usunąłem repozytoria.

Musisz pamiętać, że php -vuruchamia plik wykonywalny w php-clipakiecie, więc musisz to również usunąć.

Więc wróciłem do 5.3.10:

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

Teraz powinno to pokazać pożądaną wersję:

php -v

Instaluje dla mnie najnowszą wersję 5.6.
JohnnyQ,


1

z kroków, które opisałeś, zapomniałeś apt-get update po wyczyszczeniu php5.4 i usunięciu repozytorium php5.4.

zakładając, że nie masz już repozytorium w apt źródłach, jeśli uruchomisz:

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

powinieneś wrócić do 5.3


W Ubuntu 13.x domyślnie php5 wskazuje na 5.4.x
kenorb
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.