windows下一键切换php版本
在本文中,我将向您展示如何从终端在 PHP 版本之间切换,而无需重新打开终端或使用“查看高级系统设置”。
1.下载并安装cmder
前往 https://cmder.app,下载并解压 cmder zip 文件,然后查看这篇文章《cmder 如何让我的生活更轻松》- 第一部分和第二部分,您可以在其中找到有关如何安装 cmder 的详细信息并配置您自己的别名。
2. 准备您的 php 存档:
出于演示目的,我们需要下载不同版本的 php 并转到 PHP 存档,下载所需的版本,然后将它们解压到特定文件夹中(例如“C:php-archive”) ).
完成后,打开“查看高级系统设置”并为不同的 PHP 版本创建新变量(见下图)。
接下来,您将添加一个名为“current_php”的变量,例如,该变量将在您每次更改时保存当前的 php 版本,然后在路径变量中引用它(见下图)。
3.安装巧克力
现在我们已经完成了高级系统设置中的所有内容,我们将转到chocolatey.org并安装chocolatey,这将允许您更新环境变量。
以管理员权限打开 Powershell,然后按照说明以正确的方式安装它,完成后在终端中输入 choco 或 choco -v 即可查看是否安装成功以及安装的版本。
4.从终端切换php版本
首先,以管理员权限启动你的终端(否则接下来的步骤将不起作用!!),要切换你的 php 版本,你需要输入 setx current_php [your_target_php_location] /m 其中 [your_target_php_location] 是绝对路径您想要的 php 版本或使用您在此处定义的 php 版本之一,例如 setx current_php %php7% /m,现在您已将路径中的 php 切换到版本 7.0环境,但你的终端不知道,要重新加载更新,你需要另一个命令,它是RefreshEnv.cmd,别名refreshenv,这个是巧克力自带的,查看这个Update-SessionEnvironment。
5.我答应过你的一个命令
最后一步是创建一个有用的别名,使过程更加容易,创建一个像这样的别名: setphp=setx current_php %$1% /m $tfreshenv 现在我们可以采用前面的示例( setx current_php %php7% / m )并执行此 setphp php7,php7 将使用别名替换内部的 $1 变量,该别名相当于 setx current_php %php7% /m $tfreshenv,然后检查php --版本。
在第四步中,我们讨论了以管理员权限启动您的终端,但当然您不会记得每次都这样做,因此为了解决这个问题,我们需要一些额外的东西。
# Parameters: param( [string]$variableName, [string]$variableValue ) # Check if running as administrator If (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { # Relaunch as administrator with hidden window $arguments = "-ExecutionPolicy Bypass -File `"$PSCommandPath`" -variableName `"$variableName`" -variableValue `"$variableValue`"" Start-Process powershell -ArgumentList $arguments -Verb RunAs -WindowStyle Hidden exit } if ($variableName -and $variableValue) { $variableValueContent = [System.Environment]::GetEnvironmentVariable($variableValue, [System.EnvironmentVariableTarget]::Machine) if ($variableValueContent) { [System.Environment]::SetEnvironmentVariable($variableName, $variableValueContent, [System.EnvironmentVariableTarget]::Machine) } else { [System.Environment]::SetEnvironmentVariable($variableName, $variableValue, [System.EnvironmentVariableTarget]::Machine) } Write-Host "Environment variable '$variableName' set to '$variableValue' at the system level." } else { Write-Host "Please provide both a variable name and value." }
将此 powershell 脚本保存在名称 set-env.ps1 下的某个位置,然后前往您的 cmder 终端,创建一个别名,如下所示 setvar=powershell -ExecutionPolicy Bypass -File "/your/path/to/set-env.ps1" $1 $2 &&freshenv,这个别名会获取2个参数并将它们传递给powershell脚本,参数$1将保存环境变量名称,$2将保存环境变量值,后面是chocolatey命令刷新终端的所有内容,然后脚本检查“管理权限”以使用管理员权限运行 setx 命令。
由于我们之前讨论过“current_php”变量,因此我们将使用它作为示例,即使我们没有以管理员权限启动 cmder,也可以使用新的别名 setvar 来更改 php 版本,我们输入 setvar current_php php7,或者如果您喜欢使用绝对路径类型 setvar current_php your/target/php/location。
6.您可能遇到的问题
切换 php 版本后发现的问题是,alias 关键字和所有支持的 linux 命令不再在 cmder 上运行,到目前为止我找到的解决方案是添加“C:Cmdervendorgit-for-windowsusrbin”和“C:Cmdervendorbin”到路径环境变量。
7. 最后的想法
当然你可以这样做,为 /your/path/to/php8/php.exe 创建一个别名 php8 并通过输入 php8 my-script.php 来运行你的 php 代码,但是当涉及到类似的事情时作曲家或任何依赖于路径变量的东西,那么你将需要更持久的东西,因此这篇文章。
还有一件事,正如您可能已经得出的结论,您可以使用 setx 命令和 Chocolatey 来更新您喜欢的任何环境变量。
以上是windows下一键切换php版本的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

会话劫持可以通过以下步骤实现:1.获取会话ID,2.使用会话ID,3.保持会话活跃。在PHP中防范会话劫持的方法包括:1.使用session_regenerate_id()函数重新生成会话ID,2.通过数据库存储会话数据,3.确保所有会话数据通过HTTPS传输。

在PHPStorm中如何进行CLI模式的调试?在使用PHPStorm进行开发时,有时我们需要在命令行界面(CLI)模式下调试PHP�...

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。
