Як перемикатися між кількома версіями PHP в Ubuntu?

В деяких ситуаціях потрібно тримати декілька версій php в системі. Звісно, краще використовувати docker для окремих проектів, але іноді необхідно оптимізувати навантаження і використовувати локальне оточення для розробки.
Отже у попередніх дописах я вже розповідав, як ми можемо встановити дві версії php

Тепер навчимося перемикатися між ними.

1. Первіряємо поточну версію:

php -v

Відповідь буде приблизно така:

PHP 8.3.3-1+ubuntu22.04.1+deb.sury.org+1 (cli) (built: Feb 15 2024 18:38:52) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.3, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.3-1+ubuntu22.04.1+deb.sury.org+1, Copyright (c), by Zend Technologies

2. Дивимось усі доступні версії:

sudo update-alternatives --list php

Мій результат:

/usr/bin/php7.4
/usr/bin/php8.3

3. Змінюємо версію php:

sudo update-alternatives --set php /usr/bin/php7.4

І перевіряємо версію знову:

php -v

Що ж, ось і результат:

PHP 7.4.33 (cli) (built: Sep  2 2023 08:03:46) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies

Тепер ми можемо змінити додаткові параметри, якщо потрібно:

sudo update-alternatives --set phar /usr/bin/phar7.4
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4
sudo update-alternatives --set phpize /usr/bin/phpize7.4
sudo update-alternatives --set php-config /usr/bin/php-config7.4

Ну і не забуваємо перезавантажити сервер:

sudo service apache2 restart

Ну і подивитися яка саме версія активна можна так:

sudo update-alternatives --config php

Результат. Доречі, якщо я поствлю 0 у данному випадку, то версія знову зміниться на 8.3 :

Є 2 варіянти для альтернативи php (надає /usr/bin/php).

  Вибірк Шлях         Пріор Стан
------------------------------------------------------------
  0            /usr/bin/php8.3   83        автоматичний режим
* 1            /usr/bin/php7.4   74        ручний режим
  2            /usr/bin/php8.3   83        ручний режим

Натисніть <enter> щоб підтвердити поточний вибір[*], або наберіть номер варіанту:

Існують кейси, коли така зміня версій може призвести до конфліктів, тому існує більш дієвий варіант:

sudo a2dismod php7.4
sudo a2enmod php8.3
sudo systemctl start php8.3-fpm
sudo systemctl enable php8.3-fpm
sudo a2disconf php7.4-fpm
sudo service apache2 restart

Зупиняємо одну версію і вмикаємо іншу.

Сервер
412
02.03.2024
Leave a Comment
Comments
php Server Linux web