이 기사에서는 터미널을 다시 열거나 "고급 시스템 설정 보기"를 사용하지 않고 터미널에서 PHP 버전 간에 전환하는 방법을 보여 드리겠습니다.
https://cmder.app으로 이동하여 원하는 곳에 cmder zip을 다운로드하고 압축을 푼 다음 이 게시물을 확인하세요. cmder가 내 삶을 더 쉽게 만든 방법 - cmder 설치 방법에 대한 세부 정보를 찾을 수 있는 1부 및 2부 자신만의 별칭을 구성하세요.
데모 목적으로 다양한 버전의 PHP를 다운로드하려면 PHP 아카이브로 가서 원하는 버전을 다운로드한 후 특정 폴더(예: "C:php-archive")에 추출해야 합니다. ).
완료되면 "고급 시스템 설정 보기"를 열고 다양한 PHP 버전에 대한 새 변수를 만듭니다(아래 이미지 참조).
다음으로 "current_php"라는 이름의 변수를 하나 더 추가합니다. 이 변수는 변경할 때마다 현재 PHP 버전을 유지한 다음 경로 변수 내에서 참조합니다(아래 이미지 참조).
이제 고급 시스템 설정 내부의 모든 항목이 구성되었으므로 Chocolatey.org로 이동하여 환경 변수를 업데이트할 수 있는 Chocolatey를 설치하겠습니다.
관리자 권한으로 Powershell을 열고 지침에 따라 올바른 방법으로 설치하세요. 완료되면 터미널에 choco 또는 choco -v를 입력하여 성공적으로 설치되었는지, 어떤 버전을 가지고 있는지 확인하세요.
먼저 관리자 권한으로 터미널을 시작하고(그렇지 않으면 다음 단계가 작동하지 않습니다!!), PHP 버전을 전환하려면 setx current_php [your_target_php_location] /m을 입력해야 합니다. 여기서 [your_target_php_location]은 절대 경로입니다. 원하는 PHP 버전을 사용하거나 setx current_php %php7% /m과 같이 여기에 정의된 PHP 버전 중 하나를 사용하면 이제 경로에서 PHP를 버전 7.0으로 전환했습니다. 환경이지만 터미널은 업데이트를 다시 로드하려면 RefreshEnv.cmd, 별칭 새로 고침이라는 또 다른 명령이 필요하다는 사실을 모릅니다. 이 명령은 초콜릿과 함께 제공되며 이 Update-SessionEnvironment를 확인합니다.
마지막 단계는 프로세스를 더욱 쉽게 만들기 위해 유용한 별칭을 만드는 것입니다. 다음과 같은 별칭을 만듭니다. setphp=setx current_php %$1% /m $t Refreshenv 이제 이전 예를 사용할 수 있습니다( setx current_php %php7% / m) setphp php7을 수행하면 php7은 setx current_php %php7% /m $t Refreshenv와 동일한 별칭을 사용하여 내부의 $1 변수를 대체한 다음 PHP로 확인합니다. --version.
4단계에서 관리자 권한으로 터미널을 시작하는 방법에 대해 이야기했지만 물론 매번 그렇게 해야 한다는 것을 기억하지 못할 것이므로 이 문제를 해결하려면 추가 작업이 필요합니다.
# 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 && 새로 고침, 이 별칭은 2개의 매개 변수를 가져와 powershell 스크립트에 전달합니다. 매개 변수 $1은 환경 변수 이름을 보유하고 $2는 환경 변수를 보유합니다. 값 다음에 초콜릿 명령을 입력하여 터미널의 모든 항목을 새로 고치면 스크립트는 "관리 권한"을 확인하여 관리자 권한으로 setx 명령을 실행합니다.
이전에 "current_php" 변수에 대해 이야기했으므로 이를 예제로 사용할 것입니다. 관리자 권한으로 cmder를 시작하지 않더라도 PHP 버전을 변경하기 위해 새 별칭 setvar를 사용하려면 setvar current_php를 입력합니다. php7 또는 절대 경로를 사용하려는 경우 setvar current_php your/target/php/location.
PHP 버전을 전환한 후 발견한 문제는 별칭 키워드와 지원되는 모든 Linux 명령이 더 이상 cmder에서 작동하지 않는다는 것입니다. 지금까지 찾은 해결책은 "C:Cmdervendorgit-for-windowsusrbin"을 추가하는 것입니다. 및 "C:Cmdervendorbin"을 경로 환경 변수에 추가합니다.
물론 이와 같은 작업을 수행할 수 있습니다. /your/path/to/php8/php.exe에 대한 별칭 php8을 만들고 php8 my-script.php를 입력하여 PHP 코드를 실행할 수 있습니다. 작곡가 또는 경로 변수에 의존하는 모든 것에는 좀 더 지속성이 있는 것이 필요하므로 이 문서를 참조하세요.
한 가지 더, 결론을 내리셨겠지만 setx 명령과 Chocolatey를 사용하여 원하는 환경 변수를 업데이트할 수 있습니다.
위 내용은 하나의 명령으로 Windows에서 PHP 버전 전환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!