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

federoff

Administrator
Команда форума
11.03.2020
43
2
13
Если у вас установлено несколько версий php в системе, то при вызове команды php в консоли, будет использоваться одна из них. Иногда необходимо для каких-то скриптов или сервисов управлять версией php в консоли. Я расскажу, как ее изменить.

Допустим на сервере 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 будет найден раньше.
 

jecks0

Newbie
07.05.2020
1
0
1
Спасибо! Только вчера искал! Про даунгрейд, и апгрейд добавь, если можешь!
 

Об LS-LA

  • Мы, группа единомышленников, основная цель которых повышать уровень знаний и умений.
    Не забывая о материальном благополучии каждого)

About LS-LA

  • We, a group of like-minded people, whose main goal is to increase the level of knowledge and skills.
    Not forgetting about everyone’s material well-being)

Быстрая навигация

Пользовательское меню