- How to change PHP version in Ubuntu 20.04 console?
- 6 Answers 6
- Установка нескольких версий PHP на Ubuntu 18.04.3 LTS
- Установка версии PHP, которая идет по умолчанию
- Установка другой версии PHP
- Переключение между версиями PHP
- Как переключаться между несколькими версиями PHP в Ubuntu
- Переключение между несколькими версиями PHP
- Переключитесь с PHP7.x на PHP5.x
- Переключитесь с PHP5.x на PHP7.x
How to change PHP version in Ubuntu 20.04 console?
How can I change the PHP version used in console on Ubuntu 20.04? I have all versions in the /etc/php folder, but I don’t know where the configuration for the command line version is.
6 Answers 6
You can do this with update-alternatives . If you would like to do this interactively, you can do this:
sudo update-alternatives --config php
If you like to specifically choose the PHP version (via an alias or whatnot), you can do this:
sudo update-alternatives --set php /usr/bin/php7.4
Of course, be sure to change php7.4 to the actual version you want to switch between.
Ok but it shows me this message: There is only one alternative in link group php (providing /usr/bin/php): /usr/bin/php7.2 Nothing to configure . I can see the usr/bin folder and theare really only php 7.2. Dont know what need to add there.
Please use following command which will ask you to select a number against your required PHP version
sudo update-alternatives --config php
Then select your choice and press enter.
Ok but it shows me this message: There is only one alternative in link group php (providing /usr/bin/php): /usr/bin/php7.2 Nothing to configure . I can see the usr/bin folder and theare really only php 7.2. Dont know what need to add there.
@Čamo it means you don’t have multiple versions installed. You can install other versions before switch to other version.
Did you install the cli? Do this first:
$ sudo apt install php7.4-cli
After that, you should see it listed under update-alternatives
$ update-alternatives --list php /usr/bin/php7.4 /usr/bin/php8.1
Thank you this answer work great for me, of course now in 2023 I’ve adapt it for PHP 8.2: apt install php8.2-cli And now when I do a «php -v» I get the following answer: PHP 8.2.3 (cli) (built: Feb 14 2023 16:57:30) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.3, Copyright (c) Zend Technologies with Zend OPcache v8.2.3, Copyright (c), by Zend Technologies Thank you!
i just try in Ubuntu20.04 and it works.
// to show the list php installed: sudo update-alternatives —config php
// choose number version that you wanna switch screenshoot switch php version in ubtuntu
alias setphp="sudo update-alternatives --config php;sudo update-alternatives --config phar; update-alternatives --config phar.phar; a2dismod php*.*;systemctl restart apache2"
Put the above alias in ~/.bashrc :
Then just run this command:
a2enmod php # like, a2enmod php7.4
Now you can run the command setphp from your terminal.
There are two methods to switch php versions on the command line ubuntu.
Run each command one by one and input the number of the php version you want to change.
sudo update-alternatives --config php sudo update-alternatives --config phar sudo update-alternatives --config phar.phar sudo service apache2 restart
If you want to change PHP 5.6 to 7.4 just run the below codes.
sudo a2dismod php5.6 sudo a2enmod php7.4 sudo service apache2 restart
If you want to change from PHP 7.4 to 5.6 run the below codes.
sudo a2dismod php7.4 sudo a2enmod php5.6 sudo service apache2 restart
Установка нескольких версий PHP на Ubuntu 18.04.3 LTS
В данной статье мы установим несколько версий PHP на наш сервер Ubuntu 18.04.3 LTS и рассмотрим команды для переключения между версиями.
Начнем с обновления пакетов:
sudo apt-get update sudo apt-get upgrade
Установка версии PHP, которая идет по умолчанию
PHP 7.2.19-0ubuntu0.18.04.2 (cli) (built: Aug 12 2019 19:34:28) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.19-0ubuntu0.18.04.2, Copyright (c) 1999-2018, by Zend Technologies
В процессе установки также были поставлены следующие пакеты:
Пакет | Описание |
---|---|
php7.2 | server-side, HTML-embedded scripting language (metapackage) |
php7.2-cli | command-line interpreter for the PHP scripting language |
php7.2-common | documentation, examples and common module for PHP |
php7.2-json | JSON module for PHP |
php7.2-opcache | Zend OpCache module for PHP |
php7.2-readline | readline module for PHP |
Установим наиболее распространенные модули для PHP :
sudo apt-get install php-pear php7.2-dev php7.2-fpm php7.2-curl php7.2-gd php7.2-mbstring php7.2-mysql php7.2-xml php7.2-zip libapache2-mod-php7.2
Пакет | Описание |
---|---|
libapache2-mod-php7.2 | server-side, HTML-embedded scripting language (Apache 2 module) |
php-pear | PEAR Base System |
php7.2-curl | CURL module for PHP |
php7.2-dev | Files for PHP7.2 module development |
php7.2-fpm | server-side, HTML-embedded scripting language (FPM-CGI binary) |
php7.2-gd | GD module for PHP |
php7.2-mbstring | MBSTRING module for PHP |
php7.2-mysql | MySQL module for PHP |
php7.2-xml | DOM, SimpleXML, WDDX, XML, and XSL module for PHP |
php7.2-zip | Zip module for PHP |
Посмотреть все установленные PHP пакеты можно командой:
Установка другой версии PHP
Установим PHP 7.3 , для этого добавим сторонний репозиторий Ondřej Surý , установив пакет:
sudo apt-get install software-properties-common
Теперь добавим репозиторий:
sudo add-apt-repository ppa:ondrej/php
После того, как, мы добавили репозиторий, перейдем к установке PHP 7.3 :
sudo apt-get install php7.3
Были поставлены следующие пакеты:
Пакет | Описание |
---|---|
libapache2-mod-php7.3 | server-side, HTML-embedded scripting language (Apache 2 module) |
php7.3 | server-side, HTML-embedded scripting language (metapackage) |
php7.3-cli | command-line interpreter for the PHP scripting language |
php7.3-common | documentation, examples and common module for PHP |
php7.3-json | JSON module for PHP |
php7.3-opcache | Zend OpCache module for PHP |
php7.3-readline | readline module for PHP |
Установим дополнительные модули для PHP :
sudo apt-get install php7.3-dev php7.3-fpm php7.3-curl php7.3-gd php7.3-mbstring php7.3-mysql php7.3-xml php7.3-zip
PHP 7.3.10-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Oct 8 2019 05:33:38) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.10, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.10-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
Таким образом в системе активирована версия PHP 7.3 .
Переключение между версиями PHP
Переключение происходит следующей командой:
sudo update-alternatives --set php /usr/bin/php7.2
Или же просто созданием символьной ссылки:
sudo ln -f -s /usr/bin/php7.3 /etc/alternatives/php
Как переключаться между несколькими версиями PHP в Ubuntu
Иногда самая последняя версия установленного пакета может работать не так, как вы ожидали.
Приложение может не соответствовать обновленному пакету и поддерживать только определенную старую версию пакета.
В таких случаях вы можете просто отказаться от проблемного пакета до его ранней рабочей версии в кратчайшие сроки
Однако вам не нужно понижать некоторые пакеты.
Мы можем использовать несколько версий одновременно.
Например, скажем, вы тестируете приложение PHP в стек LAMP, развернутое в Ubuntu 18.04 LTS.
Через некоторое время вы обнаружите, что приложение отлично работает в PHP5.6, но не в PHP 7.2 (Ubuntu 18.04 LTS устанавливает PHP 7.x по умолчанию).
Вы собираетесь снова установить PHP или весь пакет LAMP? Не обязательно.
Вам даже не нужно понижать PHP до более ранней версии.
В этом кратком уроке я покажу вам, как переключаться между несколькими версиями PHP в Ubuntu 18.04 LTS. Это не так сложно, как вы думаете.
Полное обучение PHP вы всегда можете пройти здесь : https://webshake.ru/php-training-course
Переключение между несколькими версиями PHP
Чтобы проверить установленную по умолчанию версию PHP, запустите:
$ php -v PHP 7.2.7-0ubuntu0.18.04.2 (cli) (built: Jul 4 2018 16:55:24) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.7-0ubuntu0.18.04.2, Copyright (c) 1999-2018, by Zend Technologies
Как вы можете увидеть, установленная версия PHP – 7.2.7.
После тестирования вашего приложения пару дней вы узнаете, что ваше приложение не поддерживает PHP7.2.
В таких случаях неплохо иметь версию PHP5.x и версию PHP7.x, так что вы можете в любой момент легко переключаться между любой поддерживаемой версией.
Вам не нужно удалять PHP7.x или переустанавливать стек LAMP. Вы можете использовать как версии PHP5.x, так и 7.x вместе.
Я предполагаю, что вы еще не удалили php5.6 в своей системе.
На всякий случай, вы удалили его уже, вы можете установить его снова, используя PPA, как показано ниже.
Вы можете установить PHP5.6 из PPA:
$ sudo add-apt-repository -y ppa:ondrej/php $ sudo apt update $ sudo apt install php5.6
Переключитесь с PHP7.x на PHP5.x
Сначала отключите модуль PHP7.2, используя команду:
$ sudo a2dismod php7.2 Module php7.2 disabled. To activate the new configuration, you need to run: systemctl restart apache2
Затем включите модуль PHP5.6:
Установите PHP5.6 в качестве версии по умолчанию:
$ sudo update-alternatives --set php /usr/bin/php5.6
Кроме того, вы можете запустить следующую команду, чтобы установить, какую версию PHP по всей системе вы хотите использовать по умолчанию.
$ sudo update-alternatives --config php
Введите номер, чтобы установить его как версию по умолчанию или просто нажмите ENTER, чтобы сохранить текущий выбор.
В случае, если вы установили другие расширения PHP, установите их как по умолчанию.
$ sudo update-alternatives --set phar /usr/bin/phar5.6
Наконец, перезапустите веб-сервер Apache:
$ sudo systemctl restart apache2
Теперь проверьте, является ли версия PHP5.6 версией по умолчанию или нет:
$ php -v PHP 5.6.37-1+ubuntu18.04.1+deb.sury.org+1 (cli) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
Переключитесь с PHP5.x на PHP7.x
Аналогично, вы можете переключиться с PHP5.x на версию PHP7.x, как показано ниже:
$ sudo update-alternatives --set php /usr/bin/php7.2
$ sudo systemctl restart apache2