作为生产环境中的初学者,您将面临许多在执行个人项目时没有意识到的问题,其中之一是必须处理使用旧版本 PHP 的旧项目,但也使用最新的 PHP 版本同一时间。不仅仅是 PHP,每种编程语言都会发生这种情况,因此我决定为那些刚开始使用并遇到此问题的人写这篇文章。
最简单的方法是在 docker 上运行它,但这不是现在的主题,所以让我们开始吧。

本教程使用 Ubuntu,但它适用于任何其他发行版。

安装多个版本

在 Ubuntu LTS 上,您需要添加 ondrej 存储库来安装旧版本:

sudo add-apt-repository ppa:ondrej/php

对于这个例子,我将安装 php7.3

sudo apt install php7.3

如果您不指定 PHP 版本,则将从 Ubuntu 默认存储库安装最新版本的 PHP

sudo apt install php

现在在终端上,如果你检查你的 PHP 版本,默认情况下它将来自 Ubuntu 的默认存储库

php -v
PHP 8.2.8 (cli) (built: Jul  8 2023 07:10:21) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.8, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.8, Copyright (c), by Zend Technologies

现在,为了使用旧的 PHP 版本,我们将创建一个符号链接,因此让我们将默认的 PHP 版本移动到具有其版本名称的文件夹中。

sudo mv /usr/bin/php /usr/bin/php8.2

现在,如果您尝试使用php -v,它将不起作用,因为现在它已更改为php8.2网址:yii666.com

php要使用旧版本作为 PHP 命令,您现在将创建一个符号链接,该链接在调用时调用您所需的 PHP 版本。

sudo ln -s /usr/bin/php7.3 /usr/bin/php

现在,如果您尝试php -v,您在创建符号链接时指定的 PHP 版本应该运行。

php -v
PHP 7.3.33-11+ubuntu22.04.1+deb.sury.org+1 (cli) (built: Jun  8 2023 15:22:14) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.33, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.33-11+ubuntu22.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

现在要切换回任何其他 php 版本,您必须取消链接才能创建另一个符号链接,

sudo unlink /usr/bin/php

只需重复链接和取消链接即可在多个 PHP 版本之间来回切换

sudo ln -s /usr/bin/php8.2 /usr/bin/php

感谢您来到这里,请随时分享您的想法和问题

在 Linux (Ubuntu/Debian) 上,还可以使用以下命令 update-alternatives:

sudo update-alternatives --list php
sudo update-alternatives --config php
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。