Перейти к содержимому

Как поменять версию 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:

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 8.2 на Debian/Ubuntu

PHP 8.2 получил ряд крупных изменений, таких как readonly классы, новое расширение Random, редактирование конфиденциальных параметров, а также оптимизационные изменения языка, включающее устаревание динамических свойств и интерполяцию строк.

В настоящее время пакеты PHP 8.2 не предлагаются в стандартных репозиториях программного обеспечения Debian и Ubuntu, но PHp 8.2 доступен в репозитории поддерживаемом Ondřej Surý.

Репозиторий Ondřej основной и самый обновляемый репозиторий предлагающий пакеты PHP и расширения PECL для операционных систем на основе Debian и Ubuntu.

Что нового и изменения в PHP 8.2

В PHP 8.2 представлен обширный список новых функций для обеспечения безопасности и производительности, а также несколько устаревших функций, которые могут выдавать дополнительные предупреждения.

Полный список изменение можно посмотреть в статье PHP 8.2: Что нового. Изменения и новый функционал.

Заметные изменения дополнений и INI

PHP 8.2 не содержит каких-либо заметных изменений влияющих на процесс установки или обновления. На самом деле PHP 8.2 включает новое расширение Random , но это расширение встроенное и PHP не может быть скомпилирован без него.

Одно заметное изменение в настройках и PHP INI файлах заключается в том, что PHP 8.2 выдаёт предупреждение о неправильном форматировании INI настроек, отключённое в старых версиях PHP.

Внимание: Описанные далее действия потенциально могут нарушить работоспособность системы

Следующие действия выполняются, как sudo и для их выполнения требуется соответствующий уровень разрешений. Также применяются обычные предупреждения при внесении каких-либо общесистемных изменений. Обязательно сделайте резервную копию системы и проверьте резервные копии, прежде чем продолжить.

Краткое руководство по установке/обновлению PHP 8.2

Далее приведены команды для установки/обновления до PHP 8.2, подробные шаги описаны в Подробном руководстве по установке/обновлению.

Ubuntu

sudo dpkg -l | grep php | tee packages.txt 
sudo add-apt-repository ppa:ondrej/php # Нажмите Enter, когда будет предложено.
sudo apt update
sudo apt install php8.2 php8.2-cli php-8.2bz2,curl,mbstring,intl>

sudo apt install php8.2-fpm
# Или
# sudo apt install libapache2-mod-php8.2

sudo a2enconf php8.2-fpm

# При обновлении со старой версии PHP:
sudo a2disconf php8.1-fpm

## Удаление старых пакетов
sudo apt purge php8.1*

Debian

sudo dpkg -l | grep php | tee packages.txt 

sudo apt install apt-transport-https lsb-release ca-certificates wget -y
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update

# Добавьте в фигурные скобки все нужные вам расширения.
sudo apt install php8.2 php8.2-cli php8.2-bz2,curl,mbstring,intl>

sudo apt install php8.2-fpm
# ИЛИ
# sudo apt install libapache2-mod-php8.2

sudo a2enconf php8.2-fpm

# При обновлении со старой версии PHP:
sudo a2disconf php8.1-fpm

## Удаление старых пакетов
sudo apt purge php8.1*

Подробное руководство по установке/обновлению PHP 8.2

1. Сохраните список расширений PHP

Следующая команда выводит список всех связанных с PHP пакетов, существующих в текущей системе, и сохраняет их в текстовый файл packages.txt . Это помогает восстановить тот же список пакетов в PHP 8.2.

При новой установке этот шаг не требуется.

dpkg -l | grep php | tee packages.txt

2. Добавить ondrej/php PPA в качестве репозитория

Репозитории поддерживаемые Ondřej Surý содержат основные пакеты PHP и постоянно обновляются.

После добавления этого репозитория в список источников программного обеспечения, первоначальную установку и обновление можно будет выполнить с помощью стандартных команд apt .

Ubuntu LTS Версии
sudo add-apt-repository ppa:ondrej/php # Нажмите Enter, когда будет предложено. 
sudo apt update
Debian
sudo apt install apt-transport-https lsb-release ca-certificates 
software-properties-common
sudo add-apt-repository ppa:ondrej/php # Нажмите Enter, когда будет предложено.
sudo apt update

3. Установка PHP 8.2 и расширения

Все пакеты PHP 8.2, доступные в репозитории, добавленном на шаге 2, следуют шаблону именования php8.2- . Расширения пакета PHP, такие, как json , ctype , date , random и т.д. не нужно устанавливать вручную.

Пакет php8.2-common включает в себя несколько распространённых пакетов PHP. Позже можно выборочно отключить ненужные расширения.

sudo apt install php8.2 php8.2-cli php8.2-curl,bz2,mbstring,intl>

Добавьте в фигурные скобки все необходимые расширения для новой установки. При обновлении существующей установки PHP в файле packages.txt , созданном в шаге 1, должны быть перечислены все текущие PHP пакеты.

4. Установка и включение серверных API

В системе, в которой веб-сервер интегрируется с PHP, установите дополнительные пакеты API сервера. Ниже приведены примеры наиболее популярных комбинаций:

Сервер Apache с PHP-FPM
sudo apt install php8.2-fpm 
sudo a2enconf php8.2-fpm
sudo a2disconf php8.1-fpm # При обновлении с более старой версии PHP
sudo service apache2 restart
Apache c PHP в качестве модуля Apache

Установка PHP в качестве модуля Apache не рекомендуется, если только это не требуется для пограничного варианта использования.

sudo apt install libapache2-mod-php8.2 
sudo a2enmod php8.2
sudo a2dismod php8.1 # При обновлении с более старой версии PHP
sudo service apache2 restart
Nginx с PHP-FPM
sudo apt install php8.2-fpm 
sudo service nginx restart

Затем отредактируйте соответствующий файл конфигурации Nginx, чтобы он указывал на новый PHP сокет в директиве fastcgi_pass :

- fastcgi_pass unix:/run/php/php8.1-fpm.sock; + fastcgi_pass unix:/run/php/php8.2-fpm.sock; 

5. Проверьте инсталляцию PHP 8.2

Для проверки установленной версии выполните следующие команды PHP CLI:

php -v 
php -m

Ожидается, что вывод покажет PHP 8.2 вместе со списком установленных расширений PHP.

Для проверки интеграции с веб-сервером, попробуйте запустить PHP файл через веб-сервер.

6. Очистка старых пакетов PHP

Следующие команды удаляют старые версии PHP. Рекомендуется не удалять их, пока не будет проверена правильность установки PHP 8.2.

sudo apt purge php8.1* # Измените "php8.1" на имена старых версий PHP.

Это также удалит файлы конфигурации для удаляемых пакетов.

Запуск нескольких версий PHP

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

PHP 8.2 CLI будет установлен в /usr/bin/php8.2 по умолчанию и связан с php символической ссылкой, другие версии PHP будут установлены в (/usr/bin/php80, /usr/bin/php7.4 и т.д.). По умолчанию php связано символической ссылкой с последней версией PHP по умолчанию, но это можно изменить.

Команда update-alternatives предоставляет простой способ переключения между версиями PHP для PHP CLI, если несколько версий ссылаются на один и тот же php путь.

sudo update-alternatives --config php

Запуск этой команды вызывает интерактивное приглашение выбрать путь для php указывающий на нужную версию PHP.

There are 2 choices for the alternative php (providing /usr/bin/php). 

Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.2 82 auto mode
1 /usr/bin/php8.1 81 manual mode
2 /usr/bin/php8.2 82 manual mode

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

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

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

Вы можете одновременно использовать на хосте Linux разные версии PHP. В этой статье мы покажем, как установить несколько версий PHP на примере Ubuntu/Debian.

Проверьте, какая версия PHP доступна в стандартном репозитории Ubuntu:

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

В нашем примере это php8.1.

apt search - вывести версию php в linux

Если пакет не установлен, вы можете установить его командой:

$ sudo apt install php

Если вам нужно версий PHP, которая отсутствует в стандартном репозитории, нужно подключить дополнительные. Последние пакеты PHP можно установить из репозитория Ondřej Surý.

Добавьте новый репозиторий:

$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update

Если при установке появилась ошибка FileNotFoundError: [Errno 2] No such file or directory: ‘gpg’, установите gnupg-agent:

$ sudo apt install gnupg-agent

Выведите список доступных версий PHP в репозитории:

$ sudo apt-cache search php*

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

$ sudo apt-get install php7.4
$ sudo apt-get install php8.2

Выведите список установленных версий PHP:

$ dpkg —get-selections | grep -i php

список всех установленных версий PHP

Для установки нескольких версий PHP в rpm дистрибутивах (CentOS, RHEL, Rocky и Oracle Linux), используйте команды:

# dnf -y install epel-release
# 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
# dnf module list php

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

PHP 8.2.5 (cli) (built: Apr 14 2023 04:27:02) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.5, Copyright (c) Zend Technologies with Zend OPcache v8.2.5, Copyright (c), by Zend Technologies

Версия php по умолчанию

Чтобы сменить версию PHP по-умолчанию, выполните:

$ sudo update-alternatives —config php

Доступны две версии PHP. Выберите из списка версию, которую нужно использовать по-умолчанию.

Или вы можете сразу указать нужную версию:

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

изменить версию php по умолчанию в linux

Настройки разных версий PHP находятся в разных файлах. Например, настройки для PHP 8.2:

  • Командная строка: /etc/php/8.2/cli/php.ini
  • Apache: /etc/php/8.2/apache2/php.ini
  • FPM: /etc/php/8.2/fpm/php.ini

Как изменить версию PHP на виртуальном хостинге на Linux?

Хостинг Linux от 9 рублей в месяц VPS Linux всего за 89 рублей в месяц

2) Выбираете необходимую версию PHP, нажимаете кнопку “Сохранить” и подтверждаете изменение.

изменение версии php в личном кабинете

3) После этого в нашу систему уйдет задание на изменение версии PHP.

подтвержение измения версии php
4)После изменения версии PHP придет оповещение на почту или СМС (инструкция как подключить СМС-уведомления)

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

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

https://kapelnicza.vyvod-iz-zapoya-v-stacionare-samara12.ru/