我试过用MacPorts更新到最新版本的PHP,在输入sudo port install php
并安装了所有必要的软件包后,当我在终端输入php --version
时,我仍然得到:
PHP 7.3.29 (cli) (built: Aug 15 2021 23:10:16) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.29, Copyright (c) 1998-2018 Zend Technologies
为什么我的计算机上仍然有过时版本的PHP而不是PHP 8?
1条答案
按热度按时间mepcadol1#
MacPorts中的
php
端口是一个填充程序,它只安装/opt/local/share/doc/php/README
文件,并依赖于(当前)php82
。单击https://ports.macports.org/port/php/details/上的某个 * 文件 * 链接可查看此内容。当你在shell中输入
php --version
时,运行什么取决于符号链接/opt/local/bin/php
,但是这个符号链接是由port-select(1) manpage中解释的端口选择机制管理的:端口选择提供了一种从通用工具或端口的不同实现中进行选择的机制。选择其中一个选项会使其成为主版本或实现,例如,当您没有在命令行上显式选择版本或实现时,默认运行的版本或实现。
请注意,端口选择只是为了方便用户使用。例如,它不会影响MacPorts编译软件时使用的编译器,也不会影响一个端口构建MySQL的副本。如果有一个用户可见的选择,它通常是作为端口上的一个变量提供的。如果端口选择机制影响了一个端口构建的方式,这应该被视为一个bug。
一个例子是MySQL和MySQL分支的集合,其中有mysql 51、mysql 55、mysql 56、mariadb、mariadb-10.0、mariadb-11.0、percona,可能还有其他。端口选择允许您选择其中的哪个版本作为运行版本,当您只是从MySQL套件运行mysql或其他命令时。
在您的示例中,您可能以前使用过
sudo port select --set php php73
。要将PHP 8.2设置为默认值,请运行sudo port select --set php php82
。运行port select --summary
查看当前选择的选项。