如何添加路径到 update-alternatives --config php

问题描述 投票:0回答:3

我正在 Ubuntu 16 机器上工作:

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:        16.04
Codename:       xenial

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

我需要更改

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

cd /etc/alternatives
ls -ls | grep php
0 lrwxrwxrwx 1 root root  15 Mar  7 06:31 php -> /usr/bin/php7.0

我想将路径

/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:

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

我尝试做的第二件事是:

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

第三次尝试,我去了

/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

它只有一个缺点。 当我运行此命令时:

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

问题:如何将

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

linux ubuntu plesk php-7.2
3个回答
8
投票

您必须先安装替代路径才能将其显示在替代列表中, 请参阅手册页
通过使用此命令,

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

它将把您的

/opt/plesk/php/7.2/bin/php
安装到替代列表中


6
投票

我必须附加一个额外的强制性选项

priority
。该值必须是整数。

这对我有用:

sudo update-alternatives --install /usr/bin/php php /opt/plesk/php/7.2/bin/php 100

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

  • 法尔
  • phar.phar
  • 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

0
投票

我必须调整 Torsten Homberger 的答案,以适应 Cyberpanel、Ubuntu 22.04 中的 LSPHP 8.2

sudo update-alternatives --install /usr/bin/php php /usr/local/lsws/lsphp82/bin/php 100
sudo update-alternatives --install /usr/bin/phar phar /usr/local/lsws/lsphp82/bin/phar 100
sudo update-alternatives --install /usr/bin/phar.phar phar.phar /usr/local/lsws/lsphp82/bin/phar.phar 100

然后运行

update-alternatives --config php

并选择了

`* 4            /usr/local/lsws/lsphp82/bin/php     100       manual mode`

希望这对将来的人或我自己有帮助,因为我总是忘记这些设置。

© www.soinside.com 2019 - 2024. All rights reserved.