Ответ 1
sudo update-alternatives --set php /usr/bin/php5.6
См.: Источник
Я новичок в использовании Linux, и я нарушил некоторые настройки php во время подделки.
Если я выполняю php-скрипт, содержащий: phpinfo();
он показывает версии php как 5.6, но через командную строку, если я запустил php -v
он возвращает версию 7.0.
Я хочу, чтобы обе версии совпадали.
Как я могу исправить мою командную строку PATH, чтобы также использовать php 5.6?
sudo update-alternatives --set php /usr/bin/php5.6
См.: Источник
Из 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
Вы можете изменить версии по своему усмотрению.
Вы можете проверить этот учебник
С уважением!!
Большинство ответов здесь обрабатывают 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
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
cli
, web
и cgi
может быть настроен иначе. /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 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-странице, не требуется.
Вы можете попробовать установить путь к правильной версии php в командной строке терминала:
set PATH="/usr/bin/php5.6/bin:$PATH"
Измените путь, соответствующий вашему собственному пути к PHP 5.6 (т.е. Если он был установлен первым, это может быть что-то вроде "/usr/bin/php").
"$ PATH" в конце добавляет текущее значение пути, поэтому не забудьте его использовать.