Установка для веб-сервера Apache 2.x в системах Windows
Раздел содержит примечания и подсказки, которые касаются установки PHP
для веб-сервера Apache 2.x в системах Microsoft Windows.
Замечание:
Сначала лучше прочитать пошаговую инструкцию
по ручной установке PHP.
Прежде чем продолжить чтение руководства, разработчики PHP настаивают на знакомстве
» с документацией к веб-серверу Apache,
чтобы получить базовое представление о сервере Apache 2.x,
и » примечаниями, которые касаются
установки веб-сервера Apache 2.x в системы Windows.
Загрузите последнюю версию веб-сервера
» Apache 2.x
и совместимую версию PHP. Следуйте
пошаговой инструкции по ручной установке PHP
и возвращайтесь, чтобы продолжить интеграцию PHP и Apache.
Для работы с веб-сервером Apache 2.x в операционных системах Windows
двоичные файлы PHP настраивают тремя способами. PHP запускают как обработчик —
Apache-модуль, через который веб-сервер обрабатывает файлы с PHP-кодом,
как CGI-программу или программу, которая работает через FastCGI-интерфейс.
Замечание:
Обратите внимание:
при указании путей в конфигурационных файлах веб-сервера Apache, который работает под ОС Windows,
обратные слеши в путях наподобие c:\directory\file.ext требуется заменить прямыми:
c:/directory/file.ext. Для путей с директориями также иногда требуется слеш в конце.
Установка PHP как Apache-обработчика PHP-файлов
Замечание:
При работе через обработчик apache2handler, который обслуживает запросы к SAPI-интерфейсу,
устанавливают потокобезопасные версии PHP (англ. TS, Thread Safe).
В файл конфигурации веб-сервера Apache httpd.conf вставляют
следующие строки, чтобы загрузить PHP-модуль для Apache 2.x:
Пример #1
Пример конфигурации для обработки PHP-файлов
модулем PHP в составе веб-сервера Apache 2.x
# До PHP 8.0.0 модуль назывался php7_module
LoadModule php_module "c:/php/php8apache2_4.dll"
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
# Настраиваем путь к файлу php.ini
PHPIniDir "C:/php"
Замечание:
В приведённых примерах вместо пути C:/php/
подставляют фактический путь к PHP. Убедитесь, что файл,
который указали в директиве LoadModule
, лежит в заданном месте.
Для PHP 7 указывают файл php7apache2_4.dll
или файл php8apache2_4.dll для PHP 8.
Запуск PHP как CGI-программы
» Документация Apache к CGI-интерфейсу
даёт более полное понимание о запуске CGI-скриптов на веб-сервере Apache.
PHP-файлы, которые запускаются как CGI-скрипты, располагают в каталоге,
который через директиву ScriptAlias назначали как каталог CGI-скриптов,
чтобы запускать PHP-скрипты как программу, которая работает по протоколу CGI.
В PHP-файлы потребуется поместить строку #!
,
которая указывает на расположение двоичного файла PHP:
Пример #2
Пример расположения двоичного файла PHP
и взаимодействие с веб-сервером Apache 2.x через CGI-интерфейс
#!C:/php/php.exe
<?php
phpinfo();
?>
Внимание
Сервер, который развернули в режиме CGI, открывается для ряда возможных уязвимостей.
Пожалуйста, прочитайте раздел «
О безопасности PHP в режиме CGI-программы
», который объясняет, как защититься от таких атак.
Запуск PHP для работы по протоколу FastCGI
Запуск программ на языке PHP в режиме FastCGI даёт ряд преимуществ
перед запуском PHP-программ в режиме CGI.
Настройка этого способа несложная:
Скачайте модуль mod_fcgid
с сайта
» https://www.apachelounge.com.
Бинарные файлы Win32 доступны для загрузки с этого сайта. Установите модуль
по инструкции, которая идёт с файлами.
Настройте веб-сервер как в следующем примере, и внимательно
измените пути так, чтобы они соответствовали
установке веб-сервера в конкретной системе:
Пример #3 Настройка Apache для запуска PHP как FastCGI
LoadModule fcgid_module modules/mod_fcgid.so
# Где лежит файл php.ini?
FcgidInitialEnv PHPRC "c:/php"
<FilesMatch \.php$>
SetHandler fcgid-script
</FilesMatch>
FcgidWrapper "c:/php/php-cgi.exe" .php
Теперь файлы с расширением
.php
будет исполнять FastCGI-обёртка PHP.