<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/install.windows.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'install.windows.apache2.php',
    1 => 'Установка для веб-сервера Apache 2.x в системах Windows',
    2 => 'Установка для веб-сервера Apache 2.x в системах Windows',
  ),
  'up' => 
  array (
    0 => 'install.windows.php',
    1 => 'Установка в системы с ОС Windows',
  ),
  'prev' => 
  array (
    0 => 'install.windows.manual.php',
    1 => 'Ручная установка готовых двоичных файлов',
  ),
  'next' => 
  array (
    0 => 'install.windows.iis.php',
    1 => 'Установка PHP с веб-сервером IIS для ОС Windows',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'install/windows/apache2.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="install.windows.apache2" class="sect1">
 <h2 class="title">Установка для веб-сервера Apache 2.x в системах Windows</h2>
 <p class="para">
  Раздел содержит примечания и подсказки, которые касаются установки PHP
  для веб-сервера Apache 2.x в системах Microsoft Windows.
 </p>
 <blockquote class="note"><p><strong class="note">Замечание</strong>: 
  <p class="para">
   Сначала лучше прочитать <a href="install.windows.manual.php" class="link">пошаговую инструкцию
   по ручной установке PHP</a>.
  </p>
 </p></blockquote>

 <p class="para">
  Прежде чем продолжить чтение руководства, разработчики PHP настаивают на знакомстве
  <a href="http://httpd.apache.org/docs/current/" class="link external">&raquo;&nbsp;с документацией к веб-серверу Apache</a>,
  чтобы получить базовое представление о сервере Apache 2.x,
  и <a href="http://httpd.apache.org/docs/current/platform/windows.html" class="link external">&raquo;&nbsp;примечаниями</a>, которые касаются
  установки веб-сервера Apache 2.x в системы Windows.
 </p>

 <p class="para">
  Загрузите последнюю версию веб-сервера
  <a href="https://www.apachelounge.com/download/" class="link external">&raquo;&nbsp;Apache 2.x</a>
  и совместимую версию PHP. Следуйте
  <a href="install.windows.manual.php" class="link">пошаговой инструкции по ручной установке PHP</a>
  и возвращайтесь, чтобы продолжить интеграцию PHP и Apache.
 </p>

 <p class="para">
  Для работы с веб-сервером Apache 2.x в операционных системах Windows
  двоичные файлы PHP настраивают тремя способами. PHP запускают как обработчик —
  Apache-модуль, через который веб-сервер обрабатывает файлы с PHP-кодом,
  как CGI-программу или программу, которая работает через FastCGI-интерфейс.
 </p>

 <blockquote class="note"><p><strong class="note">Замечание</strong>: 
<span class="simpara">
 Обратите внимание:
 при указании путей в конфигурационных файлах веб-сервера Apache, который работает под ОС Windows,
 обратные слеши в путях наподобие <var class="filename">c:\directory\file.ext</var> требуется заменить прямыми:
 <var class="filename">c:/directory/file.ext</var>. Для путей с директориями также иногда требуется слеш в конце.
</span></p></blockquote>

 <div class="sect2" id="install.windows.apache2.module">
  <h3 class="title">Установка PHP как Apache-обработчика PHP-файлов</h3>
  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <span class="simpara">
    При работе через обработчик apache2handler, который обслуживает запросы к SAPI-интерфейсу,
    устанавливают потокобезопасные версии PHP (англ. TS, Thread Safe).
   </span>
  </p></blockquote>
  <p class="para">
   В файл конфигурации веб-сервера Apache <var class="filename">httpd.conf</var> вставляют
   следующие строки, чтобы загрузить PHP-модуль для Apache 2.x:
   <div class="example" id="example-1">
    <p><strong>Пример #1 
     Пример конфигурации для обработки PHP-файлов
     модулем PHP в составе веб-сервера Apache 2.x
    </strong></p>
    <div class="example-contents">
<div class="apache-confcode"><pre class="apache-confcode"># До PHP 8.0.0 модуль назывался php7_module
LoadModule php_module &quot;c:/php/php8apache2_4.dll&quot;
&lt;FilesMatch \.php$&gt;
    SetHandler application/x-httpd-php
&lt;/FilesMatch&gt;
# Настраиваем путь к файлу php.ini
PHPIniDir &quot;C:/php&quot;</pre>
</div>
    </div>

   </div>
  </p>
  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <span class="simpara">
    В приведённых примерах вместо пути <var class="filename">C:/php/</var>
    подставляют фактический путь к PHP. Убедитесь, что файл,
    который указали в директиве <code class="literal">LoadModule</code>, лежит в заданном месте.
    Для PHP 7 указывают файл <var class="filename">php7apache2_4.dll</var>
    или файл <var class="filename">php8apache2_4.dll</var> для PHP 8.
   </span>
  </p></blockquote>
 </div>

 <div class="sect2" id="install.windows.apache2.cgi">
  <h3 class="title">Запуск PHP как CGI-программы</h3>

  <p class="para">
   <a href="http://httpd.apache.org/docs/current/howto/cgi.html" class="link external">&raquo;&nbsp;Документация Apache к CGI-интерфейсу</a>
   даёт более полное понимание о запуске CGI-скриптов на веб-сервере Apache.
  </p>

  <p class="para">
   PHP-файлы, которые запускаются как CGI-скрипты, располагают в каталоге,
   который через директиву ScriptAlias назначали как каталог CGI-скриптов,
   чтобы запускать PHP-скрипты как программу, которая работает по протоколу CGI.
  </p>

  <p class="para">
   В PHP-файлы потребуется поместить строку <code class="literal">#!</code>,
   которая указывает на расположение двоичного файла PHP:

   <div class="example" id="example-2">
    <p><strong>Пример #2 
     Пример расположения двоичного файла PHP
     и взаимодействие с веб-сервером Apache 2.x через CGI-интерфейс
    </strong></p>
    <div class="example-contents">
<div class="cdata"><pre>
#!C:/php/php.exe
&lt;?php

phpinfo();

?&gt;
</pre></div>
    </div>

   </div>
  </p>
  
<div class="warning"><strong class="warning">Внимание</strong>
 <p class="para">
  Сервер, который развернули в режиме CGI, открывается для ряда возможных уязвимостей.
  Пожалуйста, прочитайте раздел «<a href="security.cgi-bin.php" class="link">О безопасности PHP в режиме CGI-программы</a>»,
  который объясняет, как защититься от таких атак.
 </p>
</div>

 </div>

 <div class="sect2" id="install.windows.apache2.fastcgi">
  <h3 class="title">Запуск PHP для работы по протоколу FastCGI</h3>

  <p class="para">
   Запуск программ на языке PHP в режиме FastCGI даёт ряд преимуществ
   перед запуском PHP-программ в режиме CGI.
   Настройка этого способа несложная:
  </p>
  <p class="para">
   Скачайте модуль <code class="literal">mod_fcgid</code> с сайта
   <a href="https://www.apachelounge.com/download/" class="link external">&raquo;&nbsp;https://www.apachelounge.com</a>.
   Бинарные файлы Win32 доступны для загрузки с этого сайта. Установите модуль
   по инструкции, которая идёт с файлами.
  </p>
  <p class="para">
   Настройте веб-сервер как в следующем примере, и внимательно
   измените пути так, чтобы они соответствовали
   установке веб-сервера в конкретной системе:
   <div class="example" id="example-3">
    <p><strong>Пример #3 Настройка Apache для запуска PHP как FastCGI</strong></p>
    <div class="example-contents">
<div class="cdata"><pre>
LoadModule fcgid_module modules/mod_fcgid.so
# Где лежит файл php.ini?
FcgidInitialEnv PHPRC        &quot;c:/php&quot;
&lt;FilesMatch \.php$&gt;
    SetHandler fcgid-script
&lt;/FilesMatch&gt;
FcgidWrapper &quot;c:/php/php-cgi.exe&quot; .php
</pre></div>
    </div>

   </div>

   Теперь файлы с расширением <code class="literal">.php</code> будет исполнять FastCGI-обёртка PHP.
  </p>
 </div>
</div><?php manual_footer($setup); ?>