mirror of
https://github.com/php/doc-ru.git
synced 2026-03-24 07:42:22 +01:00
210 lines
8.0 KiB
XML
210 lines
8.0 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 2dbf3d9064d4cb07f0a2f7d06641c877a2e5ed24 Maintainer: sergey 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 в командной строке системы Windows</title>
|
||
<para>
|
||
Раздел содержит примечания и подсказки, которые касаются запуска PHP
|
||
из командной строки Windows.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
Сначала прочитайте <link linkend="install.windows.manual">пошаговое
|
||
руководство по установке</link>!
|
||
</para>
|
||
</note>
|
||
<para>
|
||
PHP запускают из командной строки без внесения каких бы то ни было
|
||
изменений в Windows.
|
||
<screen>
|
||
<![CDATA[
|
||
C:\php\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3
|
||
]]>
|
||
</screen>
|
||
</para>
|
||
|
||
<para>
|
||
Но есть несколько шагов, которые упрощают запуск PHP из командной строки.
|
||
Отдельные шаги уже выполнили, но они повторяются
|
||
здесь, чтобы объяснить последовательность действий.
|
||
|
||
<itemizedlist>
|
||
<note>
|
||
<para>
|
||
Переменные окружения <envar>PATH</envar> и <envar>PATHEXT</envar> —
|
||
важные переменные, которые появились в Windows в самом начале и которые
|
||
нельзя перезаписывать, а только добавлять для них значения.
|
||
</para>
|
||
</note>
|
||
|
||
<listitem>
|
||
<para>
|
||
Добавьте расположение исполняемого файла PHP — <filename>php.exe</filename>,
|
||
<filename>php-win.exe</filename> или <filename>php-cli.exe</filename>,
|
||
в зависимости от версии PHP и предпочтений отображения — в переменную
|
||
окружения <envar>PATH</envar>. Подробнее о добавлении каталога PHP
|
||
в переменную окружения <envar>PATH</envar> рассказывает
|
||
<link linkend="faq.installation.addtopath">запись часто
|
||
задаваемых вопросов</link>.
|
||
</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>
|
||
Добавьте расширение <literal>.PHP</literal> к переменной окружения
|
||
<varname>PATHEXT</varname>. Это делают одновременно с изменением
|
||
переменной окружения <envar>PATH</envar>. Выполните те же действия,
|
||
что и в <link linkend="faq.installation.addtopath">ЧАВО</link>, но измените
|
||
переменную окружения <varname>PATHEXT</varname>, а не <envar>PATH</envar>.
|
||
<note>
|
||
<para>
|
||
Позиция, в которую помещают расширение <literal>.PHP</literal>, будет определять,
|
||
какой скрипт или программа выполнится при совпадении имён файлов.
|
||
Например, расположение расширения <literal>.PHP</literal> перед расширением
|
||
<literal>.BAT</literal> запустит скрипт, а не пакетный файл, если каталог
|
||
содержит пакетный файл с тем же названием.
|
||
</para>
|
||
</note>
|
||
</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>
|
||
Настройте ассоциацию расширения <literal>.PHP</literal> с типом файла
|
||
путём запуска следующей команды:
|
||
<screen>
|
||
<![CDATA[
|
||
assoc .php=phpfile
|
||
]]>
|
||
</screen>
|
||
</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>
|
||
Настройте ассоциацию типа файла <literal>phpfile</literal> с исполняемым файлом PHP,
|
||
который соответствует этому типу файла, путём запуска следующей команды:
|
||
<screen>
|
||
<![CDATA[
|
||
ftype phpfile="C:\php\php.exe" -f "%1" -- %~2
|
||
]]>
|
||
</screen>
|
||
</para>
|
||
</listitem>
|
||
|
||
</itemizedlist>
|
||
</para>
|
||
|
||
<para>
|
||
Эти шаги настроят запуск PHP-скриптов из любого каталога
|
||
без ввода исполняемого PHP-файла или расширения
|
||
<literal>.PHP</literal>, а параметры передадутся скрипту для обработки.
|
||
</para>
|
||
|
||
<para>
|
||
Следующий пример приводит отдельные изменения в реестре,
|
||
которые вносят вручную.
|
||
<example>
|
||
<title>Пример изменений в реестре</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>
|
||
С этими изменениями эту же команду получится записать вот так:
|
||
<screen>
|
||
<![CDATA[
|
||
"C:\PHP Scripts\script" -arg1 -arg2 -arg3
|
||
]]>
|
||
</screen>
|
||
или, если путь <literal>"C:\PHP Scripts"</literal> записали в переменную
|
||
окружения <envar>PATH</envar>:
|
||
<screen>
|
||
<![CDATA[
|
||
script -arg1 -arg2 -arg3
|
||
]]>
|
||
</screen>
|
||
</para>
|
||
|
||
<note>
|
||
<para>
|
||
При такой технике запуска возникает небольшая проблема
|
||
с запуском PHP-скриптов в качестве фильтра командной строки,
|
||
как в примере ниже:
|
||
<screen>
|
||
<![CDATA[
|
||
dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3
|
||
]]>
|
||
</screen>
|
||
или
|
||
<screen>
|
||
<![CDATA[
|
||
dir | script -arg1 -arg2 -arg3
|
||
]]>
|
||
</screen>
|
||
Иногда скрипт просто зависает и ничего не выводит.
|
||
В реестр вносят ещё одно изменение, чтобы это заработало.
|
||
<screen>
|
||
<![CDATA[
|
||
Windows Registry Editor Version 5.00
|
||
|
||
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
|
||
"InheritConsoleHandles"=dword:00000001
|
||
]]>
|
||
</screen>
|
||
Дополнительную информацию по этой проблеме даёт <link
|
||
xlink:href="http://support.microsoft.com/default.aspx?scid=kb;en-us;321788">
|
||
статья базы знаний Microsoft: 321788</link>.
|
||
В Windows 10 этот параметр изменили на противоположный, и стандартная
|
||
установка Windows 10 поддерживает унаследованные дескрипторы консоли. Это <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</link> даёт объяснение.
|
||
</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
|
||
-->
|