Как поменять версию php ubuntu
Перейти к содержимому

Как поменять версию php ubuntu

  • автор:

Установка нескольких версии PHP в Linux (Ubuntu, CentOS)

В настоящее время существует несколько поддерживаемых версии PHP, реальности использовать можно и нужно только две версии PHP 7.4 для старых сайтов и 8.1 для новых проектов.

В этой статье объясняется, как установить ВСЕ поддерживаемые версии PHP с наиболее востребованными расширениями PHP для веб серверов Apache и Nginx.

Если вы используйте любую панель управления хостингом, тогда не делайте того что написано в этой статье, а изучите документацию к своей панели управления.

Установка разных версий PHP в Ubuntu

Руководство тестировалось для Ubuntu 22.04 LTS Jammy.

В Ubuntu для установки всех версий PHP используется репозиторий Ondřej Surý PPA. Репозиторий ondrej/php PPA содержит более актуальные версии PHP, чем официальные репозитории Ubuntu, а также позволяет устанавливать несколько версий PHP в одной системе.

Предварительно в вашей системе должна быть установлен утилита apt-add-repository, которая позволяет добавлять внешние репозитории:

apt install software-properties-common

Теперь добавьте репозиторий ondrej/php в вашу систему

add-apt-repository ppa:ondrej/php

Обновляем пакеты в репозитории:

apt update -y

Чтобы установить любые модули PHP, просто укажите версию PHP и используйте функцию автозаполнения (жмем клавишу Tab) для просмотра всех модулей. Ниже список вариантов установки нужной вам версии PHP:

Для веб-сервера Apache:

apt install php5.6 [PHP 5.6] apt install php7.0 [PHP 7.0] apt install php7.1 [PHP 7.1] apt install php7.2 [PHP 7.2] apt install php7.3 [PHP 7.3] apt install php7.4 [PHP 7.4] apt install php8.0 [PHP 8.0]

Для веб-сервера Nginx PHP-FPM:

apt install php5.6-fpm [PHP 5.6] apt install php7.0-fpm [PHP 7.0] apt install php7.1-fpm [PHP 7.1] apt install php7.2-fpm [PHP 7.2] apt install php7.3-fpm [PHP 7.3] apt install php7.4-fpm [PHP 7.4] apt install php8.0-fpm [PHP 8.0]

Проверьте версию PHP по умолчанию, используемую в вашей системе:

php -v PHP 8.1.6 (cli) (built: May 17 2022 16:46:54) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.6, Copyright (c) Zend Technologies with Zend OPcache v8.1.6, Copyright (c), by Zend Technologies

Чтобы изменить версию PHP по умолчанию используйте утилиту update-alternatives, в примере ниже сделаем основной версией PHP 7.1

update-alternatives --set php /usr/bin/php7.1

Установка разных версий PHP в CentOS

Для инсталляции несколько версии PHP в CentOS вы можете использовать Remi’s RPM repository или репозиторий SCL (Software Collections). В мануале будем использовать будем репозиторий Remi, так как в нем поддерживается большее количество разных версий PHP.

Предварительно установите репозиторий epel

yum -y install epel-release
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpm
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Для переключения версий PHP (только в текущей консоли) по умолчанию используйте утилиту scl (ключ l выводит список версий php):

$ scl enable php82 bash $ php -v PHP 7.2.8 (cli) (built: Jul 17 2018 05:35:43) ( NTS )

Жесткое изменения на уровне ОС PHP по умолчанию:

rm /usr/bin/php cp /opt/remi/php82/root/usr/bin/php /usr/bin/php

Тестирование вместо Заключения

Для того чтобы узнать какая версия PHP подключена для вашего сайта используйте phpinfo.

php переключение версий

После обновления до 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 

Отслеживать

68k 222 222 золотых знака 79 79 серебряных знаков 222 222 бронзовых знака

Установка разных версий PHP на Linux Ubuntu

Обновлено

Обновлено: 03.04.2023 Опубликовано: 06.11.2021

В Ubuntu можно легко управлять несколькими версиями PHP. Мы рассмотрим процесс установки разных версий PHP и жонглирования ими.

Установка PHP

В зависимости от необходимой версии PHP и версии Ubuntu, подход к установке может отличаться.

Установка базовой версии

Это самый простой способ. Каждая версия Ubuntu в своем репозитории содержит соответствующую версию PHP.

Посмотреть, какая версия будет установлена из репозитория системы можно командой:

apt search —names-only ‘^php[.0-9]$’

Установка выполняется одной командой:

apt install php

Установка определенной версии

Если нам необходима версия PHP, которой нет в репозитории, выполняем установку дополнительного — для этого вводим две команды:

apt install software-properties-common

.
FileNotFoundError: [Errno 2] No such file or directory: ‘gpg’

Устанавливаем gnupg-agent:

apt install gnupg-agent

Теперь можно установить нужную версию интерпретатора:

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 как версия по умолчанию.

Для смены, система предложит нам выбрать версию из списка:

Press to keep the current choice[*], or type selection number: 1

* так мы переключимся на php7.4.

Установка расширений

Расширения устанавливаются с синтаксисом:

apt install php-

Для версии, которая идет по умолчанию в репозитории, установку можно выполнить так:

apt install php-mysqli

В остальных случаях обязательно указываем версию:

apt install php7.4-mysqli

Настройка PHP

В Ubuntu настройки PHP находятся в разных файлах — для каждой версии и для каждой системы, которая обрабатывает запросы.

Например, для php версии 8.0, которая будет запускаться из командной строки, файл будет:

Смена версий PHP

url image

В данной статье расскажем, как изменить версию PHP, и рассмотрим сразу несколько вариантов. Среди них, скорее всего, есть и ваш случай:

Важно! Необходимо использовать только подходящий для вашего случая вариант смены версии PHP. Например, не стоит пользоваться способом для серверов без панели управления, если на вашем сервере установлена ispmanager или используются отличные от LAMP/LEMP конфигурации веб-сервера.

На сервере с панелью управления ispmanager

В данном случае версии переключаются довольно просто, и в стандартной установке ispmanager уже установлены несколько альтернативных версий. В разделе Сайты выберите сайт и нажмите сверху РедактироватьИзменить: Раскрываем вкладку Обработчик (PHP) и в пункте Версия PHP выбираем нужную: Затем нажмите внизу кнопку Сохранить, и на этом смена версии будет завершена, сайт начнет работать на выбранной версии. Если в списке нет нужной вам версии, то ее можно установить в разделе НастройкиНастройки PHP: Выбираете нужную вам версию и нажимаете сверху Установить. Потребуется какое-то время на установку. Когда значок в графе Состояние изменится на зеленую галочку, установка будет завершена и свежеустановленная версия появится в списке всех альтернативных версий. Теперь версию для сайта можно переключить способом, описанным выше.

На сервере с окружением Bitrix-env (Битрикс: Веб-окружение)

При авторизации по SSH с пользователем root к VDS с оболочкой Bitrix-env можно увидеть стартовое меню: В данном меню в поле выбора вводим 1 и нажимаем Enter. Откроется следующее меню, где необходимо выбрать пункт 8: В новом окне меню будет предложено ввести 2 варианта ответа:

  • all — изменить версию для всех сайтов;
  • — изменить версию только для сайта, который вы укажете вместо слова hostname, в нашем примере это testpanel.fvds.ru или testbitrix.fvds.ru:

Мы выберем вариант all.

В нашем примере в таблице в колонке PHP у сайтов установлена версия PHP 7.4.33.

Меню нам предложит следующие варианты:

Первый вариант позволит нам повысить версию PHP, второй — понизить.

Выберем в нашем случае более разумный вариант — повысить версию PHP до более актуальной, введя 1.

После этого потребуется выбрать, до какой версии повысить, в нашем случае варианты:

Выберем вновь 1-ый вариант.

Далее будет задан подтверждающий вопрос «Please confirm you want to update (Y|N)», вводим Y (Yes) и нажимаем Enter.

После чего запустится процесс обновления версии PHP, который займет некоторое время. Процесс обновления версии можно считать завершенным, когда, зайдя повторно в меню изменения версий, вы увидите в таблице в колонке PHP уже новую версию, в нашем случае — 8.1.

Либо можно просто выйти из меню и по прошествии времени на установку новой версии ввести команду:

php -v

и увидеть, что версия изменена:

Если это окажется слишком высокой версией PHP для вашего сайта, можно её понизить. Для этого вернитесь в меню командой sh /root/menu.sh , пройдите вновь по пунктам меню 18all2, на финальном шаге выберите пункт Downgrade PHP, до какой версии понизить и подтвердите операцию смены версии.

На сервере без панели управления

Для Debian/Ubuntu:

Сначала проверьте текущую версию PHP, введя следующую команду:

php -v

Если у вас версия PHP 7.4 или ниже, вы можете обновиться, например, до PHP 8.0:

Для этого установим необходимое ПО и репозиторий.

apt install software-properties-common add-apt-repository ppa:ondrej/php # в процессе установки система попросит подтвердить добавление репозитория, для этого нажмите Enter

Обновляем список пакетов с учётом новых репозиториев командой:

apt update

Затем установим PHP 8.0 командой:

apt install php8.0

После этого следует установить часто используемые расширения PHP 8.0. Полный текст команды будет зависеть от необходимых вам расширений, но она может выглядеть, например, так:

apt install php8.0-cli php8.0-fpm php8.0-pdo php8.0-mysql php8.0-zip php8.0-gd php8.0-mbstring php8.0-curl php8.0-xml php8.0-bcmath

Теперь необходимо переключить на новую версию PHP модуль веб-сервера.

В случае, если у вас Apache:

Сначала отключаем старую версию командой:

a2dismod php7.4

Потом включаем новую версию PHP командой:

a2enmod php8.0

Не забудьте, что у нас в примере смена с версии «7.4» на «8.0», в вашем случае исходная и новая версии могут быть другие, установите в командах соответствующие значения для вашей ситуации.

Для применения конфигурации, необходимо перезапустить Apache командой:

service apache2 restart

В случае, если у вас Nginx:

Мы рассмотрим переключение только для варианта, когда обработкой PHP занимается PHP-fpm (рецепт LEMP).

Файл конфигурации может находиться по адресу /etc/nginx/sites-available/default.conf или /etc/nginx/sites-available/site.ru.conf , или в другом месте в зависимости от ваших настроек.

Найдите блок кода, который выглядит следующим образом:

location ~ \.php$ < include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; >

Вам нужно заменить php7.4-fpm.sock на php8.0-fpm.sock, чтобы использовать новую версию PHP:

location ~ \.php$ < include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.0-fpm.sock; >

Этот параметр указывает Nginx обрабатывать файлы PHP с использованием PHP 8.0.

Чтобы применить изменения, вам необходимо перезапустить Nginx и PHP-FPM:

systemctl reload nginx systemctl restart php8.0-fpm

Для СentOS 7:

Версия PHP, доступная из стандартного репозитория CentOS 7, устарела, по этой причине нам необходимо установить сторонний репозиторий пакетов, чтобы получить более актуальную версию PHP.

Remi — популярный репозиторий, предоставляющий самые последние версии PHP для серверов CentOS.

Установим репозиторий Remi для CentOS 7 командой:

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

После завершения установки вам нужно будет запустить команду, чтобы включить репозиторий, содержащий нужную вам версию PHP. Чтобы проверить, какие версии PHP доступны в репозитории Remi, запустите команду:

yum --disablerepo="*" --enablerepo="remi-safe" list php[7-9][0-9].x86_64

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

Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * remi-safe: mirror.docker.ru remi-safe | 3.0 kB 00:00:00 remi-safe/primary_db | 2.5 MB 00:00:00 Available Packages php70.x86_64 7.0-1.el7.remi remi-safe php71.x86_64 7.1-1.el7.remi remi-safe php72.x86_64 7.2-1.el7.remi remi-safe php73.x86_64 7.3-1.el7.remi remi-safe php74.x86_64 7.4-3.el7.remi remi-safe php80.x86_64 8.0-3.el7.remi remi-safe php81.x86_64 8.1-4.el7.remi remi-safe php82.x86_64 8.2-5.el7.remi remi-safe

В этой статье мы установим PHP 7.4, которая на данный момент является достаточно стабильной и всё ещё актуальной версией PHP. Затем, чтобы показать как можно использовать репозиторий Remi, перейдем с версии 7.4 на 8.0.

Итак, чтобы включить правильный пакет Remi для установки PHP 7.4, сначала нужно установить yum-config-manager, он входит в yum-utils, что устанавливается командой:

yum install yum-utils

Затем включаем ветку репозитория с версией 7.4:

yum-config-manager --enable remi-php74

Теперь нужно посмотреть, какие пакеты со стандартной версией php 5.4 сейчас установлены. Можно использовать команду yum list installed | grep php или более удобную для копирования вывода команду:

echo $(yum list installed | grep php|grep -v niguru|awk '' | tr -s '\n' ' ')

Получим примерно такой список (у вас может отличаться, особенно на версии PHP 5.4):

gd3php.x86_64 php.x86_64 php-cli.x86_64 php-common.x86_64 php-fpm.x86_64 php-gd.x86_64 php-json.x86_64 php-mbstring.x86_64 php-mysqlnd.x86_64 php-opcache.x86_64 php-pdo.x86_64 php-soap.x86_64 php-sodium.x86_64 php-xml.x86_64

Выделяем его, копируем и вставляем в команду удаления пакетов. Итого должно получиться примерно так (у вас может отличаться):

yum remove gd3php.x86_64 php.x86_64 php-cli.x86_64 php-common.x86_64 php-fpm.x86_64 php-gd.x86_64 php-json.x86_64 php-mbstring.x86_64 php-mysqlnd.x86_64 php-opcache.x86_64 php-pdo.x86_64 php-soap.x86_64 php-sodium.x86_64 php-xml.x86_64

Теперь заново ставим все удаленные пакеты, но так как мы сменили репозиторий, пакеты будут устанавливаться уже другой версии:

yum install -y php php-fpm php-opcache php-curl php-mbstring php-xml php-json php-mysqli php-gd curl bzip2 wget catdoc php-soap

Список пакетов может отличаться и зависит от необходимых вам расширений (модулей) PHP. Если требуется еще какой-то, просто добавьте в конец строки php-extensionname, где extensionname — это название расширения PHP, либо вставьте еще раз список, который использовали для удаления пакетов.

Теперь можем проверить, что установилась нужная версия PHP:

php -v

В случае, если у вас установлен Apache, достаточно перезапустить Apache командой:

systemctl restart httpd

В случае, если используется PHP-fpm:

Далее необходимо вернуть наши прежние конфигурационные файлы взамен свежеустановленных стандартных. Делается это следующими командами, на вопрос о перезаписи отвечаем Y (Yes) и нажимаем Enter:

mv /etc/php.ini.rpmsave /etc/php.ini mv /etc/php-zts.d/10-opcache.ini.rpmsave /etc/php-zts.d/10-opcache.ini mv /etc/php.d/10-opcache.ini.rpmsave /etc/php.d/10-opcache.ini mv /etc/php-fpm.d/www.conf.rpmsave /etc/php-fpm.d/www.conf 

Строки по замене конфигурационных файлов opcache применимы только в случае, если у вас изначально стояло это расширение.

Дальше остаётся перезапустить службу php-fpm:

systemctl restart php-fpm

Если захотите снова переключить версию PHP, повторите процедуру, но предварительно отключите ветку репозитория командой (пример для отключения 7.4):

yum-config-manager --disable remi-php74

Затем включите нужную версию (пример для включения версии PHP 8.0):

yum-config-manager --enable remi-php80

Теперь можно проводить дальнейшую установку способом, описанным выше.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *