Как я могу изменить версию php-cli в Ubuntu 14.04?
Я новичок в использовании Linux, и я нарушил некоторые настройки php во время взлома.
Если я выполняю php-скрипт, содержащий: phpinfo();
, он отображает версии php как 5.6,
но через командную строку, если я запускаю php -v
, он возвращает версию 7.0.
Я хочу, чтобы обе версии совпадали.
Как я могу исправить ПУТЬ к командной строке, чтобы также использовать php 5.6?
4 answers
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
Вы можете изменять версии по своему усмотрению.
Вы можете проверить этот учебник
С уважением!!
Это объяснение основано на 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, и никаких ручных настроек, касающихся справочной страницы, не требуется.
Вы можете попробовать указать путь к правильной версии php в командной строке терминала:
set PATH="/usr/bin/php5.6/bin:$PATH"
Измените путь, чтобы он соответствовал вашему собственному пути к PHP 5.6 (т.Е. если бы он был установлен первым, это могло бы быть что-то вроде "/usr/bin/php").
"$ПУТЬ" в конце добавляет текущее значение пути, поэтому не забудьте его использовать.