在开发 PHP 应用程序时,管理多个 是一项常见的挑战,由于框架依赖性和兼容性要求不同,应用程序往往需要不同的版本。虽然在不同 PHP 版本之间切换可能令人生畏,尤其是在系统层面,但有几种工具可以简化这一过程。

在本文中,我们将探讨管理多个 PHP 版本的有效解决方案,帮助您选择合适的工具来简化开发工作流程。话不多说,直入正题。

优点:
缺点:
MacOS 和 Linux 上流行的软件包管理器 简化了 PHP 版本管理。从官方网站安装 Homebrew 后,按照以下步骤设置并切换 PHP 版本:
要使用 Homebrew 管理多个 PHP 版本,我们首先要进入 。该版本库提供了可以安装的各种 PHP 版本:
brew tap shivammathur/php
一旦访问了该版本库,就可以安装所需的 PHP 版本了。下面是安装 PHP 7.4、8.2 和最新版本(目前为 8.3)的 *** :
brew install shivammathur/php/php@7.4 brew install shivammathur/php/php@8.2 brew install shivammathur/php/php
您可以根据项目需要任意组合安装版本。每个版本都将单独存储在系统中。
虽然 Homebrew 允许你同时安装多个 PHP 版本,但你的系统一次只能通过它的 PATH 使用一个版本。这就好比在你的工具箱中安装了多个 PHP 版本,但只有一个可以作为你的活动工具。
假设当前运行的是 PHP 8.3,但现在需要切换到 PHP 7.4。首先,取消当前版本的链接,将当前活动的 PHP 版本从 PATH 中 “断开”。
brew unlink php
解除当前版本的链接后,可以使用 brew link 命令链接其他版本:
brew link php@7.4
现在,当你运行 php -v 时,它将显示当前的 PHP 版本为 7.4,如下所示。

通过 CLI,Homebrew 可以轻松地在 macOS 和 Linux 上使用多个 PHP 版本。但它也有自己的优缺点。因此,在决定 Homebrew 是否适合你时,请考虑以下几点。

优点:
缺点:
是一款轻量级的 macOS 应用程序,旨在帮助开发者轻松管理和切换不同的 PHP 版本。它提供了一个熟悉而直观的用户界面,显示在屏幕顶部,让你只需点击一下就能切换 PHP 版本。该应用程序与 Homebrew 集成,让你无需使用终端即可轻松管理 PHP 设置。

如上图所示,您可以查看机器上安装的 PHP 版本、当前全局激活的版本、访问 PHP 配置文件、查看内存限制等。
该程序还提供了一种简单的 *** ,可以通过 Manage PHP Installations… 菜单安装和更新 PHP 版本。


优点:
缺点:
.phpctlrc 文件来切换 PHP 版本。 是一款旨在帮助开发人员利用 在不同 PHP 版本之间轻松切换的工具。这使得 PHPCTL 具有可移植性和平 *** 立性,可以在任何支持 Docker 的操作系统上管理 PHP 版本。它还提供了额外的 CLI 工具,如用于新项目的 phpctl create、用于交互式 shell 的 phpctl repl 和用于配置设置的 phpctl init,以及其他方便的功能。
在开始之前,你需要在系统上安装 Docker。 很好用,如果你使用的是 macOS,你可能更喜欢 。
安装好 Docker 后,就可以使用以下命令安装 PHPCTL 了:
/bin/bash -c "$(curl -fsSL https://phpctl.dev/install.sh)"
或者,如果您安装了 Homebrew,可以运行:
brew install opencodeco/phpctl/phpctl
这将把 PHPCTL 的二进制文件下载到系统中并使其可执行,让您可以立即使用该工具。脚本会自动安装 PHPCTL 并设置必要的路径,因此无需手动配置。
安装完成后,可以运行以下命令检查是否安装成功:
phpctl list
该命令将列出当前 PHP 安装的所有子命令和其他信息,如下所示。

您也可以直接运行 php 和 composer 命令。
php -v composer -v
这两个命令实际上会在 Docker 容器中运行。PHPCTL 会自动将当前目录挂载到容器中,因此你可以像在本地机器上一样处理项目。
与运行命令或点击用户界面来切换 PHP 版本的 Homebrew 或 PHP Monitor 不同,PHPCTL 需要创建一个 .phpctlrc 文件,并指定要在指定目录下运行的 PHP 版本。
PHP_VERSION=83
在该目录下运行 php 或 composer 时,PHPCTL 将自动切换到 .phpctlrc 文件中指定的 PHP 版本。
就是这样。一旦配置完成,PHPCTL 就会提供无缝的开发体验,非常方便。不过,它也有自己的利弊。
优点:
缺点:
PVM 简化了 Windows 上的 PHP 版本管理。PVM 与 类似,但专门针对 PHP,它消除了常见的 Windows PATH 变量问题,简化了不同 PHP 版本之间的切换。
从下载最新的 PVM 版本。然后,在 C:\Users\YourUsername\.pvm\bin 下创建一个文件夹,并将下载的 pvm.exe 放入该文件夹。
最后,通过系统属性 > 环境变量将 .pvm\bin 文件夹添加到系统的 PATH 变量中。
安装完成后,就可以使用 PVM 快速、轻松地切换 PHP 版本了。由于 PVM 在很大程度上受到 nvm 的启发,因此命令也很相似。下面是一些开始使用的命令:
PVM 使在 Windows 上安装多个 PHP 版本变得更容易。如果需要一个当前未安装在电脑上的版本,可以使用 install 命令:
pvm install 8.2
…将在您的计算机上安装 PHP 8.2。
如果要切换到特定的 PHP 版本,请使用 use 命令。您必须至少指定主版本和次版本,如果没有提供,PVM 将选择最新的可用补丁版本。
pvm use 8.2
如果要切换到一个特定的补丁版本,还需包含补丁编号:
pvm use 8.2.3
就这样。PVM 是 Windows 上管理 PHP 版本的好工具,但它也有自己的优点和缺点。

优点:
缺点:
是专为 macOS 设计的轻量级开发环境,让 PHP 开发变得轻而易举。Valet 的特别之处在于其内置的 PHP 版本管理功能,无需复杂配置,即可在不同项目的 PHP 版本间切换。
要开始使用,请使用 Composer 将 Valet 安装为全局包:
composer global require laravel/valet
安装完成后,运行 Valet 安装命令:
valet install
Valet makes PHP version switching simple with the valet use php@version command. For example:
通过 valet use php@version 命令,Valet 可以简单地切换 PHP 版本。例如
valet use php@8.2
如果当前版本缺失,它会通过 Homebrew 自动安装。
对于特定项目的 PHP 版本,可以在项目根目录下创建一个 .valetrc 文件,其中包含一行 php=php@8.2 。然后,只需运行
valet use
…Valet 将自动切换到 .valetrc 文件中指定的 PHP 版本。
有了正确的工具,在 macOS、Linux 或 Windows 上管理多个 PHP 版本就变得毫不费力了。希望这篇文章能帮助你选择与工作流程相匹配的解决方案。
宝塔面板现在已经成为国内许多站长必备的服务器管理必备工具。相比直接使用SSH+FTP来管理服务器,宝塔面板可以提供可视化管理,包括文件管理、数据库管理、数据备份、SSL配置等等。 如果你希望更简单高效地管理您的网站及服务器,宝塔面板是不错的选择。下面是一些宝塔面板安装及常见问题:...
宝塔面板中的网站管理是非常重要的一部分,也是站长经常需要使用到的功能模块。网站管理,主要用于管理和创建WEB站点。如果您是宝塔面板的使用用户,应该对此模块有充分的了解,以便于您更高效地管理网站。 宝塔面板网站管理模块包括:添加新网站、修改默认页、设置默认站点、站点列表、站点的运行与停止、备份站点、...
每台连接到Internet的计算机都有一个Internet协议 (IP) 地址。但是,并非所有IP地址的外观或行为都相同。 如果您使用计算机网络或服务器,了解动态IP和静态IP之间的区别至关重要。通过详细了解每个协议,您可以选择最适合您需求的解决方案。 在本文中,我们将讨论静态和动态IP之间...
对于初学者和那些刚刚进入WordPress开发的人来说,PHP是您可以开始的最佳起点之一。这是一种超级简单直接的语言,使其成为之一,因此相当容易上手,它构成了在线开发的支柱。另外,如果你想在WordPress后端工作,你肯定需要学习它。 但是,如果您不想在昂贵的大学课程上花费数月或数年时间怎么...
SaaS、IaaS和PaaS这三个术语几乎可以互换使用——尽管它们根本不能互换。那么它们之间有什么区别呢? 虽然您可能听说过软件即服务 (SaaS),但IaaS和PaaS在特定技术社区之外鲜为人知。分别是基础架构即服务和平台即服务的缩写,这些工具以及SaaS都通过云交付资源。然而,正是交付的资...
Web服务器是您网站的重要组成部分。它们使您的内容可供尝试访问它的访问者使用。但是,您可能想知道:Tomcat是什么,它与其他服务器软件有何不同?幸运的是,我们整理了一份指南来回答这些问题(以及更多!)。 在这篇文章中,我们将仔细研究Tomcat及其工作原理。我们还将讨论它的优缺点,并向您展示...