我正在 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
时显示的路径列表中?
您必须先安装替代路径才能将其显示在替代列表中,
请参阅手册页
通过使用此命令,
update-alternatives --install /usr/bin/php php /opt/plesk/php/7.2/bin/php 71
它将把您的
/opt/plesk/php/7.2/bin/php
安装到替代列表中
我必须附加一个额外的强制性选项
priority
。该值必须是整数。
这对我有用:
sudo update-alternatives --install /usr/bin/php php /opt/plesk/php/7.2/bin/php 100
也许您还想添加这些命令的替代品:
这些命令将为所有五个命令添加替代项(也称为链接组):
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
我必须调整 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`
希望这对将来的人或我自己有帮助,因为我总是忘记这些设置。