如何添加路径到更新替代方案 --config php

Jul*_*ian 2 linux ubuntu plesk php-7.2

我正在 Ubuntu 16 机器上工作:

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:        16.04
Codename:       xenial
Run Code Online (Sandbox Code Playgroud)

我对 Ubuntu 的体验是“中等”。

我需要更改php命令在替代方案中引用的路径。我做了以下事情:

cd /etc/alternatives
ls -ls | grep php
0 lrwxrwxrwx 1 root root  15 Mar  7 06:31 php -> /usr/bin/php7.0
Run Code Online (Sandbox Code Playgroud)

我想将路径更改/usr/bin/php7.0为/opt/plesk/php/7.2/bin/php.

我尝试的第一件事是update-alternatives --config php. 这给了我这个:

替代 php 有 1 个选择(提供 /usr/bin/php)。

  Selection    Path             Priority   Status
------------------------------------------------------------
  0            /usr/bin/php7.0   70        auto mode
* 1            /usr/bin/php7.0   70        manual mode

Press <enter> to keep the current choice[*], or type selection number:
Run Code Online (Sandbox Code Playgroud)

遗憾的是,我无法使用此命令添加其他路径。

我试图做的第二件事情是这样的:update-alternatives --set php /opt/plesk/php/7.2/bin/php。这样做的结果:

update-alternatives: error: alternative /opt/plesk/php/7.2/bin/php for php not registered; not setting
Run Code Online (Sandbox Code Playgroud)

第三次尝试,我去/etc/alternatives使用了unlink php. 然后,我创建了这样一个新的符号链接:ln -s /opt/plesk/php/7.2/bin/php php。这改变了替代方案的道路。你自己看:

root@xxtweb03:/etc/alternatives# ls -ls | grep php
0 lrwxrwxrwx 1 root root  26 Apr  4 12:18 php -> /opt/plesk/php/7.2/bin/php
Run Code Online (Sandbox Code Playgroud)

它只有一个缺点。当我运行此命令:update-alternatives --config php那么/opt/plesk/php/7.2/bin/php是不是选择之一。

这就是我得到的:

root@xxtweb03:/# update-alternatives --config php
There is 1 choice for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
  0            /usr/bin/php7.0   70        auto mode
  1            /usr/bin/php7.0   70        manual mode
Run Code Online (Sandbox Code Playgroud)

问题:如何添加/opt/plesk/php/7.2/bin/php到运行时显示的路径列表中update-alternatives --config php?

小智 7

您必须先安装替代路径才能在替代列表中显示它,请 使用此命令查看手册页
,

update-alternatives --install /usr/bin/php php /opt/plesk/php/7.2/bin/php 71

它会将您安装/opt/plesk/php/7.2/bin/php到替代列表中


小智 5

我必须附加一个附加的强制性选项priority。该值必须是整数。

这对我有用:

sudo update-alternatives --install /usr/bin/php php /opt/plesk/php/7.2/bin/php 100
Run Code Online (Sandbox Code Playgroud)

也许您还想添加这些命令的替代方案:

  • 法尔
  • 法尔法尔
  • php-cgi
  • php-cgi-bin

这些命令将为所有五个命令添加替代项(也称为链接组):

sudo update-alternatives --install /usr/bin/php php /opt/plesk/php/7.2/bin/php 100
sudo update-alternatives --install /usr/bin/phar phar /opt/plesk/php/7.2/bin/phar 100
sudo update-alternatives --install /usr/bin/phar.phar phar.phar /opt/plesk/php/7.2/bin/phar.phar 100
sudo update-alternatives --install /usr/bin/php-cgi php-cgi /opt/plesk/php/7.2/bin/php-cgi 100
sudo update-alternatives --install /usr/lib/cgi-bin/php php-cgi-bin /opt/plesk/php/7.2/bin/php-cgi 100
Run Code Online (Sandbox Code Playgroud)