PHP 8.4.2 Released!

Exécution de PHP en ligne de commande sur les systèmes Windows

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
ou, si le chemin "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 :

dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3
ou
dir | script -arg1 -arg2 -arg3
Le script peut simplement se bloquer et rien ne s'affiche. Pour que cela fonctionne, un autre changement de registre doit être effectué :
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"InheritConsoleHandles"=dword:00000001
Plus 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.

add a note

User Contributed Notes 2 notes

up
3
pimroes at gmail dot com
13 years ago
Make sure your run CMD.exe as an administrator, otherwise you'll get an "access denied" when you run the commands.
up
0
rudigerw at hotmail dot com
8 years ago
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".
To Top