Heim >Backend-Entwicklung >PHP-Tutorial >Wechseln Sie die PHP-Version unter Windows mit einem Befehl

Wechseln Sie die PHP-Version unter Windows mit einem Befehl

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-28 16:57:15439Durchsuche

In diesem Artikel zeige ich Ihnen, wie Sie von Ihrem Terminal aus zwischen Ihren PHP-Versionen wechseln können, ohne es erneut zu öffnen oder die Option „Erweiterte Systemeinstellungen anzeigen“ zu verwenden.

1. Laden Sie cmder herunter und installieren Sie es

Gehen Sie zu https://cmder.app, laden Sie die Cmder-ZIP-Datei herunter und extrahieren Sie sie, wo immer Sie möchten. Schauen Sie sich als Nächstes diesen Beitrag an. Wie Cmder mein Leben einfacher gemacht hat – Teil I und Teil II, wo Sie Details zur Installation von Cmder finden und konfigurieren Sie Ihre eigenen Aliase.

2. Bereiten Sie Ihr PHP-Archiv vor:

Zu Demozwecken müssen wir verschiedene PHP-Versionen herunterladen. Gehen Sie dazu zum PHP-Archiv, laden Sie die gewünschten Versionen herunter und extrahieren Sie sie anschließend in einen bestimmten Ordner (zum Beispiel „C:php-archive“) ).

Sobald Sie fertig sind, öffnen Sie „Erweiterte Systemeinstellungen anzeigen“ und erstellen Sie neue Variablen für Ihre verschiedenen PHP-Versionen (siehe Bild unten).

Switch php version on windows with one command

Als nächstes fügen Sie eine weitere Variable hinzu, die beispielsweise den Namen „current_php“ hat. Diese Variable speichert Ihre aktuelle PHP-Version, wann immer Sie sie ändern, und verweist dann innerhalb der Pfadvariablen darauf (siehe Abbildung unten).

Switch php version on windows with one command

3. Installieren Sie schokoladig

Da wir nun alle erweiterten Systemeinstellungen eingerichtet haben, gehen wir zu Chocolatey.org und installieren Chocolatey, wodurch Sie die Umgebungsvariablen aktualisieren können.

Öffnen Sie Powershell mit Administratorrechten und befolgen Sie einfach die Anweisungen, um es richtig zu installieren. Wenn Sie fertig sind, geben Sie choco oder choco -v in das Terminal ein, um zu sehen, ob Sie es erfolgreich installiert haben und welche Version Sie haben.

4. PHP-Version vom Terminal wechseln

Starten Sie zunächst Ihr Terminal mit Administratorrechten (andernfalls funktionieren die nächsten Schritte nicht!!). Um Ihre PHP-Version zu wechseln, müssen Sie setx current_php [Ihr_PHP-Zielort] /m eingeben, wobei [Ihr_PHP-Zielort] der absolute Pfad zum ist PHP-Version, die Sie möchten, oder verwenden Sie eine Ihrer hier definierten PHP-Versionen wie folgt: setx current_php %php7% /m, jetzt haben Sie PHP auf Version 7.0 umgestellt die Pfadumgebung, aber Ihr Terminal weiß das nicht, um die Updates neu zu laden, benötigen Sie einen anderen Befehl, nämlich RefreshEnv.cmd, alias „refreshenv“, dieser wird mit „chocolatey“ geliefert, überprüfen Sie diese Update-SessionEnvironment.

5. Der eine Befehl, den ich dir versprochen habe

Der letzte Schritt besteht darin, einen hilfreichen Alias ​​zu erstellen, um den Prozess noch einfacher zu machen. Erstellen Sie einen Alias ​​wie diesen: setphp=setx current_php %$1% /m $tfreshenv Jetzt können wir das vorherige Beispiel übernehmen ( setx current_php %php7% / m ) und führen Sie dies mit setphp php7 aus. PHP7 ersetzt die darin enthaltene Variable $1 durch den Alias, der setx current_php %php7% /m $t entspricht Refreshenv, dann überprüfen Sie mit php --version.

Im 4. Schritt haben wir darüber gesprochen, Ihr Terminal mit Administratorrechten zu starten, aber natürlich werden Sie nicht jedes Mal daran denken, das zu tun. Um dieses Problem zu lösen, benötigen wir also etwas Extra.

# 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."
}

Speichern Sie dieses Powershell-Skript irgendwo unter dem Namen set-env.ps1 und gehen Sie zu Ihrem cmder-Terminal. Erstellen Sie einen Alias ​​wie diesen: setvar=powershell -ExecutionPolicy Bypass -File "/your/path/to/set-env.ps1" $1 $2 &&freshenv, dieser Alias ​​ruft zwei Parameter ab und übergibt sie an das Powershell-Skript. Der Parameter $1 enthält den Namen der Umgebungsvariablen und $2 Halten Sie den Wert der Umgebungsvariablen gedrückt, gefolgt vom Befehl Chocolatey, um alles für Ihr Terminal zu aktualisieren. Das Skript prüft dann, ob „Administratorrechte“ vorliegen, um den Befehl setx mit Administratorrechten auszuführen.

Da wir zuvor über eine „current_php“-Variable gesprochen haben, werden wir sie für das Beispiel verwenden. Um unseren neuen Alias ​​„setvar“ zu verwenden, um die PHP-Version zu ändern, auch wenn wir cmder nicht mit Administratorrechten gestartet haben, geben wir „setvar current_php“ ein php7, oder wenn Sie den absoluten Pfad verwenden möchten, geben Sie setvar current_php your/target/php/location.

ein

6. Probleme, auf die Sie stoßen könnten

Das Problem, das ich nach dem Wechsel der PHP-Version festgestellt habe, besteht darin, dass das Schlüsselwort alias und alle unterstützten Linux-Befehle auf cmder nicht mehr funktionieren. Die Lösung, die ich bisher dafür gefunden habe, besteht darin, „C:Cmdervendorgit-for-windowsusrbin“ hinzuzufügen. und „C:Cmdervendorbin“ zur Pfadumgebungsvariablen.

7. Abschließende Gedanken

Natürlich können Sie so etwas tun, einen Alias ​​php8 für /your/path/to/php8/php.exe erstellen und Ihren PHP-Code ausführen, indem Sie einfach php8 my-script.php eingeben, aber wenn es um so etwas geht Composer oder irgendetwas, das auf Ihrer Pfadvariablen basiert, benötigen Sie etwas Dauerhafteres, daher dieser Artikel.

Eine weitere Sache, wie Sie wahrscheinlich festgestellt haben, ist, dass Sie mit dem Befehl setx und Chocolatey jede beliebige Umgebungsvariable aktualisieren können.

Das obige ist der detaillierte Inhalt vonWechseln Sie die PHP-Version unter Windows mit einem Befehl. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn