> 백엔드 개발 > PHP 튜토리얼 > 하나의 명령으로 Windows에서 PHP 버전 전환

하나의 명령으로 Windows에서 PHP 버전 전환

Mary-Kate Olsen
풀어 주다: 2024-11-28 16:57:15
원래의
477명이 탐색했습니다.

이 기사에서는 터미널을 다시 열거나 "고급 시스템 설정 보기"를 사용하지 않고 터미널에서 PHP 버전 간에 전환하는 방법을 보여 드리겠습니다.

1. cmder 다운로드 및 설치

https://cmder.app으로 이동하여 원하는 곳에 cmder zip을 다운로드하고 압축을 푼 다음 이 게시물을 확인하세요. cmder가 내 삶을 더 쉽게 만든 방법 - cmder 설치 방법에 대한 세부 정보를 찾을 수 있는 1부 및 2부 자신만의 별칭을 구성하세요.

2. PHP 아카이브를 준비합니다:

데모 목적으로 다양한 버전의 PHP를 다운로드하려면 PHP 아카이브로 가서 원하는 버전을 다운로드한 후 특정 폴더(예: "C:php-archive")에 추출해야 합니다. ).

완료되면 "고급 시스템 설정 보기"를 열고 다양한 PHP 버전에 대한 새 변수를 만듭니다(아래 이미지 참조).

Switch php version on windows with one command

다음으로 "current_php"라는 이름의 변수를 하나 더 추가합니다. 이 변수는 변경할 때마다 현재 PHP 버전을 유지한 다음 경로 변수 내에서 참조합니다(아래 이미지 참조).

Switch php version on windows with one command

3. 초콜릿 설치

이제 고급 시스템 설정 내부의 모든 항목이 구성되었으므로 Chocolatey.org로 이동하여 환경 변수를 업데이트할 수 있는 Chocolatey를 설치하겠습니다.

관리자 권한으로 Powershell을 열고 지침에 따라 올바른 방법으로 설치하세요. 완료되면 터미널에 choco 또는 choco -v를 입력하여 성공적으로 설치되었는지, 어떤 버전을 가지고 있는지 확인하세요.

4. 터미널에서 PHP 버전 전환

먼저 관리자 권한으로 터미널을 시작하고(그렇지 않으면 다음 단계가 작동하지 않습니다!!), 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를 확인합니다.

5. 내가 네게 약속한 단 하나의 명령

마지막 단계는 프로세스를 더욱 쉽게 만들기 위해 유용한 별칭을 만드는 것입니다. 다음과 같은 별칭을 만듭니다. 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.

6. 발생할 수 있는 문제

PHP 버전을 전환한 후 발견한 문제는 별칭 키워드와 지원되는 모든 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿