ВОЙТИ
    opened image

    В этой статье мы будем обновлять и понижать версии 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 и так далее.