Скачать апаче сервер для виндовс. Как защитить веб-сервер Apache от взлома в Windows

09.03.2019

В данном разделе мы с вами будем разбираться с тем, как работает HTTP сервер Apache . Начнем мы, конечно, с установки Apache на Windows. Нужно отметить, что большинство хостингов в качестве веб-сервера используют Apache, поэтому любому веб-мастеру необходимо знать основы работы с этим сервером.

В этой записи мы с вами разберемся для чего вообще нужен веб-сервер, затем поговорим про некоторые особенности сервера Apache и установим его на компьютер под управлением Windows, а в завершении мы посмотрим на ошибки, которые могут возникнуть при установке Apache на Windows 7 и выше.

Что такое веб-сервер Apache и для чего он нужен?

Мы знаем, что взаимодействие в сети Интернет можно полностью описать или эталонной моделью. Для веб-разработчика наибольший интерес представляют протоколы и технологии, находящиеся на шестом и седьмом уровне эталонной модели. Из всех протоколов седьмого уровня нам более всех интересен , в основе которого лежит архитектура клиент-сервер.

Мы это сделали следующим образом: в корне диска С создали папку Server, внутри которой создали еще четыре папки: apache, tmp, www, log, php. Не все папки мы будем использовать в данной инструкции. Всё это отображено на рисунке ниже.

В папке www мы создали простой , который назвали Index.html со следующим содержимым:

Проверочная страница

Apache в действие

< ! DOCTYPE html >

< html lang = "ru-RU" >

< head >

< meta charset = "UTF-8" >

< title > Проверочнаястраница< / title >

< link rel = "stylesheet" type = "text/css" href = "style.css" / >

< / head >

< body >

< h1 > Apache вдействие< / h1 >

< / body >

< / html >

В этом документе только один и если мы сможем открыть его по завершении установки веб-сервера Apache, то мы все сделали правильно. Для дальнейшей установки веб-сервера нам нужно .

Эта статья – пошаговая инструкция по созданию локального web-сервера. В ней описана установка web-сервера Apache 2.4 на платформе ОС Windows. Тестирование установки выполнялось на Windows XP SP3.

Состав web-сервера:

  • Apache 2.4 (версия 2.4.10);
  • PHP 5.4 (версия 5.4.34);
  • MySQL 5.5 (версия 5.5.23).

Эта рабочая среда подойдет:

  • опытным вебмастерам для тестирования своих проектов;
  • начинающим вебмастерам для создания своих первых сайтов.

Дистрибутивы Apache 2.4 и PHP 5.4 скомпилированы в VC9 (Visual Studio 2008).

Версия Apache 2.4 VC9 работает, практически, со всеми актуальными версиями Windows (7/8/Vista/XP SP3).

Для работы приложений VC9, прежде всего, необходимо обновить библиотеки Visual C++.

Установка пакета обновлений библиотек Visual C++

Скачиваем дистрибутив обновлений vcredist_x86.exe с сайта Microsoft, запускаем файл и выполняем обновление.

Установка и настройка сервера Apache 2.4

В дистрибутиве Apache нет файла инсталляции. Поэтому установка будет выполняться вручную.

Создаем папку и распаковываем архив httpd-2.4.10-win32-VC9.zip .

В файле конфигурации httpd. conf по умолчанию установлены маршруты C:\ Apache24 . Поэтому, правок в файле конфигурации будет гораздо меньше, если распаковать архив в эту папку.

Мы распакуем дистрибутив в папку C:\ TestServer .

Вносим правки в файл конфигурации C:\ TestServer \ Apache24\ conf\ httpd. conf . При написании путей вместо символа «\» (обратная косая черта) следует использовать символ «/» (прямая косая черта). Так прописываются пути в операционных системах Linux и Unix. А ведь первоначально Apache разрабатывался именно для этих операционных систем.

Выполняем групповую замену текста C:/ Apache24 на C:/ TestServer / Apache24 .

Устанавливаем значение параметра ServerName .
ServerName localhost:80

Устанавливаем значение параметра ServerAdmin (e-mail администратора).
ServerAdmin [email protected]

Устанавливаем значение параметра DocumentRoot (расположение документов сайта).
DocumentRoot C:/ TestServer / Apache24/ htdocs

Возможно, вы захотите хранить документы сайта отдельно от сервера. Например, в папке C:\ MySites . Тогда этот параметр можно изменить.
DocumentRoot C:/ MySites

Исполняемые файлы Apache находятся в папке C:\TestServer \Apache24\bin . Добавляем это значение в переменную среды PATH Windows .
PATH = C:\TestServer \Apache24\bin;

Устанавливаем Apache как службу.
httpd.exe -k install

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

Запускаем сервер Apache.
httpd.exe -k start

Проверяем работоспособность сервера. В командной строке браузера набираем адрес: http://localhost . Если установка Apache прошла успешно – на экране отобразится текст It works ! . В противном случае мы увидим пустой экран.

В случае если сервер не запустился, следует проверить, не занят ли порт 80, который использует Apache по умолчанию.

Делается это с помощью команды
netstat –anb

Чаще всего этот порт используют Skype или Firefox. В этом случае следует либо освободить порт, либо перевести Apache на порт 8080 .

Для этого в файле httpd . conf изменяем значений параметров ServerName и Listen . ServerName localhost:8080
Listen 8080

После этого перезапускаем службу командой
httpd.exe -k re start

и опять пытаемся зайти по адресу http://localhost

Для удобства работы с сервером Apache можно установить в меню ярлык, указывающий на C:\TestServer \Apache24\bin\ ApacheMonitor.exe

Установка PHP 5.4

Заходим на сайт разработчика http://windows.php.net/download/ . Находим дистрибутив PHP 5.4 в секции VC9 x86 Thread Safe и загружаем архив php-5.4.34-Win32-VC9-x86.zip .

Создаем папку на локальном компьютере, пусть это будет C:\TestServer \PHP54 , и распаковываем архив.

Возвращаемся на сайт с дистрибутивом Apache. В разделе Additional + VC9 находим архив php5apache2_4.dll-php-5.4-win32.zip с PHP-модулями Apache и скачиваем его.

В архиве находим папку с самой последней версией модуля php5apache2_4.dll и помещаем его в папку C:\TestServer \PHP54 .

В файл конфигурации httpd . conf добавляем строки:

LoadModule php 5_ module « C :/ TestServer / PHP 54/ php 5 apache 2_4. dll »
AddHandler application / x — httpd — php . php
# configure the path to php . ini
PHPIniDir « C :/ TestServer / PHP 54/ php «

В папке C:\TestServer \Apache54\htdocs создаем файл test.php .

echo «Hello Apache!»;
?>

Перезапускаем Apache.

В адресной строке браузера набираем http://localhost/test.php . Если на экране появится текст Hello Apache! , то установка PHP завершилась успешно.

Настройка php.ini

Для работы с БД MySQL нам необходимо настроить php. ini – файл конфигурации PHP.

В папке C:\ TestServer \ PHP54 находятся два шаблона: development и php.ini-production .

Переименовываем шаблон php.ini-production в .

Библиотеки для работы с БД MySQL находятся в папке C :\ TestServer \ PHP 54\ ext . Этот путь должен быть прописан в директиве extension_dir файла конфигурации php.ini.

Находим этот параметр, удаляем символ комментария в начале строки (это точка с запятой) и прописываем путь.
extension_dir = « C :/ TestServer / PHP 54/ ext «

Для работы с БД MySQL в PHP существуют две библиотеки: php _ mysqli . dll – более новая и именно ее рекомендуется использовать в работе; php _ mysql . dll – старая, но ее используют на большинстве сайтов.

В файле php.ini лучше прописать обе библиотеки.
extension = php _ mysql . dll
extension = php _ mysqli . dll

После завершения правок обязательно перезапускаем сервер Apache.

Установка и настройка MySQL

Заходим на страницу http://www.mysql.ru/download/ . Выбираем версию для Win32 или Win64 . Мы будем загружать установочный пакет mysql-5.5.23-win32.msi .

Запускаем файл mysql-5.5.23-win32.msi .

Соглашаемся на лицензионные условия, выбираем тип установку Typical .

Переходим к настройке MySQL сервера.

Выбираем Detailed Configuration – детализированную настройку конфигурации.

Выбираем тип сервера с минимальными требованиями к памяти – Developer Machine .

Теперь нужно решить, с какими базами данных (InnoDB, MyISAM ) будет работать наш сервер.

Multifunctional Database – поддерживаются InnoDB и MyISAM .
Transactional Database Only - поддерживается InnoDB .
Non-Transactional database Only - поддерживается myISAM .

При выборе поддержки InnoDB , следующий шаг – выбор места хранения таблиц InnoDB .

Максимальное число одновременных подключений лучше выбрать Manual Setting (ручная установка) и согласиться со значением по умолчанию (15 ).

На этом шаге параметром Enable TCP/IP Networking включается поддержка TCP-соединений, выбирается порт, по которому будут осуществляться эти соединения. Также устанавливается параметр Enable Strict Mode – режим строгого соответствия стандарту MySQL.

Теперь необходимо выбрать кодировку по умолчанию. Лучший вариант - кодировка UTF-8 . Поэтому выбираем Best Support For Multilingualism .

Для того чтобы MySQL запускался как служба Windows - устанавливаем Install as Windows Service . Если необходим автозапуск этой службы - устанавливаем Launch the MySQL Server automatically .

Теперь устанавливаем пароль администратора и выключаем опцию Modify Security Settings .

После нажатия кнопок Next и Execute установку MySQL можно считать законченной.

Для проверки работоспособности MySQL нажимаем кнопку Пуск Windows, находим утилиту работы с MySQL (MySql Server 5.5 MySQL Server Command Line ) и запускаем ее.

После ввода пароля администратора мы попадаем в командную строку MySQL.

Вводим команду
show databases;

Если мы увидим список баз данных – это будет означать, что сервер работает правильно.

Выходим из режима командной строки:
exit;

На этом установка сервера завершена. Удачной работы!

Интерфейс программы: Английский

Платформа:XP / 7 / Vista

Производитель: Apache Software Foundation

Сайт: www.apache.org

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

Основные возможности программы Apache

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

Не менее интересной возможностью программного продукта Apache является встроенный механизм поддержки виртуальных хостов. Иными словами, программа позволяет определять на одном IP-адресе несколько ресурсов, попутно управляя ними и обслуживая их. Такие возможности не всегда встречаются в программах такого типа и, надо отдать должное, это приложение справляется с этим на все сто.

Среди дополнительных функций стоит отметить то, что данная среда, хоть и распространяется совершенно бесплатно и доступна в разделах типа «скачать бесплатно» с использованием поисковых систем, тем не менее, имеет способность встраивания дополнительных модулей и поддерживает достаточно большое количество языков программирования. Сред языков присутствуют, как минимум, PHP, Python и т.д., а модулей, которые можно подключить к программе в качестве бесплатных плагинов, насчитывается около пятисот. Собственно, они и добавляют в основной функциональный набор, который и составляет такие расширенные функции данного приложения. Само собой разумеется, что все эти дополнения нужно устанавливать дополнительно и в ручном режиме. Тем не менее, каждый пользователь может выбрать для себя, что установить, а что – нет.

Apache HTTP Server — свободный веб-сервер (HTTPD). Apache является кроссплатформенным программным обеспечением, поддерживает операционные системы Linux, BSD, Mac OS X, Microsoft Windows, Novell NetWare, BeOS.

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

Архитектура Apache HTTP Server

Ядро Apache включает в себя основные функциональные возможности, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается Apache Software Foundation, без участия сторонних программистов.

Теоретически, ядро apache может функционировать в чистом виде, без использования модулей. Однако, функциональность такого решения крайне ограничена.

Ядро Apache полностью написано на языке программирования C.

  • Система конфигурации

Система конфигурации Apache основана на текстовых конфигурационных файлах. Имеет три условных уровня конфигурации:

Имеет собственный язык конфигурационных файлов, основанный на блоках директив. Практически все параметры ядра могут быть изменены через конфигурационные файлы, вплоть до управления MPM. Большая часть модулей имеет собственные параметры.

Часть модулей использует в своей работе конфигурационные файлы операционной системы (например /etc/passwd и /etc/hosts).

Помимо этого, параметры могут быть заданы через ключи командной строки.

  • Мультипроцессовые модули (MPM)

Для веб-сервера Apache существует множество моделей симметричной мультипроцессорности. Вот основные из них:

  • worker — гибридная мультипроцессорно-мультипоточная модель. Сохраняя стабильность мультипроцессорных решений, она позволяет обслуживать большое число клиентов с минимальным использованием ресурсов.
  • pre-fork — MPM, основанная на предварительном создании отдельных процессов, не использующая механизм threads.
  • perchild — гибридная модель, с фиксированным количеством процессов.
  • netware — мультипоточная модель, оптимизированная для работы в среде NetWare.
  • winnt — мультипоточная модель, созданная для операционной системы Microsoft Windows.
  • Apache-ITK — MPM, основанная на модели prefork. Позволяет запуск каждого виртуального хоста под отдельными uid и gid.
  • peruser — модель, созданная на базе MPM perchild. Позволяет запуск каждого виртуального хоста под отдельными uid и gid. Не использует потоки.
  • Система модулей

Apache HTTP Server поддерживает модульность. Существует более 500 модулей, выполняющих различные функции. Часть из них разрабатывается командой Apache Software Foundation, но основное количество — отдельными open source-разработчиками.

В модулях реализуются такие вещи, как:

  • Механизм виртуальных хостов

Apache имеет встроенный механизм виртуальных хостов. Он позволяет полноценно обслуживать на одном IP-адресе множество сайтов (доменных имён), отображая для каждого из них собственное содержимое.

Для каждого виртуального хоста можно указать собственные настройки ядра и модулей, ограничить доступ ко всему сайту или отдельным файлам. Некоторые MPM, например Apache-ITK позволяют запускать процесс httpd для каждого виртуального хоста с отдельными идентификаторами uid и guid.

Также, существуют модули, позволяющие учитывать и ограничивать ресурсы сервера (CPU, RAM, трафик) для каждого виртуального хоста.

Функциональные возможности Apache HTTP Server

  • Интеграция с другим программным обеспечением и языками программирования

Существует множество модулей, добавляющих к Apache поддержку различных языков программирования и систем разработки.

К ним относятся:

Кроме того, Apache поддерживает механизмы CGI и FastCGI, что позволяет исполнять программы на практически всех языках программирования, в том числе C, C++, Lua, sh, Java.

  • Безопасность

Apache имеет различные механизмы обеспечения безопасности и разграничения доступа к данным. Основными являются:

  • Ограничение доступа к определённым директориям или файлам.
  • Механизм авторизации пользователей для доступа к директории на основе HTTP-аутентификации (mod_auth_basic) и digest-аутентификации (mod_auth_digest).
  • Ограничение доступа к определённым директориям или всему серверу, основанное на IP-адресах пользователей.
  • Запрет доступа к определённым типам файлов для всех или части пользователей, например запрет доступа к конфигурационным файлам и файлам баз данных.
  • Существуют модули, реализующие авторизацию через СУБД или PAM.

В некоторых MPM-модулях присутствует возможность запуска каждого процесса Apache используя различные uid и gid с соответствующими этим пользователям и группам пользователей.

Также, существует механизм suexec, используемый для запуска скриптов и CGI-приложений с правами и идентификационными данными пользователя.

Для реализации шифрования данных, передающихся между клиентом и сервером используется механизм SSL, реализованный через библиотеку OpenSSL. Для удостоверения подлинности веб-сервера используются сертификаты X.509.

Существуют внешние средства обеспечения безопасности, например mod_security.

  • Интернационализация

Начиная с версии 2.0 появилась возможность определения сервером локали пользователя. Сообщения об ошибках и событиях, посылаемые браузеру, теперь представлены на нескольких языках и используют SSI технологию.

Также, можно реализовать средствами сервера отображение различных страниц для пользователей с различными локалями. Apache поддерживает множество кодировок, в том числе Unicode, что позволяет использовать страницы, созданные в любых кодировках и на любых языках.

  • Обработка событий

Администратор может установить собственные страницы и обработчики для всех HTTP ошибок и событий, таких как 404 (Not Found) или 403 (Forbidden). В том числе существует возможность запуска скриптов и отображения сообщений на разных языках.

  • Server Side Includes

В версиях 1.3 и старше был реализован механизм Server Side Includes, позволяющий динамически формировать HTML-документы на стороне сервера.

Управлением SSI занимается модуль mod_include, включённый в базовую поставку Apache.

Все компоненты веб-сервера Apache являются портативными. Следовательно, если один раз их правильно настроить, то их можно переносить на другие компьютеры. Именно этот приём использовался в популярном Denwer, а также в XAMPP и всех других подобных сборках.

MiAl’s Server Pack 2

MiAl’s Server Pack - это «ванильная», с минимумом настроек сборка, включающая исключительно самые последние версии Apache + MySQL + PHP + phpMyAdmin. Особенностью сборки является то, что она не содержит каких-либо бинарных файлов кроме тех, которые идут с исходными компонентами веб-сервера. Изменения сделаны только в текстовых конфигурационных файлах. Для запуска служб используются два простейших пакетных файла.

Благодаря этому исключаются какие-либо несанкционированные изменения в файлах веб-сервера: это обеспечивает безопасность и гарантирует отсутствие ошибок.

Скачать веб-сервер для Windows

Данный сайт является официальным сайтом MiAl’s Server Pack 2 и настоятельно рекомендуется скачивать новые версии только отсюда.

Инструкция по использованию MiAl’s Server Pack

1. Что такое MiAl’s Server Pack?

MiAl’s Server Pack - это локальный сервер, полностью сконфигурированный и готовый к работе. Для начала работы, требуется только распаковать и запустить один скрипт. После этого на Вашем компьютере будет полностью рабочая и правильно настроенная связка Apache + MySQL + PHP + phpMyAdmin.

Официальный сайт данной сборки:

Версии программного обеспечения, включённого в сборку:

  • Apache: 2.4.33
  • MySQL: 8.0.11
  • PHP: 7.2.5
  • phpMyAdmin: 4.8.0.1

Ни один из данных компонентов не подвергался каким-либо изменениям, модификациям. Для настройки этих компонентов, были внесены изменения в конфигурационные файлы. В phpMyAdmin настроены «дополнительные возможности» (подробности о «дополнительных возможностях phpMyAdmin см. https://hackware.ru/?p=21#9).

Данный пакет предназначен только для использования в качестве локального сервера!

  • MySQL: пользователь "root", пароля нет.
  • phpMyAdmin: пользователь "root", пароля нет.

Планируется обновление данного пакета по мере выхода новых версий компонентов, входящих в него.

Требования:

  1. Для работы требуется Windows (64-битная версия) выше Windows XP
  2. В распакованном виде, пакет занимает около 1 гигабайта, т. е. требуется более 1 гигабайта свободного места на диске.
  3. Также необхоодимы:
  • C++ Redistributable Visual Studio 2017 (https://aka.ms/vs/15/release/VC_redist.x64.exe)
  • Visual C++ Redistributable for Visual Studio 2015 (http://www.microsoft.com/en-us/download/details.aspx?id=48145)

2. Порядок работы.

Содержимое архива (папку Server ) необходимо распаковать в корень диска C .

Если вы не знаете, как открыть архив 7z, то используйте бесплатный архиватор 7-Zip .

После распаковки, перейти в каталог c:\Server\manage\ и запустить файл install_and_start_server.bat :

Всё! Сервер установлен и готов к работе! Для проверки работоспособности сервера, наберите в браузере http://localhost/

Выполнен вход в phpMyAdmin:

Каталог для сайтов: c:\Server\data\htdocs\

Если папку Server поместить на другой диск или переименовать её (либо иные папки в данном пакете), то сервер работать не будет. Т.к. в конфигурационных файлах прописаны абсолютные пути.

В каталоге c:\Server\manage\ имеется файл RUN.bat Данный файл включает в себя набор скриптов, которые позволяют:

  • перезапустить сервер;
  • удалить сервер;
  • установить сервер;
  • и пр.

3. Полное удаление сервера

Перейдите в каталог c:\Server\manage\ и запустите файл delete_server.bat :

Удалите каталог c:\Server .

4. Дисклеймер

Данная сборка распространяется «как есть». Без каких-либо гарантий.

Самые свежие версии данной сборки:

5. Список изменений

2.0.0 (от 15.05.2018):

  • возобновление активной поддержки пакета после почти трёхлетнего перерыва
  • Apache обновлён до версии 2.4.33
  • PHP обновлён до версии 7.2.5
  • MySQL обновлена до версии 8.0.11
  • phpMyAdmin обновлён до версии 4.8.0.1