Как изменить версию php-cli на Ubuntu 14.04?

Я новичок в использовании Linux, и я нарушил некоторые настройки php во время подделки.

Если я выполняю php-скрипт, содержащий: phpinfo(); он показывает версии php как 5.6, но через командную строку, если я запустил php -v он возвращает версию 7.0.

Я хочу, чтобы обе версии совпадали.
Как я могу исправить мою командную строку PATH, чтобы также использовать php 5.6?

Ответ 1

sudo update-alternatives --set php /usr/bin/php5.6

См.: Источник

Ответ 2

Из PHP 7.1 => PHP 5.6

sudo update-alternatives --set php /usr/bin/php5.6

Из PHP 5.6 => PHP 7.1

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

Вы можете изменить версии по своему усмотрению.

Вы можете проверить этот учебник

С уважением!!

Ответ 3

Это объяснение основано на Ubuntu 16.04, но ожидается, что он будет работать и для других версий

Большинство ответов здесь обрабатывают php-версию, используя команду

sudo update-alternatives --set ...

Хотя команда весьма полезна, она никогда не объясняла, что именно делает. Вот объяснение, включая резервное копирование и некоторые параметры:

Получить информацию

  • update-alternatives команд отображают или изменяют символические ссылки, которые находятся в альтернативном направлении, которое находится в Ubuntu, обычно определяемом как /etc/alternatives но которое также может быть изменено.
  • полный список опций, связанных с update-alternatives может быть показан с помощью команд update-alternatives --help, более update-alternatives --help объяснение может быть показано с помощью man update-alternatives.
  • Поскольку update-alternatives командной update-alternatives являются первичными изменениями символических ссылок в специальной папке, содержимое этой папки может отображаться также с помощью общих команд, как показано все элементы, начинающиеся с php:
 $ ls -al /etc/alternatives/php*  
lrwxrwxrwx 1 root root 15 Jan 19 02:58 /etc/alternatives/php -> /usr/bin/php7.2  
lrwxrwxrwx 1 root root 31 Jan 19 02:58 /etc/alternatives/php.1.gz -> /usr/share/man/man1/php7.2.1.gz  
lrwxrwxrwx 1 root root 19 Jan 19 03:00 /etc/alternatives/php-cgi -> /usr/bin/php-cgi7.2  
lrwxrwxrwx 1 root root 35 Jan 19 03:00 /etc/alternatives/php-cgi.1.gz -> /usr/share/man/man1/php-cgi7.2.1.gz 
lrwxrwxrwx 1 root root 23 Jan 19 03:00 /etc/alternatives/php-cgi-bin -> /usr/lib/cgi-bin/php7.2
  • для отображения элементов с помощью команды update-alternatives используйте эту команду:
$ update-alternatives --list php  
/usr/bin/php7.0  
/usr/bin/php7.2
  • чтобы показать более подробную информацию, вы можете выполнить это:
$ update-alternatives --display php
php - auto mode
  link best version is /usr/bin/php7.2
  link currently points to /usr/bin/php7.2
  link php is /usr/bin/php
  slave php.1.gz is /usr/share/man/man1/php.1.gz
/usr/bin/php7.0 - priority 70
  slave php.1.gz: /usr/share/man/man1/php7.0.1.gz
/usr/bin/php7.2 - priority 72
  slave php.1.gz: /usr/share/man/man1/php7.2.1.gz

Наконец, мы все еще хотим знать, какие php-версии мы можем связать. Следующая команда показывает список доступных в настоящее время php-версий в /usr/bin/:

$ ls -al /usr/bin/php*
lrwxrwxrwx 1 root root      21 Jan  1 19:47 /usr/bin/php -> /etc/alternatives/php
-rwxr-xr-x 1 root root 4385840 Apr  5 18:13 /usr/bin/php7.0
-rwxr-xr-x 1 root root 4875488 Apr  5 18:10 /usr/bin/php7.2
lrwxrwxrwx 1 root root      25 Jan  1 19:47 /usr/bin/php-cgi -> /etc/alternatives/php-cgi
-rwxr-xr-x 1 root root 4279672 Apr  5 18:13 /usr/bin/php-cgi7.0
-rwxr-xr-x 1 root root 4769272 Apr  5 18:10 /usr/bin/php-cgi7.2
-rwxr-xr-x 1 root root     663 Feb 29  2016 /usr/bin/phpunit

Резервное копирование информации

  • Чтобы сделать информационное резервное копирование этих символических ссылок, просто сохраните список в файле и сохраните его на своем рабочем столе с помощью этой команды (скорректируйте имя файла alternatives-php.txt в соответствии с вашими потребностями):
$ echo "command: update-alternatives --list php" > ~/Desktop/alternatives-php.txt
$ update-alternatives --display php >> ~/Desktop/alternatives-php.txt 
$ echo "command: update-alternatives --display php" >> ~/Desktop/alternatives-php.txt
$ update-alternatives --display php >> ~/Desktop/alternatives-php.txt  

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

$ echo "command: ls -al /etc/alternatives/php*" >> ~/Desktop/alternatives-php.txt
$ ls -al /etc/alternatives/php* >> ~/Desktop/alternatives-php.txt

... и доступных PHP-версий:

$ echo "command: ls -al /usr/bin/php*" >> ~/Desktop/alternatives-php.txt
$ ls -al /usr/bin/php* >> ~/Desktop/alternatives-php.txt

Измените PHP-версию для командной строки

  • Если мы сначала фильтруем man -documents, список в /etc/alternatives/php*/ включает 3 строки:
 $ ls -al /etc/alternatives/php*  
lrwxrwxrwx 1 root root 15 Jan 19 02:58 /etc/alternatives/php -> /usr/bin/php7.2  
lrwxrwxrwx 1 root root 19 Jan 19 03:00 /etc/alternatives/php-cgi -> /usr/bin/php-cgi7.2  
lrwxrwxrwx 1 root root 23 Jan 19 03:00 /etc/alternatives/php-cgi-bin -> /usr/lib/cgi-bin/php7.2
  • С одной стороны, было бы полезно иметь последовательные ссылки для всей системы, с другой стороны, тот факт, что несколько версий php уже существуют в системе, подразумевает, что он используется для разработки, а php для cli, web и cgi может быть настроен иначе.
    Какую символическую ссылку нужно изменить?
    PHP для Интернета обычно не настраивается с использованием символических ссылок в /etc/alternatives а cli (commandline) обычно не использует cgi-версию или cgi-конфигурацию. Поэтому можно предположить, что изменение только символической ссылки для php будет работать для командной строки, изменение php-cgi и php-cgi-bin, вероятно, не требуется. Обычно последняя версия связана по умолчанию, поэтому приведенная ниже команда использует более старую версию, взятую из списка в /usr/bin/:
$ sudo update-alternatives --set php /usr/bin/php7.0
update-alternatives: using /usr/bin/php7.0 to provide /usr/bin/php (php) in manual mode

контроль

Проверка изменения:

$: php -v
PHP 7.0.29-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Apr  5 2018 08:34:50) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.29-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2017, by Zend Technologies

Это изменение было принято, и используемая версия стала более старой.

  • Теперь мы проверяем версию, на которой написана man-страница:
$: man php
... [SCROLL DOWN]
VERSION INFORMATION
   This manpage describes php, version 7.0.29-1+ubuntu16.04.1+deb.sury.org+1.
COPYRIGHT
...

Это означает, что PHP-версия совместима с man-страницей, а команда man php возвращает правильные описания текущей версии php и никаких ручных настроек, относящихся к man-странице, не требуется.

Ответ 4

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

set PATH="/usr/bin/php5.6/bin:$PATH"

Измените путь, соответствующий вашему собственному пути к PHP 5.6 (т.е. Если он был установлен первым, это может быть что-то вроде "/usr/bin/php").

"$ PATH" в конце добавляет текущее значение пути, поэтому не забудьте его использовать.