Раздел содержит примечания и подсказки, которые касаются установки 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. Для путей с директориями также иногда требуется слеш в конце.
Замечание: При работе через обработчик 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.
» Документация 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-программ в режиме 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.