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


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

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

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

Author: indivisible, 2017-03-27

4 answers

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

Пожалуйста, смотрите: Источник

 49
Author: Sergey Repin, 2017-04-02 12:27:25

Из 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

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

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

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

 10
Author: Radames E. Hernandez D.L.R., 2017-11-07 18:13:52

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

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

sudo update-alternatives --set ...

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

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

  • Команда update-alternatives отображает или изменяет символические ссылки, которые находятся в альтернативном направлении, которое в Ubuntu обычно определяется как /etc/alternatives, но его тоже можно изменить.
  • полный список опций, связанных с update-alternatives, может быть показан с помощью команды update-alternatives --help, более глубокое объяснение может быть показано с помощью man 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-документы, список в /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 (командная строка), как правило, не использует 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 php
... [SCROLL DOWN]
VERSION INFORMATION
   This manpage describes php, version 7.0.29-1+ubuntu16.04.1+deb.sury.org+1.
COPYRIGHT
...

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

 3
Author: David, 2018-04-09 08:02:29

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

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

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

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

 0
Author: DocWeird, 2017-03-27 08:14:41