Make sure your run CMD.exe as an administrator, otherwise you'll get an "access denied" when you run the commands.
Cette section contient des notes et des astuces spécifiques à l'exécution de PHP en ligne de commande sur Windows.
Note:
Lire les étapes d'installation manuelle en premier !
Avoir PHP qui s'exécute à partir de la ligne de commande peut être effectué sans apporter de modifications à Windows.
C:\php\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3
Mais il y a quelques étapes faciles à suivre pour simplifier cela. Certaines de ces étapes auraient déjà dû être prises, mais sont répétées ici pour pouvoir fournir une séquence étape par étape complète.
Note:
Les deux variables système pré-existantes PATH et PATHEXT sont importantes dans Windows, et il faut faire attention à ne pas les écraser, seulement les ajouter.
Ajoutez l'emplacement de l'exécutable PHP (php.exe, php-win.exe ou php-cli.exe selon la version de PHP et les préférences d'affichage) à la variable d'environnement PATH. Lisez plus sur comment ajouter le répertoire PHP approprié à la variable d'environnement PATH dans la entrée FAQ correspondante.
Ajoutez l'extension .PHP
à la variable d'environnement PATHEXT. Ceci peut être fait
en même temps que l'ajout de la variable d'environnement PATH.
Suivez les mêmes étapes que décrites dans la FAQ mais modifiez la variable
d'environnement PATHEXT plutôt que la variable
d'environnement PATH.
Note:
La position dans laquelle le
.PHP
est placé déterminera quel script ou programme est exécuté lorsqu'il y a des noms de fichiers correspondants. Par exemple, placer.PHP
avant.BAT
fera exécuter le script, plutôt que le fichier batch, s'il y a un fichier batch avec le même nom.
Associez l'extension .PHP
avec un type de fichier. Ceci
est fait en exécutant la commande suivante :
assoc .php=phpfile
Associez le type de fichier phpfile
avec l'exécutable PHP
approprié. Ceci est fait en exécutant la commande suivante :
ftype phpfile="C:\php\php.exe" -f "%1" -- %~2
En suivant ces étapes, les scripts PHP pourront être exécutés depuis n'importe quel
répertoire sans avoir besoin de taper l'exécutable PHP ou l'extension
.PHP
et tous les paramètres seront fournis au script pour traitement.
L'exemple si dessous détaille certains des changements de registre qui peuvent être faits manuellement.
Exemple #1 Changements de registre
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"
Avec ces changements, la même commande peut être écrite comme suit :
"C:\PHP Scripts\script" -arg1 -arg2 -arg3
"C:\PHP Scripts"
est dans la
variable d'environment PATH :
script -arg1 -arg2 -arg3
Note:
Il y a un petit problème si l'intention d'utiliser cette technique et d'utiliser les scripts PHP comme filtre en ligne de commande, comme l'exemple ci-dessous :
oudir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3Le script peut simplement se bloquer et rien ne s'affiche. Pour que cela fonctionne, un autre changement de registre doit être effectué :dir | script -arg1 -arg2 -arg3Plus d'informations sur ce problème peuvent être trouvées dans cet » article de la base de connaissances Microsoft : 321788. À partir de Windows 10, ce paramètre semble être inversé, rendant l'installation par défaut de Windows 10 supportant automatiquement les poignées de console héritées. Ce » post du forum Microsoft fournit l'explication.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".