Jak zainstalować inną (aktualizację lub wersję) wersję PHP w wciąż obsługiwanej wersji Ubuntu?

226

Próbuję zaktualizować, aby zainstalować PHP 5.5, 5.6 lub 7.0 w Ubuntu 12.04 / 14.04 / 16.04 LTS, i mogę uzyskać tylko PHP 5.3.10 dla Ubuntu 12.04, PHP 5.5.9 dla Ubuntu 14.04 lub PHP 7.0.4 dla Ubuntu 16.04 używając oficjalnych repozytoriów (używając apt-get).

Nie jestem pewien, jak zrobić aktualizację ręczną - ponieważ potrzebuję:

  • bawić się nowymi (najstaranniejszymi) funkcjami PHP
  • zainstalować starszą wersję PHP ze względu na wsparcie w oprogramowaniu
kavisiegel
źródło
1
jeśli sudo apt-get upgrade Nie aktualizuj PHP, spróbuj sudo apt-get dist-upgrade. Do aktualizacji dystrybucji.
Moiz Kiyani,

Odpowiedzi:

292

Możesz skorzystać z PPA, aby być na bieżąco z PHP lub zainstalować poprzednią wersję PHP (np. PHP 5.6 na Ubuntu 16.04 LTS).

Najczęściej używane repozytoria pochodzą od Ondřej Surý, opiekuna Debiana PHP:

  • ppa: ondrej / phpLogo Launchpad (w przypadku wersji do wspólnej instalacji PHP 5.6 / 7.0 / 7.1 PHP 5.5 nie jest już obsługiwany)

Pakiety kompatybilne z php5:

( Kliknij tutaj, aby uzyskać instrukcje dotyczące korzystania z umów PPA. )

PPA PHP zawierały wcześniej aktualizację Apache 2.4. To już nie jest przypadek, musisz dodać osobne repozytorium Apache 2.4:

Jeśli chcesz użyć tych umów PPA, zrób to:

ppa: ondrej / phpLogo Launchpad (dla PHP 5.6 / 7.0 / 7.1)

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install php7.1   # for PHP 7.1
sudo apt-get install php7.0   # for PHP 7.0
sudo apt-get install php5.6   # for PHP 5.6

Aby przełączać się między zainstalowanymi wersjami, użyj

sudo update-alternatives --config php

Następnie musisz ustawić Apache do pracy z odpowiednią wersją:

sudo a2dismod php7.1         # unload the current version
sudo a2enmod  php5.6         # load the version you need
sudo service apache2 restart # restart webserver to apply

ppa: ondrej / php5-kompatybilLogo Launchpad (dla php5 kompatybil)

sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository ppa:ondrej/php5-compat
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install php5 # this will pull php5.6 package 

Jeśli nie masz add-apt-repositorypliku binarnego, wykonaj następujące czynności:

sudo apt-get install python-software-properties

Środki ostrożności:

PHP 5.4

Zapakowane najnowsze PHP 5.4 znajduje się teraz w osobnym PPA: ppa: ondrej / php5-oldstableLogo Launchpad

Należy pamiętać, że PHP 5.4 dobiegł końca 3 września 2015 r. I nie otrzymuje żadnych aktualizacji zabezpieczeń. Zaleca się migrację do wersji co najmniej PHP 5.6, która otrzyma zabezpieczenia zaktualizowane do 31 grudnia 2018 r .

oerdnj
źródło
5
Okazuje się, że musisz biec sudo apt-get updatepierwszy!
kavisiegel
3
do tego jest pakiet php5-cli!
matteosister
11
Po dodaniu ppa możesz: sudo apt-get dist-upgrade
matteosister
2
Po zainstalowaniu ppa, aktualizacji php i uruchomieniu php -v, informacja o wersji zaczyna się od tego komunikatu o błędzie: Nieudane ładowanie /usr/lib/php5/20090626/xdebug.so: /usr/lib/php5/20090626/xdebug.so: nie można otworzyć udostępnionego plik obiektowy: Brak takiego pliku lub katalogu Irytujące.
systemovich
3
Użyj apt-get install software-properties-commonjeśli apt-get install python-software-propertiesnie udostępnia add-apt-repositorypolecenia.
Meetai.com,
3

Pakiety PHP 5.4 zajmą trochę czasu, zanim znajdą się w systemie Ubuntu, ponieważ jest bardzo dużo sprawdzania zależności. Ubuntu 12.04 jest teraz w fazie beta, więc wątpię, aby uaktualnili go do PHP 5.4 (chociaż nie mam oficjalnej ani wewnętrznej wiedzy na ten temat) - prawdopodobnie nie pojawi się do Ubuntu 12.10 w październiku tego roku. Jeśli chcesz tego wcześniej, musisz albo znaleźć pakiet innej firmy, albo nauczyć się go budować na podstawie kodu źródłowego.

Mike Scott
źródło