Когда возникла необходимость обновить какую то нибыло платформу, а она требует новую версию PHP, или например это надо сделать принудительно, а Ваша операционная система Debian, ее не поддерживает по умолчанию, что делать? Правильно, читать данную заметку. И так, поехали.
1. Обновляем обязательно систему
apt update
apt -y upgrade
2. Желательно перезагружаем (особенно это касается моментов, когда ОЧЕНЬ давно не обновлялись).
3. Ставим wget, если у вас его нет.
4. Добавляем новый репозиторий
apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2
Альтернатива последней команды указана ниже, так как в ближайшее время, команда apt-key будет заменена (но я думаю вряд ли)
5. Обновляем репозиторий
6. Устанавливаем новую версию PHP
7. Проверяем корректность новой установленной версии PHP
8. На сладкое устанавливаем новые версии расширений для PHP 8.1 (как пример, он у Вас может быть совершенно другой)
9. Проверяем корректность установленных новых модулей PHP
5. Если необходимости удалять старые версии нет, то можно выставить приоритет использования установленных PHP версий
update-alternatives php
Полезные ссылки:
How To Install PHP 8.0 on Debian 11/10/9
Как установить/обновить PHP 8.1 в Ubuntu/Debian
Warning: apt-key is deprecated
Если у вас установлено несколько версий php в системе, то при вызове команды php в консоли, будет использоваться одна из них. Иногда необходимо для каких-то скриптов или сервисов управлять версией php в консоли. Я расскажу, как ее изменить.
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти вступительный тест.
У меня на сервере Debian установлены 2 версии php — 5.6 и 7.0. Для начала проверим, какая версия используется в данный момент:
# php -v PHP 7.0.19-1 (cli) (built: May 11 2017 14:04:47) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.19-1, Copyright (c) 1999-2017, by Zend Technologies
Посмотрим, где располагается сам бинарник php:
# which php /usr/bin/php
Оказывается, что /usr/bin/php является символьной ссылкой. Посмотрим, куда она ведет:
# ls -l /usr/bin/php /usr/bin/php -> /etc/alternatives/php
Это еще одна символьная ссылка. Смотрим, куда ведет она:
# ls -l /etc/alternatives/php /etc/alternatives/php -> /usr/bin/php7.0
На седьмую версию php. Заменим ее на 5.6, которая у меня установлена по адресу /usr/local/bin/php. Редактируем символьную ссылку:
# ln -f -s /usr/local/bin/php /etc/alternatives/php
Проверяем текущую версию php в консоли:
# php -v PHP 5.6.16 (cli) (built: Jun 22 2017 20:29:25) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
Все получилось. Теперь в консоли по-умолчанию будет использоваться нужная версия php. Можно проверять скрипты, не указывая полный путь к нужной версии.
Можно было поступить и по-другому. При вызове php в консоли, имя проверяется в переменной $PATH. Посмотреть ее значения можно командой:
# echo $PATH /usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/bin
Директории проверяются в том порядке, как они перечислены. Где будет найдено первое совпадение, тот файл и будет использоваться. В моем случае директория /usr/bin, где жила символьная ссылка на php7.0 стоит раньше, чем /usr/local/bin, где расположена php5.6. Можно было просто поменять местами эти директории в PATH и версия по-умолчанию станет 5.6, так как ее бинарник php будет найден раньше.
Более гибко управлять версиями php в системе можно с помощью программы update-alternatives. Она может делать в том числе и то, что мы сейчас проделали, только автоматически, в зависимости от своих настроек. С ее помощью можно более гибко управлять версиями, задавать приоритеты использования той или иной версии, быстро их переключать в полуавтоматическом режиме.
Мне все это не надо, поэтому не стал сильно разбираться с ее работой, только познакомился с возможностями. Рассказываю о ней в качестве наводки для тех, кому захочется более подробно разобраться в этой теме. Она может быть актуальна, если у вас установлена какая-нибудь панель управления хостингом с разными версиями php. Например — plesk.
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.
Проверьте себя на вступительном тесте и смотрите подробнее программу по ссылке.
So I have Gentoo box with three PHP versions installed (nevermind the reasons):
/usr/bin/php->/usr/lib64/php5.4/bin/php/usr/bin/php5.5->/usr/lib64/php5.5/bin/php/usr/bin/php5.6->/usr/lib64/php5.4/bin/php
I want to install Laravel framework using composer:
$ composer create-project laravel/laravel --prefer-distThis however throws an error because Laravel requires PHP > 5.5.9 and the default php interpreter is 5.4.
So I issue another command:
$ /usr/bin/php5.6 /usr/bin/composer create-project laravel/laravel --prefer-distThis takes me one step further, but then some post-install commands from Laravel’s composer.json comes into play, and installation crashes.
This is due to the fact, that composer.json commands look like this:
"post-install-cmd": [ "php artisan clear-compiled", "php artisan optimize"
],As you can see, the «default» interpreter is used again!
#!/usr/bin/env phpThis is nice feature as PHP interpreter can be found under different locations on different systems.
Unfortunatelly, in this case env command returns path to the first executable it finds in $PATH environmental variable.
How could I possibly alter current session environment or what kind of trick to perform so for the execution of whole Laravel installation process php command would invoke /usr/bin/php5.6 instead of /usr/bin/php?
I don’t want to change $PATH variable or modify files like composer, composer.json or Laravel’s CLI utility artisan.
После обновления до Ubuntu 16.04 из коробки установлен php7. Для моих проектов использую php5.6. Подскажите, как управлять версиями, и использовать php5.6 по умолчанию?
$ php -v
PHP 7.0.6-1+donate.sury.org~xenial+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
$ whereis php
php: /usr/bin/php /usr/bin/php7.0 /usr/bin/php5.6 /usr/lib/php /etc/php /usr/share/php7.0-opcache /usr/share/php7.0-gd /usr/share/php /usr/share/php5.6-opcache /usr/share/php7.0-mcrypt /usr/share/php7.0-json /usr/share/php7.0-common /usr/share/php7.0-readline /usr/share/php5.6-json /usr/share/php7.0-xml /usr/share/php7.0-mysql /usr/share/php5.6-common /usr/share/php5.6-readline /usr/share/man/man1/php.1.gz
задан 7 мая 2016 в 10:32
если эти пакеты установлены из официального репозитория, то используется механизм альтернатив (alternatives) и /usr/bin/php является символической ссылкой (symlink) на /etc/alternatives/php, которая, в свою очередь, тоже является символической ссылкой на реальный исполняемый файл. в вашем случае — /usr/bin/php7.0.
«перенаправить» на другую альтернативу можно, например, так:
$ sudo update-alternatives --config phpесли есть альтернативы, то будет предложен пронумерованный список альтернатив (в частности, с указанием пути к реальным файлам) с предложением ввести номер (из списка) для изменения текущего выбора альтернативы.
ответ дан 7 мая 2016 в 10:59

aleksandr barakin
207 золотых знаков76 серебряных знаков218 бронзовых знаков
Уже было. Странно, что не нашли. Сам пользуюсь:
устанавливаем с репозитория не официального (7.0 и 5.6):
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-mbstring php7.0-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0и переключаемся с помощью следующих команд (для Apache и для командной строки разные!!!):
php5.6 -> php7.0 :
sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restartupdate-alternatives --set php /usr/bin/php7.0php7.0 -> php5.6 :
sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restartsudo update-alternatives --set php /usr/bin/php5.6
194 золотых знака56 серебряных знаков232 бронзовых знака
ответ дан 19 фев 2017 в 18:47

Vladimir Ch
6 серебряных знаков13 бронзовых знаков
Еще вариант, phpenv как менеджер версий:
$(phpenv version-name)— текущая версия php;~/.phpenv/versions/$(phpenv version-name)/etc/php.ini— php.ini
текущей версии php;phpenv global 5.6.0— использовать версию php 5.6.0.
ответ дан 10 мая 2016 в 18:43
10 серебряных знаков21 бронзовый знак
Let’s start from beginning.
I assume that you would prefer to use php-fpm instead of Apache module.
First install apache:
sudo apt-get update
sudo apt-get install apache2Next install multiple PHP:
Debian 9:
Install PHP 7:
sudo apt-get install php7.0-cli php7.0-fpm php-pear libapache2-mod-fastcgisudo apt-get install apt-transport-https
sudo curl https://packages.sury.org/php/apt.gpg | apt-key add -
sudo echo 'deb https://packages.sury.org/php/ stretch main' > /etc/apt/sources.list.d/deb.sury.org.list
sudo apt-get updateInstall PHP 5:
sudo apt-get install php5.6-cli php5.6-fpmDebian 8:
Install PHP 5:
sudo apt-get install php5 php5-fpm php-pear libapache2-mod-fastcgideb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie allInstall GPG key:
wget https://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg
sudo apt-get updateInstall PHP 7:
sudo apt-get install php7.0 php7.0-fpmNext switch from prefork and enable necessary modules:
For Debian 8:
a2dismod php5 mpm_preforkFor Debian 9:
a2dismod php7 mpm_preforkNext for both:
a2enmod actions fastcgi alias proxy_fcgi mpm_worker
systemctl restart apache2<IfModule !mod_fastcgi.c> AddHandler fcgid-script fcg fcgi fpl
</IfModule>
<IfModule mod_fastcgi.c> <Directory /usr/lib/cgi-bin> Require all granted </Directory>
</IfModule>Now create document root folders for websites:
mkdir -p /var/www/example.com/public_html
mkdir -p /var/www/test.com/public_htmlsudo useradd example --home-dir /var/www/example.com
sudo useradd test --home-dir /var/www/test.comsudo chown -R example.example /var/www/example.com
sudo chown -R test.test /var/www/test.comFor example website example.com will use PHP 5 and website test.com will use PHP 7.
Create configuration files for websites:
Website on PHP 5:
touch /etc/apache2/sites-available/example.com.conf
ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/example.com.conf
cat /etc/apache2/sites-available/example.com.conf
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <IfModule mod_fastcgi.c> AddType application/x-httpd-fastphp5 .php Action application/x-httpd-fastphp5 /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi-example.com FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi-example.com -socket /var/run/php5-fpm-example.com.sock -pass-header Authorization </IfModule>
</VirtualHost>Website on PHP 7:
touch /etc/apache2/sites-available/test.com.conf
ln -s /etc/apache2/sites-available/test.com.conf /etc/apache2/sites-enabled/test.com.conf
cat /etc/apache2/sites-available/test.com.conf
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName test.com ServerAlias www.test.com DocumentRoot /var/www/test.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <IfModule mod_fastcgi.c> AddHandler php7-fcgi .php Action php7-fcgi /php7-fcgi virtual Alias /php7-fcgi /usr/lib/cgi-bin/php7-fcgi-test.com FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi-test.com -socket /var/run/php/php7.0-fpm-test.com.sock -pass-header Authorization </IfModule>
</VirtualHost>cat /etc/php5/fpm/pool.d/example.com.conf
[example.com]
user = example
group = example
listen = /var/run/php5-fpm-example.com.sock
listen.owner = www-data
listen.group = www-data
php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = off
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /Website on PHP 7:
cat /etc/php/7.0/fpm/pool.d/test.com.conf
[test.com]
user = test
group = test
listen = /var/run/php/php7.0-fpm-test.com.sock
listen.owner = www-data
listen.group = www-data
php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = off
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /Restart apache and php-fpm services:
sudo systemctl restart apache2 php5-fpm php7.0-fpmВ Ubuntu можно легко управлять несколькими версиями PHP. Мы рассмотрим процесс установки разных версий PHP и жонглирования ими.
Установка PHP
Выбор версии по умолчанию
Установка расширений
- Установка PHP
- Установка базовой версии
- Установка определенной версии
- Выбор версии PHP по умолчанию
- Установка расширений
- Настройка PHP
- Switch PHP versions — CLI
- Switch PHP versions — Apache Web Server
- Switch PHP versions — Apache Web Server — PHP FPM
- Switch PHP versions — NGINX
- Summary
- ISPmanager: установка php
- Как узнать версию PHP
- Узнаем версию через phpinfo()
- Где находятся настройки версий PHP в ISPmanager
- Как выбрать версию PHP при работе в командной строке (SSH)
- Что делать, если не обрабатываются PHP-скрипты
- Заключение
- Переключение между несколькими версиями PHP
- Переключитесь с PHP7.x на PHP5.x
- Переключитесь с PHP5.x на PHP7.x
- Switch to PHP 8.2
- Switch to PHP 7.4
- Switch to PHP 5.6
- Conclusion
Установка PHP
В зависимости от необходимой версии PHP и версии Ubuntu, подход к установке может отличаться.
Установка базовой версии
Это самый простой способ. Каждая версия Ubuntu в своем репозитории содержит соответствующую версию PHP.
Посмотреть, какая версия будет установлена из репозитория системы можно командой:
Установка выполняется одной командой:
apt install php
Установка определенной версии
Если нам необходима версия PHP, которой нет в репозитории, выполняем установку дополнительного — для этого вводим две команды:
apt install software-properties-common
Если мы получим ошибку:
Теперь можно установить нужную версию интерпретатора:
apt-get install php7.4
apt-get install php8.0
* в данном примере 7.4 и 8.
Выбор версии PHP по умолчанию
Посмотреть текущую версию php, которая работает по умолчанию можно командой:
Сменить версию по умолчанию:
update-alternatives —config php
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
————————————————————
* 0 /usr/bin/php8.0 80 auto mode
1 /usr/bin/php7.4 74 manual mode
2 /usr/bin/php8.0 80 manual mode
* в данном примере используется версия php8 как версия по умолчанию.
Для смены, система предложит нам выбрать версию из списка:
* так мы переключимся на php7.4.
Установка расширений
Расширения устанавливаются с синтаксисом:
apt install php<версия>-<расширение>
Для версии, которая идет по умолчанию в репозитории, установку можно выполнить так:
apt install php-mysqli
В остальных случаях обязательно указываем версию:
apt install php7.4-mysqli
Настройка PHP
В Ubuntu настройки PHP находятся в разных файлах — для каждой версии и для каждой системы, которая обрабатывает запросы.
Например, для php версии 8.0, которая будет запускаться из командной строки, файл будет:

Была ли полезна вам эта инструкция?
Switch PHP versions — CLI
Verify the currently active PHP as shown below.
# Verify PHP
php --version
We can configure multiple versions of PHP installed on Ubuntu 20.04 LTS using the commands as shown below.
# PHP 7.0
sudo update-alternatives --set php /usr/bin/php7.0
sudo update-alternatives --set phar /usr/bin/phar7.0
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.0# PHP 8.0
sudo update-alternatives --set php /usr/bin/php8.0
sudo update-alternatives --set phar /usr/bin/phar8.0
sudo update-alternatives --set phar.phar /usr/bin/phar.phar8.0
Now we can switch among PHP 7.0 or PHP 8.0 using the commands as shown below.
# Switch PHP
sudo update-alternatives --config php# Output
There are 2 choices for the alternative php (providing /usr/bin/php).Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/php8.0 80 auto mode
1 /usr/bin/php7.0 70 manual mode
* 2 /usr/bin/php8.0 80 manual mode# Switch
sudo update-alternatives --config phar# Output
There are 2 choices for the alternative phar (providing /usr/bin/phar).Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/phar8.0 80 auto mode
1 /usr/bin/phar7.0 70 manual mode
* 2 /usr/bin/phar8.0 80 manual mode# Switch
sudo update-alternatives --config phar.phar# Output
There are 2 choices for the alternative phar.phar (providing /usr/bin/phar.phar).Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/phar.phar8.0 80 auto mode
1 /usr/bin/phar.phar7.0 70 manual mode
* 2 /usr/bin/phar.phar8.0 80 manual mode
Now, again verify the currently active PHP as shown below.
# Verify PHP
php --version
This is helpful for the applications reliable on the PHP in CLI mode to run console based programs. We can switch among the multiple versions of PHP installed on Ubuntu systems.
Switch PHP versions — Apache Web Server
Similar to CLI mode, we can also switch among multiple versions of PHP for the Apache Web Server. In the previous tutorial — How To Install Multiple Versions Of PHP On Ubuntu 20.04 LTS, we saw that the PHP version remains same i.e. PHP 7.0 even after installing the recent version of PHP i.e. PHP 8.0 as shown in Fig 1.

We can switch among the PHP versions for the Apache Web server using the commands as shown below.
# Disable PHP 7.0
sudo a2dismod php7.0# Output
Module php7.0 disabled.
To activate the new configuration, you need to run:
systemctl restart apache2# Enable PHP 8.0
sudo a2enmod php8.0# Output
Considering dependency mpm_prefork for php8.0:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.0:
Enabling module php8.0.
To activate the new configuration, you need to run:
systemctl restart apache2# Restart Apache Web Server
sudo service apache2 restart
Now, again refresh the info.php using the Web Browser. It should be similar to Fig 2.

We can also switch back to PHP 7 using the same commands.
Switch PHP versions — Apache Web Server — PHP FPM
Instead of switch PHP version for Apache Web Server which impacts all the Virtual Hosts, we can also configure the selected Virtual Host to use the PHP version specified by us. We can do so using PHP FPM installed by us as shown in How To Install Multiple Versions Of PHP On Ubuntu 20.04 LTS.
# Check Status - PHP 7.0 FPM
systemctl status php7.0-fpm# Check Status - PHP 8.0 FPM
systemctl status php8.0-fpm
We can see that both PHP 7.0 FPM and PHP 8.0 FPM are in running state. Now, enable Apache2 to use multiple versions of PHP using the command as shown below.
# Install FCGID
sudo apt install libapache2-mod-fcgid# Enable FCGID
sudo a2enmod actions fcgid alias proxy_fcgi# Restart Apache
sudo service apache2 restart
Also, update the Virtual Host as shown below.
<VirtualHost *:80>
----
----
Also, reload Apache as shown below.
# Reload Apache
sudo service apache2 reload
Now, check the output of info.php using the Browser. It should show the configurations specific to PHP 7. Similarly, we can change PHP 7 to PHP 8 for the selected virtual host, without impacting the other virtual hosts.
Switch PHP versions — NGINX
# Server Block with PHP FPM
sudo nano /etc/nginx/sites-available/example.com
Summary
This tutorial provided the steps required to switch among the multiple PHP versions installed on Ubuntu 20.04 LTS for CLI, Apache Web Server, and NGINX.
Установка и смена версий PHP: пошаговая инструкция
PHP — это скриптовый язык программирования, который обычно используется для разработки веб-приложений. С его помощью можно создавать динамические сайты, которые будут адаптировать страницы под конкретного пользователя. Такие сайты не хранятся на сервере в готовом виде, а создаются на сервере после запроса от пользователя. Это означает, что PHP — это серверный язык, т.е. написанные на нём скрипты выполняются на сервере, а не на компьютере пользователя.
Существует большое количество разных версий PHP. С появлением каждой новой версии, язык становится все более мощным и гибким, предлагая разработчикам больше возможностей для создания современных веб-приложений. Но не все сайты переходят или готовы перейти на более современную версию и остаются на старых.
Поэтому смена версий является необходимой задачей для многих веб-разработчиков. Некоторым из них хочется воспользоваться новыми функциями, которые появляются в новых версиях языка, а другим нужно устранить ошибки и улучшить безопасность уже существующего приложения. В этой статье мы разберем, как установить PHP на Ubuntu и как переключаться между разными версиями языка.
Установить PHP можно вручную или через панель управления, такую как ISPmanager. Разберем оба способа.
Чтобы установить PHP на Ubuntu Server, совершите следующие действия:
- Подключитесь к серверу через SSH.
- Обновите список пакетов:
sudo apt update - Установите необходимые зависимости:
sudo apt install build-essential libssl-devcurl -L -O - Распакуйте скачанный файл, заменив <version> загруженной версией:
tar xzf php-<version>.tar.gz- Перейдите в директорию с установленным PHP:
- Настройте скрипт установки:
sudo make installПосле этого PHP будет установлен на сервер. Осталось установить веб-сервер для работы с языком. Настройка может включать в себя указание модуля PHP в конфигурационном файле веб-сервера и настройку обработки файлов с расширением .php.
В конце перезапустите веб-сервер. Например, для перезагрузки Apache вы можете выполнить следующую команду:
sudo service apache2 restartISPmanager: установка php
ISPmanager — это панель управления веб-сервером. Она включает в себя множество функций, таких как управление доменами, аккаунтами пользователей, базами данных, почтовыми ящиками и многое другое. Панель управления может использоваться для настройки сервера, мониторинга ресурсов, а также для обеспечения безопасности и доступа к серверу.
Через ISPmanager вы можете управлять версиями PHP, в том числе и устанавливать дополнительные. Для установки выполните следующие шаги:
- Войдите в ISPmanager от имени администратора.
- Перейдите в раздел «Конфигурация ПО».
- Выберите нужную версию программного обеспечения:
Как узнать версию PHP
- создать в корневой директории сайта скрипт с
phpinfo();
Узнаем версию через phpinfo()
- Создайте файл с именем
phpinfo.phpсо следующим содержимым:
- Сохраните файл в корневой директории веб-сайта (там, где расположен файл index.html или index.php).
- Откройте этот файл в браузере, набрав в адресной строке
http://адрес_вашего_сайта/phpinfo.php.
Вы увидите страницу такую страницу с подробной информацией:
После того, как узнаете версию, не забудьте удалить файл phpinfo.php, так как он содержит важную информацию о конфигурации сервера, которую могут использовать злоумышленники.
Выполните в терминале команду:
Вы получите подобный вывод:
В ISPmanager версия PHP, на которой работает сайт, находится в настройках сайта:
Где находятся настройки версий PHP в ISPmanager
В ISPmanager настройки версий расположены в разделе «Настройки» -> «Настройки PHP». Например, в этом разделе вы можете включить или отключить различные расширения PHP. Обратите внимание, что в ISPmanager вы можете управлять только теми версиями, которые уже установлены на сервере.
как изменить версию php в ISPmanager
- Перейдите в раздел «Сайты»;
- Перейдите в «Настройки сайта»:
- Выберите нужную вам версию:
Обратите внимание, что некоторые скрипты и расширения могут работать только с определенными версиями PHP. Перед тем, как сменить версию, убедитесь, что все скрипты и расширения, которые вы используете, поддерживают новую версию. В противном случае сайт может стать недоступен или работать некорректно.
Как выбрать версию PHP при работе в командной строке (SSH)
В некоторых случаях отсутствует возможность сменить версию через панель управления. В таких ситуациях можно воспользоваться командной строкой. Чтобы переключиться между установленными версиями на Ubuntu, следуйте этим шагам:
- Убедитесь, что у вас установлено несколько версий PHP. Чтобы увидеть список установленных пакетов, выполните эту команду:
- Установите пакет
php-switch, который позволяет легко переключаться между установленными версиями PHP:
sudo apt-get install -y php-switch- Воспользуйтесь командой
php-switch, чтобы переключиться между установленными версиями PHP. Например, чтобы переключиться на PHP 7.4, выполните эту команду:
- Проверьте, какая версия PHP сейчас активна, выполнив:
Помните, что при переключении между версиями PHP могут возникнуть проблемы совместимости с вашим кодом.
Что делать, если не обрабатываются PHP-скрипты
Если на вашем сервере не обрабатываются PHP-скрипты, то сначала следует проверить работу web-сервера. Откройте браузер и перейдите на страницу сайта, на котором не работают PHP-скрипты. Если страница открывается, но на ней не отображается результат работы PHP-скрипта, то возможно проблема с PHP.
Чтобы узнать, в чем заключается проблема, можно сделать следующее:
- Проверьте статус сервиса PHP
Для этого выполните команду, используя вашу версию php:
sudo service php7.4-fpm statusЕсли сервис запущен, то в выводе команды должно быть указано active (running). Если сервис не запущен, то запустите его, используя команду:
sudo service php7.4-fpm start- Проверьте лог-файлы PHP
Для этого можно использовать команду:
Эта команда выведет последние строки лог-файла PHP, что может помочь в определении проблемы.
- Проверьте настройки PHP
Откройте файл php.ini в текстовом редакторе и проверьте, что опция display_errors установлена в значение On. Это позволит отображать ошибки PHP на страницах сайта.
- Проверьте наличие ошибок в скриптах
Откройте скрипты в текстовом редакторе и поищите в них ошибки синтаксиса или другие ошибки, которые могут привести к неработоспособности скриптов.
- Проверьте наличие ограничений на работу скриптов в конфигурации web-сервера
Например, в файле .htaccess могут быть указаны ограничения на работу скриптов для определенных директорий.
- Проверьте работу скрипта на другом сервере
Если скрипты работают на другом сервере, то возможно проблема с конфигурацией текущего сервера.
Заключение
Мы рассмотрели установку PHP на сервер вручную и с помощью популярной панели ISPmanager. Если вы используете другую панель, возможно, вам пригодятся наши инструкции из Базы знаний по настройке PHP в панелях Fastpanel и ISPConfig.
Иногда самая последняя версия установленного пакета может работать не так, как вы ожидали.
Приложение может не соответствовать обновленному пакету и поддерживать только определенную старую версию пакета.
В таких случаях вы можете просто отказаться от проблемного пакета до его ранней рабочей версии в кратчайшие сроки
Однако вам не нужно понижать некоторые пакеты.
Мы можем использовать несколько версий одновременно.
Например, скажем, вы тестируете приложение 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 -vPHP 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.2Module php7.2 disabled. To activate the new configuration, you need to run: systemctl restart apache2
Затем включите модуль PHP5.6:
$ sudo a2enmod 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 -vPHP 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 a2enmod php7.2
$ sudo a2dismod php5.6
$ sudo update-alternatives --set php /usr/bin/php7.2
$ sudo systemctl restart apache2
On your system, if you have installed multiple versions of PHP like PHP 8.2, PHP 7.4 and PHP 5.6. Currently, PHP 7.4 is the default version set for Apache and the command line interface (CLI). Maybe you have any other PHP versions installed on your system. Only one PHP version can be set as default at any time.
This tutorial will help you to change the default PHP version for CLI and Apache webserver. This can be achieved with a few sets of commands.
Switch to PHP 8.2
- Apache:
sudo a2dismod php*sudo a2enmod php8.2sudo systemctl restart apache2 - Command line interface:
sudo update-alternatives --set php /usr/bin/php8.2sudo update-alternatives --set phar /usr/bin/phar8.2sudo update-alternatives --set phar.phar /usr/bin/phar.phar8.2sudo update-alternatives --set phpize /usr/bin/phpize8.2sudo update-alternatives --set php-config /usr/bin/php-config8.2
Note: The phpize8.2 and php-config8.2 command is available in php8.2-dev package. This is more useful for compiling PHP modules using pecl.
If you want a different version (eg: PHP 8.1 or PHP 8.0) to be configured as default, just replace 8.2 with the required version.
Switch to PHP 7.4
- Apache:
sudo a2dismod php*sudo a2enmod php7.4sudo systemctl restart apache2 - Command line interface:
sudo update-alternatives --set php /usr/bin/php7.4sudo update-alternatives --set phar /usr/bin/phar7.4sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4sudo update-alternatives --set phpize /usr/bin/phpize7.4sudo update-alternatives --set php-config /usr/bin/php-config7.4
Note – The phpize7.4 and php-config7.4 command is available in php7.4-dev package. This is more useful for compiling PHP modules using pecl.
Switch to PHP 5.6
- Apache:
sudo a2dismod php*sudo a2enmod php5.6sudo systemctl restart apache2 - Command line interface:
sudo update-alternatives --set php /usr/bin/php5.6sudo update-alternatives --set phar /usr/bin/phar5.6sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6sudo update-alternatives --set phpize /usr/bin/phpize5.6sudo update-alternatives --set php-config /usr/bin/php-config5.6
Note: The phpize5.6 and php-config5.6 command is available in php5.6-dev package. This is more useful for compiling PHP modules using pecl.
Conclusion
This tutorial helps you to change the default PHP versions on an Ubuntu system. This helps you to change the default PHP version for the Apache web server and the command line interface.

