mirror of
https://github.com/php/doc-ru.git
synced 2026-03-27 09:12:07 +01:00
210 lines
8.3 KiB
XML
210 lines
8.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 8e732e84a1425cf0ab3a5b0da8fe113c7a6da85e 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 в Microsoft 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>
|
||
Но есть несколько шагов, которые помогут упростить этот процесс.
|
||
Некоторые из этих шагов уже должны были быть предприняты, но они повторяются
|
||
здесь, чтобы иметь возможность предоставить полную пошаговую последовательность.
|
||
|
||
<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
|
||
-->
|