ProfiPHPProfiPHP
Категория: Веб сервер

Установка Web-сервера Apache 2.4 VC15 с интерпретатором PHP 7 в среде Windows

В те далекие времена, когда повсюду использовалась операционная система Windows XP, а установщики серверного программного обеспечения на данную операционную систему бинарными, были написаны темы "Установка Web-сервера Apache в среде Windows", "Установка интерпретатора PHP в среде Windows". Процесс установки происходил визуально, пользователям необходимо было запустить файл установки и следовать инструкциям. Но со временем разработки инсталлированных пакетов программного обеспечения прекратились, и сейчас необходимо самостоятельно их компилировать. Разработчики со временем убрали файлы установок и оставили только исходный код, который нужно отредактировать и установить. Именно этот процесс и будет описанный в данной статье.

Инструкция, приведенная в данной публикации, будет полезна начинающим WEB-разработчикам, которые работают в среде Windows и хотят установить Web-сервер Apache 2.4 VC15 с интерпретатором PHP 7 последних версий.

Сразу нужно заметить, что Apache 2.4 VC15 не будет на Windows XP и 2003. Подходящие операционные системы: 7 SP1, Vista SP2, 8/8.1, 10, Server 2008 SP2/R2 SP1, Server 2012/R2, Server 2016.

Символы VC означают версию компилятора Visual Studio, в которой производилась компиляция и сборка. VC11 - VisualStudio 2012, VC14 - VisualStudio 2015, VC15 - VisualStudio 2017.

На момент написания статьи последней актуальной версией Apache является httpd-2.4.27-Win64-VC15.zip. Скачать ее можно на сайте Apache Lounge.

VC15 значительно усовершенствована, исправлена и оптимизирована по сравнению с VC14 в таких областях, как Performance, MemoryManagement, имеет новые стандартные функции соответствия и генерация кода.

Перед установкой необходимо загрузить и установить обновления Visual Studio 2017 с сайта Microsoft.

Аналогично статьям, написанных ранее, мы будем также придерживаться структуре директорий, а именно в корне диска "C:/" содержится папка "web_server", внутри которой находятся подпапки: Apache, PHP и MySQL.

После скачивания архива необходимо разархивировать содержимое папки Apache24 в директорию "C:\web_server\apache". Инсталлировать ничего не требуется.

Далее необходимо в файле "C:\web_server\apache\conf\httpd.conf" изменить следующее значения:
ServerRoot "C:/web_server/apache"
DocumentRoot "C:/web_server/apache/htdocs"
ServerName localhost:80
Параметр "ServerName" следует раскомментировать, а именно убрать символ решетки "#" перед параметром.

Далее найдите секцию, которая начинается "<Directory диск: />" и заканчивается "</ Directory>". (Эти блоки содержат настройки для данного каталога и всех подкаталогов). По умолчанию он выглядит так:
<Directory />
AllowOverride none
Require all denied
</Directory>
Его нужно заменить на секцию следующего вида:
<Directory C:/>
Options Indexes Includes
AllowOverride All
Allow from all
</Directory>
Этим вы обеспечите, что в данном блоке будут храниться настройки для всех каталогов по умолчанию (так как с:/ - корневой каталог). А именно, для всех каталогов по умолчанию является возможность автоматически генерировать индекс-список содержимого каталогов при просмотре его в браузере, а также поддержка SSI и разрешение на выполнение файлов ".htaccess" для индивидуальных настроек каталогов.

Найдите аналогичный блок, который начинается "<Directory "c:/Apache24/htdocs">" и заканчивается "</Directory>". Там будет много комментариев, не обращайте внимания. Эту секцию следует удалить, то есть все настройки для каталога со страницами должны зависеть от настроек по умолчанию, которые мы только настроили.

Инициализируем настройки "DirectoryIndex" так:
DirectoryIndex index.htm index.html
Это файлы индекса, которые автоматически возвращаются сервером при запросе к любому каталогу, если не указано имя "html" документа. Можно добавить дополнительно параметр "index.php", но лучше дополнительные настройки делать в файлах ".htaccess" для каждого сайта отдельно.

Далее включаем модуль "Rewrite". Для этого достаточно убрать решетку перед следующей строкой:
LoadModule rewrite_module modules/mod_rewrite.so
Последнее, что нужно сделать - установить сервис "Apache". В командной строке от имени Администратора набираем строку:
C:\web_server\apache\bin\httpd.exe -k install

Также можно использовать альтернативу командной строке PowerShell, запустив ее от имени администратора системы:

Более подробно можно почитать в статье: Запуск командной строки (Cmd, PowerShell) от имени администратора в Windows 10.
Для того чтобы перейти из текущего каталога в другой каталог используется команда cd. Команда имеет следующий синтаксис: CD [/D] [диск:][путь][..]. Команда для перехода в корневой каталог текущего диска выглядит так: cd\

На экране может появится окно оповещения системы безопасности Windows, где мы должны подтвердить разрешения нажатием на "Разрешить доступ":

Для более удобного управления Web-сервером можно создать на рабочем столе ярлык для:
C:\web_server\apache\bin\ApacheMonitor.exe
и/или добавить его в автозагрузку.

Следующим действием мы запускаем ApacheMonitor и нажимаем Start.

Поздравляем! Вы успешно установили веб-сервер Apache на Ваш компьютер. В панели появится значок веб-сервера.

Если при работе в командной строке отобразилась ошибка:
The code execution cannot procced because VCRUNTIME140.dll was not found. Reinstalling the program may fix this problem.
Необходимо скачать и установить Visual C++ для Visual Studio 2015.

Для того, чтобы протестировать работу веб-сервера, запустите браузер и наберите в адресной строке "http://localhost/" . Если Вы видите страницу с сообщением "It works!" - значит Вам действительно успешно удалось установить веб-сервер.

Установка PHP 7

На официальном сайте PHP For Windows: Binaries and sources Releases скачиваем последнюю версию VC14 x64 Thread Safe. На момент написания статьи актуальная версия PHP 7.1 (7.1.9) с названием файла: php-7.1.9-Win32-VC14-x64.

Извлекаем содержимое архива в "C:\web_server\php". Как в случае с Apache, инсталлировать ничего не требуется.

В файл "C:\web_server\apache\conf\httpd.conf" добавляем строки:
LoadModule php7_module "C:/web_server/php/php7apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "C:/web_server/php/"
Обязательно необходимо добавить в конфигурационный файл Apache директиву "PHPIniDir", которая позволяет точно указать месторасположение файла "php.ini". После добавления директивы перезагрузите Apache и удостоверьтесь, что запуск прошел успешно.

Обратите внимание, что при записи пути обязательно используйте прямые слеши "/". Apache и PHP изначально были созданы для работы на Unix-системах, где используются именно прямые слеши. Чтобы избежать ошибок, которые очень трудно найти, настоятельно рекомендуется использовать в конфигурационных файлах Apache и PHP прямые слеши в Unix-формате.

Здесь подразумевается, что конфигурационный файл "php.ini" хранится в директории "C:/web_server/php/".

Далее необходимо сделать копию шаблона конфигурационного файла "C:\web_server\php\php.ini-developme" с именем "C:\web_server\php\php.ini", который будет основным конфигурационным файлом для РНР.

Следующей операцией будет настройка конфигурационного файла PHP. Данные настройки выходят далеко за пределы данной статьи, но в большинстве случаев, значение директив по умолчанию подходят для разработки основных приложений. Более детально можно узнать о директивах на странице Директивы PHP.

Последнее что нужно сделать, это проверить подключение необходимых библиотек. Например, библиотека "php_mbstring.dll" содержит функции для работы с много-байтными кодировками, к которым относятся кодирования восточных языков (японский, китайский, корейский), Юникод (UTF-8) и другие. Библиотека "php_mbstring.dll" должна присутствовать в директории "C:\web_server\php\ext\".

Директива "extension_dir" указывает директорию, в которой располагаются библиотеки расширений PHP.

В конфигурационном файле "php.ini" необходимо настроить следующие значения:
upload_tmp_dir="C:/Windows/Temp"
session.save_path="C:/Windows/Temp"
error_log="C:/Windows/temp/php-errors.log"
extension_dir="C:/web_server/php/ext"
memory_limit = 512M
post_max_size = 50M
upload_max_filesize = 50M
sys_temp_dir="C:/Windows/Temp"
Далее необходимо раскоментировать (убрать крапку с комой впереди) расширения, которые должны быть подключены:
extension=php_bz2.dll
extension=php_curl.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_gmp.dll
extension=php_imap.dll
extension=php_mbstring.dll
extension=php_exif.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_pdo_mysql.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_soap.dll
extension=php_sqlite3.dll
extension=php_tidy.dll
extension=php_xmlrpc.dll
Перезапускаем Apache используя ApacheMonitor.
В конфигурационном файле php.ini действуют приоритеты правил. Правило, написанное ниже будет перекрывать правило, набранное выше. Поэтому нет необходимости все выше описанные значения изменять построчно, достаточно их написать последними строками в конфигурационном файле, и данные правила будут иметь более высокий приоритет.

Для того, чтобы протестировать, как работает Web-сервер в связке с интерпретатором, переименуйте файл "index.html" на "index.php" в папке "C:\web_server\apache\htdocs" и заполните его таким содержанием:
<?php
phpinfo( );
?>
Запустите браузер. Наберите в адресной строке "http://localhost/". Если вы увидели несколько файлов в окне браузера, то нажмите на "index.php". В результате должны увидеть страницу со служебной информацией о веб сервере и интерпретаторе PHP.

Если вы параллельно работаете с несколькими проектами, то, скорее всего, понадобиться использовать виртуальные хосты (сайты). Их настройка описана в публикации: Создание виртуальных хостов Apache.

Установка MySQL сервера происходит без изменений, то есть, Web-сервер и интерпретатор PHP не влияют на его установку. Более подробно описано в публикации: Установка MySQL в Windows.

Вот и все, на этом установка завершена.

Комментарии

Андрей
Спасибо большое! Раньше устанавливал Apache и PHP по старым инструкциям, а теперь все обновил до последних версий!
Дмитрий
Автору респект, с первого раза все получилось. Ранее с инсталяшками было все намного проще, но и в ручную установка не забрала много времени. На момент установки версия PHP 7.1.10, Apache 2.4.28, операционная система Windows 10.
Костик
Спасибо за статью, помогла разобраться с установкой.
Гость
Точно как описано установил веб сервер. Версии Apache 2.4.29 Win64 - [Apache VC15 Binary] httpd-2.4.29-Win64-VC15.zip и PHP 7.2 (7.2.0) VC15 x64 Thread Safe (2017-Nov-29) на Windows 7. Extension указываются без расширения .dll (extension=bz2). Спасибо автору!
Илья
Админ, спасибо за статью. Очень круто когда все делаешь точно как описано и сразу все работает. Установил Apache 2.4.33 Win64 и PHP 7.1 (7.1.18) VC14 x64 Thread Safe. Операционная система Windows 10 Pro 64-bit.
Артем
Спасибо, с первого раза заработало по Вашей инструкции! Ура!)

Добавить комментарий

Имя:
Текст комментария: