1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-24 07:02:06 +01:00
Files
archived-doc-fr/install/windows/commandline.xml
2026-03-02 14:19:55 +01:00

210 lines
6.6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 2dbf3d9064d4cb07f0a2f7d06641c877a2e5ed24 Maintainer: Fan2Shrek Status: ready -->
<!-- Reviewed: yes -->
<sect1 xml:id="install.windows.commandline" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Exécution de PHP en ligne de commande sur les systèmes Windows</title>
<para>
Cette section contient des notes et des astuces spécifiques à l'exécution de PHP
en ligne de commande sur Windows.
</para>
<note>
<para>
Il convient de lire les <link linkend="install.windows.manual">étapes
d'installation manuelle</link> en premier !
</para>
</note>
<para>
Avoir PHP qui s'exécute à partir de la ligne de commande peut être effectué sans
apporter de modifications à Windows.
<screen>
<![CDATA[
C:\php\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3
]]>
</screen>
</para>
<para>
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.
<itemizedlist>
<note>
<para>
Les deux variables système pré-existantes <envar>PATH</envar> et <envar>PATHEXT</envar> sont
importantes dans Windows,
et il faut faire attention à ne pas les écraser,
seulement les ajouter.
</para>
</note>
<listitem>
<para>
Ajouter l'emplacement de l'exécutable PHP (<filename>php.exe</filename>,
<filename>php-win.exe</filename> ou <filename>php-cli.exe</filename>
selon la version de PHP et les préférences d'affichage) à la variable
d'environnement <envar>PATH</envar>. Lire la section sur comment ajouter le
répertoire PHP approprié à la variable d'environnement <envar>PATH</envar> dans la
<link linkend="faq.installation.addtopath">entrée FAQ correspondante</link>.
</para>
</listitem>
<listitem>
<para>
Ajouter l'extension <literal>.PHP</literal>
à la variable d'environnement <varname>PATHEXT</varname>. Ceci peut être fait
en même temps que l'ajout de la variable d'environnement <envar>PATH</envar>.
Suivre les mêmes étapes que décrites dans la <link
linkend="faq.installation.addtopath">FAQ</link> mais modifier la variable
d'environnement <varname>PATHEXT</varname> plutôt que la variable
d'environnement <envar>PATH</envar>.
<note>
<para>
La position dans laquelle le <literal>.PHP</literal> est placé déterminera
quel script ou programme est exécuté lorsqu'il y a des noms de fichiers
correspondants. Par exemple, placer <literal>.PHP</literal> avant
<literal>.BAT</literal> fera exécuter le script, plutôt que le
fichier batch, s'il y a un fichier batch avec le même nom.
</para>
</note>
</para>
</listitem>
<listitem>
<para>
Associer l'extension <literal>.PHP</literal> avec un type de fichier. Ceci
est fait en exécutant la commande suivante :
<screen>
<![CDATA[
assoc .php=phpfile
]]>
</screen>
</para>
</listitem>
<listitem>
<para>
Associer le type de fichier <literal>phpfile</literal> avec l'exécutable PHP
approprié. Ceci est fait en exécutant la commande suivante :
<screen>
<![CDATA[
ftype phpfile="C:\php\php.exe" -f "%1" -- %~2
]]>
</screen>
</para>
</listitem>
</itemizedlist>
</para>
<para>
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
<literal>.PHP</literal> et tous les paramètres seront fournis au script pour traitement.
</para>
<para>
L'exemple ci-dessous détaille certains des changements de registre qui peuvent être faits manuellement.
<example>
<title>Changements de registre</title>
<screen>
<![CDATA[
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"
]]>
</screen>
</example>
</para>
<para>
Avec ces changements, la même commande peut être écrite comme suit :
<screen>
<![CDATA[
"C:\PHP Scripts\script" -arg1 -arg2 -arg3
]]>
</screen>
ou, si le chemin <literal>"C:\PHP Scripts"</literal> est dans la
variable d'environnement <envar>PATH</envar> :
<screen>
<![CDATA[
script -arg1 -arg2 -arg3
]]>
</screen>
</para>
<note>
<para>
Il y a un petit problème si l'on souhaite utiliser cette technique et
utiliser les scripts PHP comme filtre en ligne de commande, comme l'exemple ci-dessous :
<screen>
<![CDATA[
dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3
]]>
</screen>
ou
<screen>
<![CDATA[
dir | script -arg1 -arg2 -arg3
]]>
</screen>
Le script peut simplement se bloquer et rien ne s'affiche.
Pour que cela fonctionne, un autre changement de registre doit être effectué :
<screen>
<![CDATA[
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"InheritConsoleHandles"=dword:00000001
]]>
</screen>
Plus d'informations sur ce problème peuvent être trouvées dans cet <link
xlink:href="http://support.microsoft.com/default.aspx?scid=kb;en-us;321788">article de la base de connaissances Microsoft : 321788</link>.
À partir de Windows 10, ce paramètre semble être inversé, rendant l'installation par défaut de
Windows 10 supportant automatiquement les gestionnaires de console hérités. Ce <link
xlink:href="https://social.msdn.microsoft.com/Forums/en-US/f19d740d-21c8-4dc2-a9ab-d5c0527e932b/nasty-file-association-regression-bug-in-windows-10-console?forum=windowssdk">
post du forum Microsoft</link> fournit l'explication.
</para>
</note>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->