opened image

Обновление/Понижение версий PHP на Ubuntu

В этой статье мы будем обновлять и понижать версии PHP на Ubuntu 20.04.

 

Как обновить и понизить версии PHP на Ubuntu 20.04.

В отличие от CentOS 7, изменение версии PHP на Ubuntu не требует ее удаления. Это связано с тем, что при добавлении PHP в свой список Ubuntu также обновляет файл альтернативных версий, о котором мы расскажем в конце статьи. Также мы обсудим метод полного удаления PHP.

Предупреждение: удаление старой версии PHP может повлиять на функциональность phpMyAdmin и других программ, требующих конкретной версии PHP.

 

Подготовка

1. Обновите списки репозиториев командой:

   apt-get update


   Это необходимо обязательно, так как в противном случае система может не найти необходимый пакет.

 

2. Установите менеджер репозиториев:

 

 apt install software-properties-common


  
   Без него не удастся добавить репозиторий PHP.

 

3. Добавьте репозиторий PHP:


 

 add-apt-repository ppa:ondrej/php


   Нажмите [ENTER], когда появится запрос. После этого повторите первый шаг. Теперь система готова к обновлению PHP.

 

 

Обновление

Для начала узнайте установленную версию PHP и модули:
1. Показать установленную версию PHP:

 

  php -v


2. Показать установленные модули для выбранной версии PHP:
  

php -m


Скопируйте этот список, чтобы знать, какие модули отсутствуют в новой версии для работы веб-сайта или программы.

 

Варианты обновления версии PHP

1. Обновление до последней версии PHP:
   Полностью удалите старую версию PHP:

 

 apt-get remove php5.6*



   Предупреждение: Эта команда также может удалить Apache2, который является частью зависимостей PHP на Ubuntu, что приведет к остановке работы веб-сайтов. Затем установите новую версию:
  
 

 apt-get install php



   Установите отсутствующие модули отдельно:

 

  apt-get install php-модуль1 php-модуль2 .....



   На момент написания последней версии PHP - 8.2. После установки проверьте:

 

 php -v


   

   1.2. Вариант использования:

   

apt upgrade php



   Но это обновляет только базовую версию без модулей. Чтобы полностью обновить версию:

 

 apt upgrade php*



   Это не сработает из-за конфликта пакетов. Устанавливайте отсутствующие модули вручную:
 

   apt-get install php-модуль1 php-модуль2 .....


 

2. Установка конкретной версии PHP:
   Удалите старую версию:

   

apt-get remove php5.6*



   Для установки конкретной версии используйте:

   

apt-get install php7.4 php7.4-название модуля1 php7.4-название модуля2...


   Где 7.4 - это версия PHP.

 

Понижение версии

Принцип аналогичен обновлению:
Удалите старую версию:

 

 apt-get remove php7.4*



   Установите новую версию:
 

   apt-get install php5.6 php5.6-название модуля1 php5.6-название модуля2...


   Где 5.6 - это версия PHP.

В сулчае если вам нужно несколько версий PHP или самый безопасный способ переключения версий PHP на нужную.
   В этом методе будет работать одна из установленных версий, если в конфигурациях самой программы не указан путь к конкретной версии PHP.

 

Для этого метода нам нужно установить сразу две версии PHP.
 

   apt-get install php5.6 && apt-get install php7.4



   Таким образом, мы установили PHP5.6 и PHP7.4.

 

Чтобы переключаться между версиями PHP, введите команду:
 

   update-alternatives --config php



   В этом списке для выбора нужной версии введите соответствующий номер (например, 1 = PHP5.6, 2 = PHP7.4 ...). Для проверки версий используйте:
 

   php -v


 

Если вы используете Apache, отключайте/включайте версии PHP также в самом Apache командами:
 

   a2dismod php5.6
 
   a2enmod php7.4



   После изменения версии PHP всегда перезапускайте Apache:
 

   systemctl restart apache2 или service apache2 restart.


 

 

 

Заключение
Знак (*) в команде означает, что она будет искать все совпадения в именах пакетов, поэтому избегайте использования:
 

   apt-get remove php*



   Это удалит не только PHP, но также phpMyAdmin и другие пакеты с именами, начинающимися на PHP.

Двойной амперсанд (&&) используется для последовательного выполнения команд:

   Command1 && Command2 и так далее.

Также предлагаем рассмотреть другие полезные статьи: