Акция на автобэкапы закончится через . Узнать промокод на скидку и подробности.

Как изменить версию PHP в консоли

С помощью панели ISPmanager вы можете установить ту версию PHP, которая вам нужна, но только для сайта. При смене версий PHP в панели, системные настройки останутся прежними и в консоли сервера будет работать предустановленная версия PHP. 

Обычно это не создает глобальных проблем, но бывают случаи, когда вам необходимо  сменить версию PHP именно в консоли. Например, устаревшая версия влияет на корректность работы ПО (пример: менеджер PHP-пакетов composer) или вам требуется особая версия для новых скриптов. Чтобы не усложнять себе жизнь запасными и не всегда удобными вариантами, вроде прописывания полного пути до бинарного файла нужной версии, учимся менять версии PHP в консоли. 

 

В этом нам поможет утилита update-alternatives. 

С ее помощью можно изменять системную версию PHP на любую установленную в системе.

Утилита позволяет удобно создавать и обслуживать символические ссылки — специальные файлы в Linux, которые содержат не данные, а указатель на другой файл. 

 

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

А теперь рассмотрим, как управлять версиями с помощью утилиты, на примере.

 

Что мы имеем?

Виртуальный сервер с ОС Centos 7 и установленной панелью ISPmanager. 

Предустановленная версия PHP — 5.4.16 (native), кроме неё в системе установлены более свежие версии 7.1 и 7.2.

Несмотря на то, что все сайты по умолчанию будут использовать версию PHP 7.2, так как она выбрана в панели и установлена в режиме «Модуль Apache», в консоли, как видите, иная версия PHP — 5.4:

 Допустим, мы хотим, чтобы в консоли у нас также была PHP 7.2.

Для этого выполним следующие команды:

update-alternatives --install /usr/local/bin/php php /opt/php72/bin/php 20 
update-alternatives --install /usr/local/bin/php php /usr/bin/php 10

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

Так в примере для версии PHP 7.2 указан приоритет 20 — больше, чем у других, следовательно, она будет выбираться по умолчанию.

 

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

update-alternatives --display php

Разберем вывод команды построчно:

php - статус «вручную» — означает, что мы вручную управляем ссылками на системный php.

ссылка указывает на /usr/bin/php — путь до файла, который подменяем.

/opt/php72/bin/php - priority 20

/usr/bin/php - priority 10 — две строки указывают на зарегистрированные нами версии PHP с указанием приоритета.

Оптимальная версия — /opt/php72/bin/php. — версия, которая будет использоваться по умолчанию.

 

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

 

Чтобы выбрать другую версию PHP или вернуться к версии по умолчанию, воспользуемся специальной командной для управления:

update-alternatives --config php

После ввода команды вы увидите текущие версии PHP, добавленные в update-alternatives, с указанием их приоритета:

*  — «звездочкой» отмечается версия, которая считается оптимальной в соответствии с ранее указанным приоритетом;

+ — плюсиком отмечается та версия, которая стоит по умолчанию.

 

В нашем примере, чтобы вернуться к предыдущей версии, выбираем пункт 2. Теперь в консоли снова системный PHP версии 5.4:

В статье мы рассказали о том, что update-alternatives используется для управления версиями PHP. Но в целом программа подходит для изменения ссылок при работе с версиями java, python и других языков программирования. 

Что же касается смены версий PHP в консоли — если возникнут сложности с настройкой, всегда можно написать в нашу техподдержку. Поможем!