opened image

Оновлення/Пониження версії php на Ubuntu

 

У цій статті ми будемо оновлювати та понижати версії php на системі Ubuntu 20.04.

 

Як оновити і понизити версії PHP на Ubuntu 20.04.

На відміну від системи CentOS 7, щоб змінити версію php її необов’язково видаляти.
Це зв’язано з тим, що в Ubuntu при додаванні php у свій список система також оновлює файл альтернативних версій, про які ми також згадаємо у кінці статті. Також тут буде метод з видаленням php повністю.
!!Попередження: видалення старої версії php може спричинити несправність phpmyadmin та інших програм, які потребують конкретну версію php.  

 

Підготовка
1. Потрібно оновити списки репозиторіїв, це робиться командою.

apt-get update


Оновлювати обов’язково, тому що якщо цього не зробити, то система може не знайти пакет, який потрібно встановити

2. Встановлення менеджеру репозиторіїв.

apt install software-properties-common


Без нього не вийде додати репозиторій з php.

3. Додаємо сам репозиторій

add-apt-repository ppa:ondrej/php


Воно потребує натиснути [ENTER], тиснемо його.
Після чого знову повторюємо перший пункт.
Готово ми підготували систему до оновлення, php.

 

Оновлення
Для початку нам потрібно дізнатися яка у нас встановлена версія та модулі.
1. 

php -v     

Показує встановлену версію php

2.

 php -m 

     

Показує встановлені модулі у встановленої/вибраної версії php.

Ви побачите подібний список, далі скопіюйте його -це потрібно, щоб знати яких модулів не вистачає у новій версії для роботи сайту або програми.

 

Варіанти оновлення версії php.

1. Оновлення до останньої версії php.
Для цього потрібно видалити повністю стару версію php

apt-get remove php5.6*  


Ця команда повністю видалить php 5.6 та її модулі.


!! Попередження:  цей метод також може видалити apache2, тому що він входить у список залежностей php на Ubuntu, через що сайти перестануть повністю робити.
Після чого потрібно встановити нову версію

apt-get install php


Ця команда встановить останню версію php з базовими модулями.
Тому потрібно встановлювати модулі, яких не вистачає окремо.

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


На момент написання цього тексту остання версія php 8.2

Після встановлення перевірте чи все встановилось коректно командою 

php -v

Як ми бачимо у нас все встановилось правильно.

1.2.Також можна скористатися командою

apt upgrade php 


але це оновить тільки базову версію без модулів.


Оновити повністю версію командою

apt upgrade php* 


не вийде, тому що буде помилка з конфліктом пакетів через те, що деяких модулів немає на новій версії php або вони конфліктують між собою.
Тому потрібно вручну ставити модулі яких не вистачає. 
 

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

2. Встановлення конкретної версії php.
Для цього потрібно видалити стару версію php.

apt-get remove php5.6* 


Ця команда видалить повністю версію php та її модулі.

Щоб встановити конкретну версію потрібно ввести команду

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.
Для перевірки версій використовуйте команду 

php -v

Якщо Ви використовуєте apache,  то також потрібно вимикати версії php в самому apache командою

a2dismod php5.6


та вмикати

a2enmod php7.4


Після зміни версії php завжди потрібно перезапускати apache, щоб зміни прийнялися.
systemctl restart apache2 або service apache2 restart.

Готово тепер ми змінили версію php на потрібну нам.

Зноски
Знак ( * ) в команді значить що команда буде шукати всі співпадіння в назві пакетів через що не рекомендується використовувати команду

apt-get remove php* 

,
тому що це видалить не тільки php, а ще й phpmyadmin та інші пакети назви яких розпочинаються на php.
Знаки && потрібні, щоб виконувати команди послідовно одна за другою.
Команда1 &&  команда 2 і т.д.

 

Також пропонуємо розглянути інші корисні статті: