我正在研究一些基于 PHP 的代码的代码空间。当我运行这个命令时:
php --ini
Configuration File (php.ini) Path: /opt/php/8.2.4/ini
Loaded Configuration File: /opt/php/8.2.4/ini/php.ini
Scan for additional .ini files in: /opt/php/8.2.4/ini/conf.d
Additional .ini files parsed: (none)
所以我使用这个命令安装 PHP v7.4:
sudo apt install php7.4-common
当我尝试
update-alternatives --config php
时,它说:
链接组php只有一个选择(提供/usr/bin/php):/usr/bin/php7.4 无需配置。
但是我的代码对 php7.4 有一些依赖,但我仍然无法完全运行我的代码。7
php --ini
命令也返回相同的结果。
php --version
返回PHP 8.2.4
似乎说 php8 由于某些原因安装在包管理器之外?但不管怎样,你仍然可以通过提供完整路径来调用你想要的任何二进制文件,所以不要这样做
$ composer install
你可以做
$ /usr/bin/php7.4 composer install
这将使用 7.4 运行作曲家。如果你想深入挖掘,你需要检查你的
$PATH
,因为它可以优先考虑/opt/php
。
编辑: 因为
composer
现在是 PHP 的参数,它将不再由 shell 自动定位,所以如果它不在您的当前目录中,您需要提供到 composer
的完整路径。您可以通过 which composer
获得它,或者您可以像这样进行 shell 调用(假设它是 bash):
$ /usr/bin/php7.4 "$(which composer)" install
哪个(假设作曲家在您的
$PATH
中)应该可以解决问题。
或者,如果有可能,您可以检查是否可以使用 PHP7.4 的专用图像 - 这将是更简洁的方法。