Ручная установка Apache и PHP на Windows Server 2012/2008

В этой статье мы рассмотрим процесс установки Apache 2.4.x и PHP 5.6.x на стандартной 64-разрядной версии Windows Server 2012/2008.

Бинарные версии Apache Windows Server в исходном репозитории недоступны, и мы вынуждены обратиться к сторонним дистрибутивам, таким как apachehaus.com. Я использую версию httpd-2.4.20-x64-vc11-r2.zip, которую можно скачать здесь. Она скомпилирована с помощью VC ++ 2012 (VC11). Убедитесь, что сервер установлен с применением VC11 64bit. Иначе могут возникнуть ошибки, такие как отсутствие необходимых модулей, или Apache не будет запускаться. Его можно загрузить прямо с зеркала Microsoft. Двоичные файлы PHP можно скачать отсюда. Я использую php-5.6.22-Win32-VC11-x64.zip, который скомпилирован с помощью vc11.

Установка Apache

Сначала загрузите последнюю версию Apache HTTP Server win32 и извлеките файлы в удобное место, например «C:Apache». Если Apache установлен в «C: Program Files Apache2.2», скрипты cgi и PHP могут некорректно находить пути к файлам из-за пробелов в именах каталогов.

В этом примере мы создадим каталог Apache. Используя «Блокнот», откройте файл httpd.conf. Этот файл находится в подкаталоге /conf. Обратите внимание, что в конфигурационных файлах Apache в полных путях к файлу должны использоваться слэши «/».

Теперь можно попробовать установить Apache на Windows7. Откройте командную строку и перейдите в каталог «c:Apache bin» и введите команду httpd -k install:

c:Apachebin>httpd -k install
Installing the 'Apache2.4' service
The 'Apache2.4' service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.
httpd: Syntax error on line 39 of C:/Apache/conf/httpd.conf: ServerRoot must be
a valid directory

Из приведенного выше фрагмента кода видно, что служба была установлена, но с ошибкой. Корневой каталог сервера нужно исправить до запуска службы, если значение каталога установки по умолчанию было изменено (по умолчанию используется значение /Apache2.4). В данном случае это / Apache:

Define SRVROOT "/Apache"
ServerRoot "${SRVROOT}"

После этого дважды кликните по исполняемому файлу монитора Apache Server или через командную строку введите start / stop / restart the service. Примеры команд для CMD приведены в следующем фрагменте кода:

c:Apachebin>httpd -k start
c:Apachebin>httpd -k restart
c:Apachebin>httpd -k stop
The 'Apache2.4' service is stopping.
The 'Apache2.4' service has stopped.

Если при запуске сервера Apache PHP Windows выводится сообщение об ошибке (приведено ниже), проверьте, запущен ли уже процесс httpd, выполняется процесс IIS и прослушивается порт 80. IIS является установленным по умолчанию веб-сервером, он настроен на порт 80:

c:Apachebin>httpd -k start
(OS 10048)Only one usage of each socket address (protocol/network address/port)
is normally permitted. : AH00072: make_sock: could not bind to address [::]:80
(OS 10048)Only one usage of each socket address (protocol/network address/port)
is normally permitted. : AH00072: make_sock: could not bind to address 0.0.0.0:
80
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs

Если в данный момент IIS запущен, его можно отключить через «Диспетчер серверов». В командной строке введите «services.msc». Найдите службу «web publishing platform», дважды кликните по ней мышью, чтобы открыть свойства службы и остановите ее. Чтобы запретить ее запуск при следующей перезагрузке, можно поменять тип запуска на ручной. Кроме этого, если на сервере установлен Skype, он также конфликтует с портом 80.

После того, как Apache был запущен и все настройки были заданы верно, при переходе по адресу http://localhost/ в любом браузере должна отображаться стандартная страница http или просто сообщение ”It works”.

Установка PHP

Сначала загрузите двоичные файлы PHP и разархивируйте их в папку «C:php». Затем переименуйте файл c:phpphp.ini-development в php.ini. Откройте его и измените значения нескольких переменных.

Измените значение переменной "extension_dir" на “C:phpext”. По умолчанию она закомментирована или для нее установлено значение "/ext". Также можно включить в php.ini необходимые расширения, удалив символ «;» в начале строки:

;extension=php_mbstring.dll
;extension=php_exif.dll 
extension=php_mysql.dll
extension=php_mysqli.dll

Кроме этого нужно задать для переменной sessions.save_path папку временных файлов Windows (то есть C:Temp).

Каталоги PHP и Apache также необходимо добавить для переменных путей среды. Откройте Панель управления - Система и безопасность - Местоположение системы и добавьте;C:php; C:Apachebin” в конец списка «Системные переменные пути» и нажмите «ОК», чтобы сохранить изменения.

Перед перезапуском службы Apache Windows необходимо указать в файле httpd.conf модули PHP. Добавьте следующие строки в конец файла httpd.conf под раздел «LoadModule»:

LoadModule php5_module "c:/php/php5apache2_4.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/php"

Также нужно добавить «index.php» в раздел DirectoryIndex в файле httpd.conf, как показано ниже:

<IfModule dir_module>
 DirectoryIndex index.html index.php
</IfModule>

После внесения изменений сохраните файл httpd.conf и закройте его.

Чтобы изменения вступили в силу, необходимо перезапустить службу Apache. Сделать это можно через монитор Apache Service или из командной строки - "httpd -k restart".

Создайте новую страницу «index.php» в папке C:Apachehtdocs и поместите в нее любой php-код. Например, я использовал следующий код:

<?php
phpinfo();
?>

После сохранения изменений в файле откройте в браузере http://localhost/index.php, и если все в порядке вы увидите страницу phpinfo.

Мы завершили установку Apache PHP на Windows Server 2012. В файлах httpd.conf и php.ini многие модули отключены или закомментированы. Их можно включить, удалив комментарии и перезапустив службы Apache. Для доступа к сайтам / страницам из внешней сети убедитесь, что к файлу httpd.exe разрешен публичный доступ в Панель управления - Система и безопасность - Брандмауэр Windows - Разрешенные приложения.

Вадим Дворниковавтор-переводчик статьи «Installing Apache and PHP manually in Windows server 2012/2008»

Пожалуйста, оставляйте ваши комментарии по текущей теме материала. За комментарии, дизлайки, подписки, лайки, отклики низкий вам поклон!