Make sure your run CMD.exe as an administrator, otherwise you'll get an "access denied" when you run the commands.
Dieser Abschnitt enthält Hinweise und Tipps, wie man PHP unter Windows auf der Befehlszeile zum Laufen bringt.
Hinweis:
Lesen Sie zuerst die Anleitung für die manuelle Installation!
PHP kann ohne Änderungen an Windows von der Kommandozeile aus gestartet werden.
C:\php\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3
Mit ein paar kleinen Maßnahmen lässt sich dies jedoch vereinfachen. Einige dieser Maßnahmen sollten bereits durchgeführt worden sein, werden aber hier wiederholt, um eine vollständige Schritt-für-Schritt-Anleitung zu geben.
Hinweis:
Sowohl PATH als auch PATHEXT sind wichtige, bereits existierende Windows-Systemvariablen, und es sollte darauf geachtet werden, keine der beiden Variablen zu überschreiben, sondern sie nur zu ergänzen.
Ergänzen Sie die Umgebungsvariable PATH um den Ort der ausführbaren PHP-Datei (php.exe, php-win.exe oder php-cli.exe, abhängig von der PHP-Version und den Einstellungen für die Anzeige). Wie Sie das PHP-Verzeichnis zu PATH hinzufügen können, erfahren Sie im entsprechenden FAQ-Eintrag.
Ergänzen Sie die Umgebungsvariable PATHEXT um die
Erweiterung .PHP
. Dies kann zusammen mit der Änderung
der Umgebungsvariablen PATH erledigt werden. Befolgen Sie
die in den FAQ
beschriebenen Schritte, aber ändern Sie die Umgebungsvariable
PATHEXT und nicht die Umgebungsvariable
PATH.
Hinweis:
Die Position, an der das
.PHP
platziert wird, bestimmt, welches Skript oder Programm ausgeführt wird, wenn es übereinstimmende Dateinamen gibt. Wenn Sie.PHP
zum Beispiel vor.BAT
platzieren, wird bei einer gleichnamigen Batch-Datei das Skript ausgeführt und nicht die Batch-Datei.
Verknüpfen Sie die Erweiterung .PHP
mit einem
Dateityp. Dazu führen Sie den folgenden Befehl aus:
assoc .php=phpfile
Verknüpfen Sie den Dateityp phpfile
mit der
entsprechenden ausführbaren PHP-Datei. Dazu führen Sie den folgenden
Befehl aus:
ftype phpfile="C:\php\php.exe" -f "%1" -- %~2
Wenn Sie diese Schritte befolgen, können PHP-Skripte von jedem Verzeichnis
aus ausgeführt werden, ohne dass Sie die ausführbare PHP-Datei oder die
Erweiterung .PHP
eingeben müssen. Darüber hinaus können
Sie Parameter angeben, die an das Skript übergeben werden.
Im folgenden Beispiel sind einige der Änderungen in der Registry aufgeführt, die manuell vorgenommen werden können.
Beispiel #1 Änderungen in der Registry
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.php] @="phpfile" "Content Type"="application/php" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile] @="PHP Script" "EditFlags"=dword:00000000 "BrowserFlags"=dword:00000008 "AlwaysShowExt"="" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\DefaultIcon] @="C:\\php\\php-win.exe,0" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell] @="Open" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open] @="&Open" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open\command] @="\"C:\\php\\php.exe\" -f \"%1\" -- %~2"
Mit diesen Änderungen kann derselbe Befehl wie folgt geschrieben werden:
"C:\PHP Scripts\script" -arg1 -arg2 -arg3
"C:\PHP Scripts"
in der
Umgebungsvariablen PATH steht:
script -arg1 -arg2 -arg3
Hinweis:
Wenn diese Technik verwendet werden soll, um PHP-Skripte als Befehlszeilenfilter zu nutzen, wie im folgenden Beispiel, gibt es ein kleines Problem:
oderdir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3Es kann vorkommen, dass das Skript einfach hängen bleibt und nichts ausgibt. Um dies zu beheben, muss eine weitere Änderung in der Registry vorgenommen werden.dir | script -arg1 -arg2 -arg3Weitere Informationen zu diesem Problem finden Sie im » Microsoft Knowledgebase Article : 321788. Ab Windows 10 scheint diese Einstellung geändert worden zu sein, sodass die Standardinstallation von Windows 10 geerbte Konsolen-Handles automatisch unterstützt. Dieser » Microsoft-Forenbeitrag liefert die Erklärung.Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer] "InheritConsoleHandles"=dword:00000001
Make sure your run CMD.exe as an administrator, otherwise you'll get an "access denied" when you run the commands.
On Windows 10 starting php by only typing the script name in an elevated command prompt pops up a dialog to choose an app.
It turns out Windows does that when the program associated with phpfiles through ftype cannot be executed. In this case this happens because it is trying to run php.exe in non-admin mode, even when launched from an elevated command prompt. To fix this, locate your php.exe, right-click, "Properties", "Compatibility", under Settings check "Run this program as an administrator; then also click "Change settings for all users".