Как установить другую (обновленную или пониженную) версию PHP во все еще поддерживаемой версии Ubuntu?


226

Я пытаюсь обновить, чтобы установить PHP 5.5, 5.6 или 7.0 в Ubuntu 12.04 / 14.04 / 16.04 LTS, и я могу получить только PHP 5.3.10 для Ubuntu 12.04, PHP 5.5.9 для Ubuntu 14.04 или PHP 7.0.4 для Ubuntu 16.04 используя официальные репозитории (используя apt-get).

Я не совсем уверен, как сделать обновление вручную - как мне нужно:

  • поиграть с новыми (est) возможностями PHP
  • установить более старую версию PHP за счет поддержки в программном обеспечении

1
Если sudo apt-get upgrade Не обновляйте PHP, попробуйте sudo apt-get dist-upgrade. Для обновления дистрибутива.
Моиз Кияни

Ответы:


292

Вы можете использовать PPA, чтобы быть в курсе последних изменений PHP или установить предыдущую версию PHP (например, PHP 5.6 в Ubuntu 16.04 LTS).

Наиболее часто используемые репозитории исходят от Ондржея Сури, сопровождающего Debian PHP:

  • ppa: ondrej / phpЛоготип панели запуска (для совместно устанавливаемых версий PHP 5.6 / 7.0 / 7.1 PHP 5.5 больше не поддерживается)

Компат-пакеты php5:

  • ppa: ondrej / php5-compatЛоготип панели запуска (для фиктивного, php5чтобы удовлетворить зависимости в старых пакетах)

( Нажмите здесь для получения инструкций по использованию PPA. )

PHP PPA ранее содержал обновление Apache 2.4. Это больше не так, вам нужно добавить отдельный репозиторий Apache 2.4:

Если вы хотите использовать эти PPA, сделайте следующее:

ppa: ondrej / phpЛоготип панели запуска (для 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

Для переключения между установленными версиями используйте

sudo update-alternatives --config php

Затем вы должны настроить Apache для работы с правильной версией:

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-compatЛоготип панели запуска (для php5 compat)

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 

Если у вас нет add-apt-repositoryбинарного файла, сделайте следующее:

sudo apt-get install python-software-properties

Меры предосторожности:

PHP 5.4

Предварительно упакованный последний PHP 5.4 теперь находится в отдельном PPA : ppa: ondrej / php5-oldstableЛоготип панели запуска

Обратите внимание, что PHP 5.4 завершил свою работу 3 сентября 2015 года и не получает никаких обновлений безопасности. Рекомендуется перейти по крайней мере на PHP 5.6, который получит обновление безопасности до 31 декабря 2018 года .


5
Оказывается, ты должен бежать sudo apt-get updateпервым!
kavisiegel

3
для этого есть пакет php5-cli!
matteosister

11
После добавления ppa вы можете выполнить: sudo apt-get dist-upgrade
matteosister

2
После установки ppa, обновления php и запуска php -vинформация о версии начинается с этого сообщения об ошибке: Не удалось загрузить /usr/lib/php5/20090626/xdebug.so: /usr/lib/php5/20090626/xdebug.so: не удается открыть общий доступ объектный файл: нет такого файла или каталога раздражает.
Системович

3
Используйте, apt-get install software-properties-commonесли apt-get install python-software-propertiesне предоставляет add-apt-repositoryкоманду.
Meetai.com

3

Пакетам PHP 5.4 потребуется некоторое время, чтобы попасть в Ubuntu, так как нужно выполнить очень много проверок зависимостей. Ubuntu 12.04 сейчас находится в бета-версии, поэтому я сомневаюсь, что они обновят его до PHP 5.4 (хотя у меня нет официальных или внутренних знаний об этом) - он, вероятно, не появится до Ubuntu 12.10 в октябре этого года. Если вы хотите это раньше, вам придется либо найти сторонний пакет, либо научиться собирать его самостоятельно из исходного кода.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.