ProfiPHPProfiPHP
  1. Главная
  2. Веб сервер
  3. Установка Web-сервера Apache 2.4 VC15 с интерпретатором PHP 7 в среде Windows

Установка 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.

Для того чтобы успешно запустить веб сервер, следует загрузить соответствующий распространяемый пакет Visual С++ для Visual Studio, который содержит необходимые динамические библиотеки, например:

VC 11 - http://www.microsoft.com/en-us/download/details.aspx?id=30679

VC 14 - http://www.microsoft.com/en-us/download/details.aspx?id=48145.

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

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

Перед установкой необходимо загрузить и установить обновления Visual Studio 2017 с сайта Microsoft.
Установку Visual Studio можно пропустить на данный момент, возможно, она уже установлена. Если в процессе установки будут ошибки, связаны с данным программным обеспечением, тогда можно перейти к установке.

Аналогично статьям, написанных ранее, мы будем также придерживаться структуре директорий, а именно в корне диска "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

Если вы увидили ошибку The program can't start because VCRUNTIME140.DLL is missing from your computer:

Необходимо установить Visual C++ для Visual Studio 2015.

Также можно использовать альтернативу командной строке 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/".

РНР имеет огромное количество разнообразных настроек, которые сосредоточены в файле php.ini. Сразу после установки интерпрератора PHP вместо файла php.ini можно обнаружить лишь два файла:

- php.ini-production - рекомендованный набор параметров для рабочего сервера;

- php.ini-development - рекомендованный набор параметров для рабочей станции разработчика.

Для локальной разработки файл php.ini-development следует переименовать в php.ini.

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

Последнее что нужно сделать, это проверить подключение необходимых библиотек. Интерпретатор РНР строится по модульному принципу. Язык состоит из ядра, к которому при необходимости могут подключаться расширения - библиотеки, дополняющие язык новыми возможностями. Например, для обработки изображе­ний можно подключить расширение GDLib, для связи с базами данных - расширение PDO, для поддержки многобайтовых строк (UTF-8) - mbstring.

Каждое расширение увеличивает размер оперативной памяти, которую занимает интерпретатор РНР. Чем больше памяти потребляет интерпретатор, тем меньше процессов РНР можно запустить на сервере, тем меньше соединений сервер может обслужить в одну секунду. Поэтому расширения подключаются и отключаются по мере необходимости. Для того чтобы уменьшить размер исполняемого файла РНР, а следовательно, и объем потребляемой оперативной памяти, большинство расши­рений не включаются в состав ядра РНР. Вместо этого они компилируются в виде внешних динамических библиотек: *.dll для Windows и *.so для UNIХ-подобных операционных систем. Посмотреть список всех подключенных расширений можно с помощью отчета функции Phpinfo (раздел Configuration) или выполнив команду "php -m".
В дистрибутивах для операционной системы Windows расширения, оформленные в виде динамических библиотек, скомпилированы, но не подключены. Обнаружить их можно в подкаталоге ext основной папки РНР-дистрибутива. Для того чтобы подключить одно из таких внешних расширений, необходимо отредактировать конфигурационный файл php.ini. В конфигурационном файле следует найти директиву extension_dir и указать в ней путь к папке с расширениями.

После того как путь к папке с расширением указан, можно активировать сами рас­ширения, воспользовавшись директивой extension. В конфигурационном файле php.ini, как правило, уже добавлены закомментированные директивы для всех рас­ширений из папки ext. Нужное расширение необходимо активировать, убрав точку с запятой из начала строки.

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

В конфигурационном файле "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.

Убедиться в том, что РНР доступен, можно, запустив командную строку, а затем перейти в папку "C:\web_server\php" при помощи команды:
cd c:/web_server/php
Выполнив в командной строке команду PHP с параметром -v, можно узнать теку­щую версию РНР:
c:\web_server\php>php -v
PHP 7.1.25 (cli) (built: Dec 5 2018 06:51:14) ( ZTS MSVC14 (Visual C++ 2015) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
Для того чтобы команда РНР была доступна в любой точке файловой системы, путь к РНР-интерпретатору следует прописать в переменной окружения РАТН.

Для доступа к переменным окружения нужно открыть Панель управления, перейти к разделу Система. В открывшемся окне щелкнуть по ссылке Дополнительные параметры системы. Затем необходимо выбрать пункт Переменные среды. В открывшемся диалоговом окне в разделе Системные перемен­ные следует отыскать переменную окружения РАТН и дополнить ее путем к катало­гу "c:\web_server\php". Отдельные пути в значении переменной РАТН разделяются точкой с запя­той (в конце всей строки точка с запятой не требуется). После этого команда PHP будет доступна в любой папке компьютера. Более подробно можно ознакомится на странице: Настройка системной переменной PATH.

Если вы параллельно работаете с несколькими проектами, то, скорее всего, понадобиться использовать виртуальные хосты (сайты). Их настройка описана в публикации: Создание виртуальных хостов 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.
Артем
Спасибо, с первого раза заработало по Вашей инструкции! Ура!)
Name
Спасибо за помощь! Версия Apache 2.4.37, PHP - 7.1 (7.1.25). Написано очень легко и доступно!
PHP
Спасибо, очень помогло!

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

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