1
0
mirror of https://github.com/php/doc-de.git synced 2026-04-23 23:18:24 +02:00
Files
Martin Samesch 6a3d1a081a Sync with EN
2024-10-08 22:34:51 +02:00

219 lines
6.6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 2dbf3d9064d4cb07f0a2f7d06641c877a2e5ed24 Maintainer: samesch Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="install.windows.commandline" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>PHP auf Windows-Systemen auf der Kommandozeile ausführen</title>
<para>
Dieser Abschnitt enthält Hinweise und Tipps, wie man PHP unter Windows auf
der Befehlszeile zum Laufen bringt.
</para>
<note>
<para>
Lesen Sie zuerst die
<link linkend="install.windows.manual">Anleitung für die manuelle Installation</link>!
</para>
</note>
<para>
PHP kann ohne Änderungen an Windows von der Kommandozeile aus gestartet
werden.
<screen>
<![CDATA[
C:\php\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3
]]>
</screen>
</para>
<para>
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.
<itemizedlist>
<note>
<para>
Sowohl <envar>PATH</envar> als auch <envar>PATHEXT</envar> sind wichtige,
bereits existierende Windows-Systemvariablen, und es sollte darauf
geachtet werden, keine der beiden Variablen zu überschreiben, sondern sie
nur zu ergänzen.
</para>
</note>
<listitem>
<para>
Ergänzen Sie die Umgebungsvariable <envar>PATH</envar> um den Ort der
ausführbaren PHP-Datei (<filename>php.exe</filename>,
<filename>php-win.exe</filename> oder <filename>php-cli.exe</filename>,
abhängig von der PHP-Version und den Einstellungen für die Anzeige). Wie
Sie das PHP-Verzeichnis zu <envar>PATH</envar> hinzufügen können, erfahren
Sie im
<link linkend="faq.installation.addtopath">entsprechenden FAQ-Eintrag</link>.
</para>
</listitem>
<listitem>
<para>
Ergänzen Sie die Umgebungsvariable <varname>PATHEXT</varname> um die
Erweiterung <literal>.PHP</literal>. Dies kann zusammen mit der Änderung
der Umgebungsvariablen <envar>PATH</envar> erledigt werden. Befolgen Sie
die in den <link linkend="faq.installation.addtopath">FAQ</link>
beschriebenen Schritte, aber ändern Sie die Umgebungsvariable
<varname>PATHEXT</varname> und nicht die Umgebungsvariable
<envar>PATH</envar>.
<note>
<para>
Die Position, an der das <literal>.PHP</literal> platziert wird,
bestimmt, welches Skript oder Programm ausgeführt wird, wenn es
übereinstimmende Dateinamen gibt. Wenn Sie <literal>.PHP</literal> zum
Beispiel vor <literal>.BAT</literal> platzieren, wird bei einer
gleichnamigen Batch-Datei das Skript ausgeführt und nicht die
Batch-Datei.
</para>
</note>
</para>
</listitem>
<listitem>
<para>
Verknüpfen Sie die Erweiterung <literal>.PHP</literal> mit einem
Dateityp. Dazu führen Sie den folgenden Befehl aus:
<screen>
<![CDATA[
assoc .php=phpfile
]]>
</screen>
</para>
</listitem>
<listitem>
<para>
Verknüpfen Sie den Dateityp <literal>phpfile</literal> mit der
entsprechenden ausführbaren PHP-Datei. Dazu führen Sie den folgenden
Befehl aus:
<screen>
<![CDATA[
ftype phpfile="C:\php\php.exe" -f "%1" -- %~2
]]>
</screen>
</para>
</listitem>
</itemizedlist>
</para>
<para>
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 <literal>.PHP</literal> eingeben müssen. Darüber hinaus können
Sie Parameter angeben, die an das Skript übergeben werden.
</para>
<para>
Im folgenden Beispiel sind einige der Änderungen in der Registry aufgeführt,
die manuell vorgenommen werden können.
<example>
<title>Änderungen in der Registry</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>
Mit diesen Änderungen kann derselbe Befehl wie folgt geschrieben werden:
<screen>
<![CDATA[
"C:\PHP Scripts\script" -arg1 -arg2 -arg3
]]>
</screen>
oder, wenn das Verzeichnis <literal>"C:\PHP Scripts"</literal> in der
Umgebungsvariablen <envar>PATH</envar> steht:
<screen>
<![CDATA[
script -arg1 -arg2 -arg3
]]>
</screen>
</para>
<note>
<para>
Wenn diese Technik verwendet werden soll, um PHP-Skripte als
Befehlszeilenfilter zu nutzen, wie im folgenden Beispiel, gibt es ein
kleines Problem:
<screen>
<![CDATA[
dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3
]]>
</screen>
oder
<screen>
<![CDATA[
dir | script -arg1 -arg2 -arg3
]]>
</screen>
Es 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.
<screen>
<![CDATA[
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"InheritConsoleHandles"=dword:00000001
]]>
</screen>
Weitere Informationen zu diesem Problem finden Sie im
<link xlink:href="https://www.betaarchive.com/wiki/index.php/Microsoft_KB_Archive/321788">Microsoft Knowledgebase Article : 321788</link>.
Ab Windows 10 scheint diese Einstellung geändert worden zu sein, sodass die
Standardinstallation von Windows 10 geerbte Konsolen-Handles automatisch
unterstützt. Dieser
<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">Microsoft-Forenbeitrag</link>
liefert die Erklärung.
</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
-->