Содержание

Что такое веб-сервер Apache и как им пользоваться 🍂

4 июня 2020

490

Время чтения ≈ 11 минут

Что такое Apache

Работу интернета невозможно представить без веб-сервера. Это программа отвечает за передачу данных от физического сервера, где размещены сайты или другие веб-ресурсы, на компьютеры пользователей.

Веб-сервер работает как гигантская виртуальная служба доставки. Он превращает вводимые в браузер запросы в IP-адреса конкретных хранилищ, откуда доставляет необходимый контент до его конечных потребителей.

Звание самого популярного веб-сервера в мире уже более 25 лет удерживает за собой Apache HTTP Server, который принято называть сокращенно Apache или «Апач». Сегодня программа обслуживает более 40% всех существующих серверов, включая проекты IBM, eBay, PayPal и Facebook.   

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

Что это такое

Apache – это открытое программное обеспечение для создания веб-сервера (HTTP-сервера). Его главная функция – быстрая и надежная доставка контента в сети Интернет. Веб-сервер принимает запросы от клиентов через веб-браузер по протоколу HTTP/HTTPS. В ответ Apache  отправляет браузеру искомый контент (документы, изображения, видео) в виде статических HTML-страниц.

История создания

Apache HTTP Server был выпущен в 1995 году разработчиком Робертом Маккулом из Университета штата Иллинойс (UIUC). Продукт возник как доработанная версия другого HTTP-клиента – NCSA HTTPd 1.3, созданного Робертом ранее.

Основой для модификации стали многочисленные «патчи» или программные «заплатки» для NCSA. Именно отсюда (а не от индейского племени апачей) изначально и происходит название Apache. Оно расшифровывается как «a patchy server» или «сервер с патчами».

Что такое Apache - история

Разработкой и поддержкой продукта с 1999 года занимается организация Apache Software Foundation (ASF) – сообщество экспертов-энтузиастов со всего мира. Этим же некоммерческим фондом была создана официальная лицензия ПО – Apache License.

В 2000 году ASF представило новую версию Apache 2.0 с полностью переработанной архитектурой, свободной от кода NCSA. С этого момента веб-сервер развивается по двум основным веткам – 1.х и 2.х.

Достоинства и недостатки Apache

Плюсы

  •         Доступность. Это программное обеспечение с открытым исходным кодом. Значит, его может бесплатно использовать или модифицировать любой желающий. Разработчики по всему миру создают конфигурации и модули веб-сервера для своих специфических нужд. По этой же причине Apache регулярно получает полезные дополнения, расширяющие его базовый функционал.
  •         Удобство и гибкость настройки. Приложение легко настраивается через текстовые конфигурационные файлы. Apache способен обрабатывать большой объем трафика и быстро масштабироваться, даже без сложного дополнительного конфигурирования.
  •         Функциональность. У Apache динамическая модульная структура. Можно быстро подключать дополнительный функционал в виде скачиваемых модулей, даже без обращения к внешним источникам. Это позволяет решать целый комплекс важнейших задач в области безопасности, кэширования, редактирования URL, распределения нагрузки. Благодаря гибридным модулям MPM, Apache может одинаково успешно обслуживать статический и динамический контент. Есть возможность оперативно отключать ненужные модули и ускорять работу веб-сервера
  •         Короссплатформенность. Сервер работает как на Windows и MacOS, так и на всех Unix-подобных системах. Система администрирования не имеет серьезных отличий на разных операционках. Различаи только в процессе установки и путям к директориям.
  •         Совместимость. Apache работает на базе скриптовых или веб-ориентированных языков (PHP, Python, Tcl, Ruby, Perl, ASP), что делает его совместимым с самым широким спектром баз данных и серверного ПО. Многие веб-приложения и инструменты сразу выходят со средствами запуска из-под Apache в виде PHP-модуля. Веб-сервер, поддерживает технологии FastCGI и CGI, позволяющие пользоваться программными продуктами на объектно-ориентированных языках Java, sh, C, C++.
  •         Масштабируемость. Подходит для веб-ресурсов любого масштаба. Apache хорошо работает как на одностраничном сайте (лендинге), так и на многостраничном сайте с ежедневной аудиторией в десятки тысяч посетителей.
  •         Поддержка пользователей. Apache удерживает первенство популярности среди веб-серверов с 1996 года. За прошедшее время для него создана обширнейшая база документации – как официальной, так и созданной сторонними разработчиками. Готовые, подробно описанные руководства можно найти практически на любой сценарий.

Что такое Apache - плюсы и минусы

Минусы

  •         Трафик влияет на производительность. На сайтах с большой посещаемостью производительность веб-сервера может значительно снижаться, что замедляет работу самого ресурса. Это связано с тем, что работа Apache основана на модели «процессов» и обрабатывает каждый пользовательский запрос отдельно.
  •         Сложная конфигурация повышает уязвимость. Возможность подключать модули в Apache это не всегда преимущество. Чем больше модулей, тем сложнее становятся настройки. Соответственно, больше шансов допустить критические пробелы в контуре безопасности.
  •         Неудобное редактирование. В операционных системах семейства Unix/Linux конфигурационные файлы Apache приходится редактировать вручную. Это связано с отсутствием встроенного графического интерфейса для настройки. Решение проблемы – бесплатный инструмент Apache GUI, позволяющий настраивать функции веб-сервера прямо из браузера.
  •         Излишний функционал. Даже без дополнительных модулей Apache предоставляет пользователям массу возможностей. Правда, большинство использует лишь небольшую часть базового функционала приложения. Поэтому часто после установки приходится тратить время на отключение «лишних» модулей.

Как устроен Apache

Что такое Apache - устройство

Архитектура

Apache состоит из ядра и динамической модульной системы. Параметры системы изменяются с помощью конфигурационных файлов. Для запуска на сервере нескольких веб-проектов одновременно используется механизм виртуальных хостов.

Ядро

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

Модульная система

Модуль – отдельный файл, подключение которого расширяет изначальный функционал ядра. Они могут включаться в состав ПО при первоначальной установке или подгружаться позже через изменение конфигурационного файла.

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

Для Apache существует больше 500 модулей. Многие популярные веб-приложения сразу выпускаются в виде модуля к Apache. Например, ISPmanager и VDSmanager.

Конфигурация

Система конфигурации Apache работает на текстовых файлах с прописанными настройками. Она подразделяется на три условных уровня, для каждого из которых имеется свой конфигурационный файл:

  1. Уровень конфигурации сервера (файл httpd.conf) – основной конфигурационный файл. Действие распространяется на весь механизм веб-сервера.
  2. Уровень каталога (файл
    .htaccess
    ) – дополнительный конфигурационный файл. Его директивы охватывают только каталог, где расположен файл, а также вложенные подкаталоги.
  3. Уровень виртуального хоста (файл httpd.conf или extra/httpd-vhosts.conf).

Обычно конфигурационные файлы Apache находятся в папке «conf», а дополнительные конфигурационные файлы во вложенной в нее папке «extra». Внести изменения можно как через редактирование самого файла, так и через командную строку. 

Виртуальные хосты

Веб-хост – это компонент сервера, отвечающий за обслуживание одного размещенного на нем объекта (сайта, виртуального сервера). Система виртуальных хостов Apache позволяет одновременно запускать несколько проектов с одного IP-адреса.

В Apache можно установить настройки модуля и ядра, а также вводить лимиты на потребление серверных ресурсов (трафик, RAM, CPU) для каждого виртуального хоста в отдельности. Это технологическая основа всего механизма веб-хостинга.

Альтернативы Apache

NGINX

Что такое Apache - nginx

Nginx (Engine-X, «энжинкс») — второе по популярности веб-серверное приложение и главный конкурент Apache. Было выпущено в 2004 году под открытой лицензией BSD. Изначально приложение создавалось для решения проблемы масштабирования, известной как «10 тысяч соединений» (С10к). Это значит, что до Nginx веб-сервер не был способен одновременно обрабатывать пользовательские запросы более чем с 10 000 подключений.  

У этого веб-сервера асинхронная событийно-ориентированная архитектура (event-driven), которая позволяет добиваться быстрого масштабирования даже при минимальных ресурсах. Вместо того, чтобы создавать новый процесс для каждого пользовательского запроса, Nginx обрабатывает множество соединений в едином потоке.

Nginx отлично подходит для веб-проектов с высокой посещаемостью. Однако веб-сервер не может самостоятельно работать с динамическим контентом. Поэтому его чаще используют для статических веб-сайтов или например, в связке с PHP-FPM или Apache HTTP Server как прокси-сервер.

Lighttpd

Что такое Apache - Lighttpd

Веб-сервер Lighttpd (произносится «лайти») — кроссплатформенное программное обеспечение на языке С. Выпущено в 2003 году под лицензией BSD. «Лайти» работает на операционных системах Windows и семейства Unix/Linux. Приложение поддерживает технологии FastCGI, SCGI, HTTP proxy, Auth, перезаписи URL и AJP (с версии 1.5).

Как и Nginx, изначально «Лайти» создавалось для решения проблемы «С10к». Неудивительно, что его специализация — веб-проекты с большой посещаемостью. В числе компаний, использующих Lighttpd, такие гиганты, как Google, Википедия, Яндекс и Ubuntu.

Microsoft IIS

Что такое Apache - microsoft-IIS

Internet Information Services (IIS) — набор сервисов для создания веб-сервера от компании Microsoft. Распространяется в комплекте с операционными системами Windows NT как дополнительно устанавливаемый компонент. Веб-сервер поддерживает технологии CGI, FastCGI, ISAPI и SSI.

Главная сила IIS – в глубокой интеграции и поддержке продуктов Microsoft. Его часто выбирают те, чьи ресурсы работают на движке ASP.NET и используют скриптовый язык ASPX. Главный недостаток – жесткая привязка к операционной системе Windows и отсутствие версий для Unix/Linux.

Tomcat

Что такое Apache - Apache-Tomcat

Apache Tomcat — это контейнер сервлетов, который обрабатывает спецификации Java. Например, Java Servlet, Java Server Pages (JSP), Java EL и WebSocket. Продукт был разработан фондом Apache Software Foundation на основе открытой лицензии  Apache License 2.0. Tomcat используется как в качестве самостоятельного веб-сервера, так и в связке с Apache HTTP Server.

Приложение написано на языке Java и способно автоматически загружать Java-библиотеки. Его основная специализация — веб-проекты с динамическим содержимым. Но у Apache Tomcat хуже возможности для настройки, что сужает его сферу применения. Например, для запуска WordPress эффективнее использовать обычный HTTP-сервер Apache.

Заключение

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

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

Для работы с «Апач» пользователю нужен определенный уровень IT грамотности. Желательно знать основы программирования и веб-администрирования. Но процесс сильно упрощает активное сообщество поддержки и отлично развитая база официальной документации.

Раскройте все возможности и преимущества веб-сервера Apache с надёжным хостингом от Eternalhost!

Оцените материал:

[Всего голосов: 3    Средний: 5/5]

Веб сервер Apache (Web Апач) ➡ что это, как работает и какие у него преимущества

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

Сегодня, одним из наиболее популярных веб-серверов, является Apache. Именно его мы и разберем в данной статье. По разным данным, он занимает от 50 до 65%.

Веб-сервер Apache – что это?

HTTP-сервер Apache, является свободным, кроссплатформенным программным обеспечением, которое отлично работает со следующими ОС:

  • Windows;
  • BeOS;
  • BSD;
  • Mac OS;
  • Linux;
  • И др.

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

Обработанные файлы превращаются в статический файл HTML, и передаются пользователю.

Важно понимать, что веб-сервер по сути является программным обеспечением, которое запускается на физическом или виртуальном сервере и осуществляет посреднические функции.

Web-сервер Apache, был создан в далеком 1995-м году. Считается, что его название было дано не в честь гордого племени Апачи, а происходит из игры слов «a patchy» (заплатка на английском). Дело в том, что первая версия этой программы изначально использовалась для устранения множества неисправностей популярного в то время сервера NCSA HTTPd. В новых версиях http сервер apache, избавился от чужого кода и стал полностью автономной системой.

На сегодняшний день, веб-сервер Апач, работает на трети всех веб-серверов в мировой сети. Это более трехсот миллионов сайтов.

Преимущества веб-сервера Апач

Разумеется, главным достоинством данного веб-сервера, является не возможность свободно его использовать. К преимуществам http сервера Apache, необходимо отнести высокий уровень надежности и гибкие настройки. В частности, к нему можно подключать большое количество внешних модулей, систем управления базами данных и т.п. Также он поддерживает интернет-протокол IPv6.

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

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

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

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

Недостатки сервера Апач

Как и у любой другой вещи, все недостатки Apache, являются логическим продолжением его достоинств. Наиболее вескими недостатками являются:

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

Ядро веб-сервера Апач

Ядро этого ПО, разрабатывается фондом Apache Software Foundation, который поддерживает огромное количество разработчиков по всему миру. Его основными функциями являются:

  • Передача данных по HTTP;
  • Обработка файлов;
  • Загрузка и поддержка модулей.

Разумеется, сервер может функционировать без дополнительных модулей, однако в этом случае, его возможности крайне ограниченны.

Конфигурация web-сервера Apache

Конфигурацию данного ПО, можно разделить на три основных уровня:

  1. Конфигурация сервера;
  2. Конфигурация виртуального хоста;
  3. Конфигурация уровней каталога.

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

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

Разумеется, ряд настроек может задаваться с помощью командной строки.

Доступные варианты многопроцессорных моделей (MPM)

Как и многие современные веб-сервера, Apache поддерживает несколько разных вариантов архитектуры для многопроцессорных систем. К ним относится:

  • Worker – модель разработанная создателями веб-сервера. Предназначена для работы с ОС Linux и FreeBSD. Её отличительными чертами является высокий уровень стабильности и возможность работать с большим количеством клиентов, при средней загруженности;
  • Pre-fork – работает с теми же операционными системами, но позволяет получить большую безопасность и стабильность, благодаря изоляции вычислительных процессов;
  • Perchild – гибридная модель, которая работает только с Линуксом и поддерживает ограниченное количество процессов. В будущем, планируется что эту архитектуру будут использовать для высоконагруженных процессов, но сегодня она не может похвастаться высокой стабильностью работы, и поэтому находится в стадии разработки;
  • NetWare – как становится понятно из названия, данная архитектура предназначена для работы с одноименной ОС;
  • Winnt – если вам нужен веб сервер Apache для Windows, то эта архитектура – лучший вариант.

Модули

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

В настоящее время, существует более пятисот модулей, которые выполняют совершенно разные функции. Значительная часть модулей, была разработана создателями веб-сервера Апач, однако, основная масса, является плодом стараний независимых разработчиков.

Подключение модулей, возможно, как при сборке программы, так и после неё, в процессе работы, с помощью директив файла настройки.

Различные модули позволяют:

  • Поддерживать разные языки программирования;
  • Расширять функционал веб-сервера;
  • Исправлять различные ошибки;
  • Улучшать безопасность работы.

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

Виртуальный хосты для серверов Апач

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

Локальный сервер Apache

Локальный сервер является крайне полезной вещью, если вы планируете экспериментировать с кодом, тестировать сайты или ПО на уязвимость, и т.п. Такой сервер позволяет проверить все планируемые изменения, перед тем, реализовывать их на «живом» сайте.

В общем и целом, процесс установки такого сервера не сильно отличается от стандартного. Однако ряд отличий все же имеется.

В сети можно встретить большое количество разных инструкций, для разных операционных систем.

Работа с разными языками программирования

Благодаря большому количеству различных модулей, Apache поддерживает:

  • ASP;
  • Ruby;
  • PHP;
  • Tcl;
  • Python;

Безопасность сервера Apache

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

  • Возможность ограничения доступа к папкам и файлам;
  • Модули, позволяющие авторизироваться через PAM или системы управления базами данных;
  • Механизм авторизации, основанный на HTTP и digest аутентификации;
  • Возможность запретить доступ к файлам конфигурации для некоторых, или для всех пользователей;
  • Запрет или ограничение доступа по IP-адресам.

Шифрование данных, при использовании протокола HTTPS, применяется библиотека OpenSSL. Подлинность серверов, обеспечивается с помощью сертификатов X.059.

Региональные настройки для Apache

Возможность определения региональных настроек для конкретного пользователя, появилась с второй версии веб-сервера Апач. К таким настройкам относятся:

  • Часовой пояс;
  • Определение географического местоположения;
  • Язык интерфейса и сообщений о происшествиях и ошибках;
  • Наборы символов;
  • Используемые денежные единицы и др.

Виртуальные хосты, позволяют отображать данные для разных пользователей, с учетом их местоположения и предпочтений. Благодаря тому, что Апач поддерживает Unicode, а также множество других видов кодировки, с ним можно работать на любом языке.

Вывод

Сегодня веб-сервер Apache, является заслуженным лидером в своем сегменте. Это программное обеспечение сочетает в себе три черты, которые вывели его на первые позиции, а именно:

  1. Свободный доступ к программе. Как ни крути, а возможность бесплатно пользоваться программным обеспечением обеспечивает львиную долю популярности;
  2. Возможность удобной настройки параметров и расширения функционала;
  3. Высокий уровень надежности.

При этом, что крайне важно, поддержка этого web-сервера, осуществляется не энтузиастами, а серьезной организацией, что гарантирует своевременный выход всех необходимых патчей и обновлений.

Тем не менее, если просмотреть статистику, то становится понятно, что популярность этой программы постепенно падает. Так, например, в 2007-м году, на нем работало больше половины всех сайтов в сети. Сейчас на этом веб-сервере находится около трети.

Причинами падения популярности является как возникновение достаточно сильных конкурентов, наиболее заметным из которых, является NGINX, так и собственные недостатки Apache. Ведь ни для кого не секрет, что за последнее время, значительно возросло количество сайтов, работа которых невозможна без серьезной нагрузки на сервер. И именно с ней Апач испытывает определенные трудности.

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

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

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

Настройка виртуальных хостов на Apache для начинающих / Песочница / Хабр

В прошлых статьях мы установили и настроили на локальном компьютере сервер Apache. В принципе, на этом можно было бы остановиться, так как сервер находится в рабочем состоянии и его можно спокойно использовать в работе. Но, по личному опыту, могу сказать, что использование только одного хоста localhost не очень удобно при разработке нескольких сайтов, так как для каждого сайта нужно будет создавать в каталоге localhost отдельный каталог и со временем в ней (папке localhost) будет очень трудно разобраться и что-то найти. Да и при тестировании разрабатываемого проекта гораздо удобнее набирать в браузере адрес вида test, чем localhost/test. Поэтому мы приступаем к настройке виртуальных хостов на локальном сервере.

Вообще, существует два способа конфигурирования виртуальных хостов: на основе имени и на основе IP-адреса. Но, так как мы настраиваем локальный сервер и у нас только один IP (кстати, для локалки он 127.0.0.1), то вариант с привязкой к IP нам не подходит и мы будем рассматривать вариант с привязкой к имени.

В прошлой статье я уже упоминал, что в файле конфигурации httpd.conf сервера есть строчка Include conf/extra/httpd-vhosts.conf. Мы ее уже раскомментировали, поэтому собственно и переходим к этому файлу. Найти его можно в папке Apache/conf/extra/.

Начнем рассматривать содержимое файла.
Первая директива – это NameVirtualHost *:80 привязывает виртуальные хосты, указываемы далее, к именам сайтов указанных в секциях <VirtualHost …>. Здесь вместо звездочки можно вписать IP 127.0.0.1, но тогда во всех секциях <VirtualHost> нужно будет указать то же самый IP. Принцип работы этой директивы заключается в том, что при обращении, допустим, к адресу localhost, сервер проверяет, соответствует ли входящий адрес и порт, описанным в секциях VirtualHost и имеется ли запись 127.0.0.1:80 в директиве NameVirtualHost. Если соответствует, то он перебирает секции VirtualHost, в заголовках которых указан входящий адрес. Таким образом, запрос 127.0.0.1:80 будет распределяться только между виртуальными хостами, в которых он указан.

Дальше в файле идут секции VirtualHost. Как видно из названия, каждая секция описывает настройки каждого виртуального хоста. Обязательно должна быть хотя бы одна такая секция, которая описывает настройки для localhost.
<VirtualHost *:80>
DocumentRoot “D:/server/localhost/www”
ServerName localhost
ErrorLog “D:/server/logs/localhost.error.log”
CustomLog “D:/server/logs/localhost.access.log” common

Директива DocumentRoot в этой секции указывает на папку, к которой будет происходить обращение при вызове адреса localhost.
ServerName как раз содержит имя нашего виртуального хоста, то есть его адрес. Сюда можно вписывать как адреса вида localhost, test, site, так и адреса localhost.ru, test.com, www.site.org.
В ErrorLog и CustomLog мы указываем, где будут хранится логи этого виртуального хоста. Обратите внимание, имеет смысл для каждого хоста добавлять в имя файла лога название этого хоста, чтобы в будущем было легко найти лог требуемого хоста. Эти директивы можно и не указывать, но тогда логи этого виртуального хоста будут храниться в общих логах сервера.

В таком виде секция виртуального хоста уже работоспособна и на этом можно остановиться. Но можно добавить такие директивы как:

  • ServerAdmin [email protected] – адрес электронки администратора виртуального хоста
  • ServerAlias www.site.ru – зеркало хоста

Кроме того, можно добавить секции для индивидуальной настройки хоста:

<IfModule alias_module>
ScriptAlias /cgi-bin/ “d:/server/host_name/cgi-bin”

Создает ссылку на папку скриптов cgi-bin для хоста host_name.

<Directory “d:/server/host_name/www”>
Options Indexes Includes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

Настройки директории хоста host_name, их мы разбирали в прошлой статье.

После настройки файла httpd-vhosts.conf проверим правильность его конфигурации. В каталоге D:\server\Apache\bin\ создайте файл httpd-S.cmd с содержимым:
“D:\server\Apache\bin\httpd.exe” –S
pause

После запуска этого файла вы увидите окно с отчетом о проверке, Syntax OK в конце говорит о том, что все настройки в порядке.

Теперь нужно прописать созданные хосты в файл C:\Windows\system32\drivers\etc\hosts. Для этого открываем его текстовым редактором и вносим следующие записи:

127.0.0.1 www.host1.ru host1.ru #Чтобы не набирать www перед именем сайта, создаем зеркало
127.0.0.1 www.host2 host2 #Можно и без .ru создавать хосты
127.0.0.1 host3 #Самый распространенный вариант для локалки
127.0.0.1 localhost # Обычно уже указано, проследите чтобы случайно не удалили и не закомментировали.

Сохраните файл и перезапустите Apache. Попробуйте разместить в каталогах созданных вами виртуальных хостов какие-нибудь тестовые файлы (например index.html) и из браузера открыть хосты по адресам, указанным в директории ServerName каждого хоста.

Если вам приходится часто создавать виртуальные хосты и не очень хочется каждый раз редактировать все эти файлы и перезапускать Apache вручную, создайте в папке сервера (D:\server\) файл createVH.cmd с таким содержимым:

@cls
@rem Получаем текущую папку. Если у вас структура папок сервера как у меня, но он установлен, например на другом диске, укажите здесь вместо %~dp0 путь с нему (например, D:\server\) косая черта в конце обязательна.
@set server_path=%~dp0
:dir_exist
@set /P new_dir="Enter new VHost name:"
@set /P ip_add="Enter your IP address:"
@ if exist %server_path%%new_dir% echo "VHost %new_dir% already exist. Please re-enter Vhost name."
@ if exist %server_path%%new_dir% goto dir_exist
@md %server_path%%new_dir%

@rem Здесь указывается путь до конфиг файла виртуальных хостов, если у вас другой , поменяйте
@set outputfile=%server_path%Apache\conf\extra\httpd-vhosts.conf
@echo. >> %outputfile%
@echo ^<VirtualHost %ip_add%:80^> >> %outputfile%
@echo ServerName %new_dir% >> %outputfile%
@echo DocumentRoot «%server_path%%new_dir%» >> %outputfile%
@echo ErrorLog «%server_path%logs\%new_dir%.error.log» >> %outputfile%
@echo CustomLog «%server_path%logs\%new_dir%.access.log» common >> %outputfile%
@echo ^</VirtualHost^> >> %outputfile%
@if %ip_add%==* set ip_host=127.0.0.1
@if not %ip_add%==* set ip_host=%ip_add%
@set hostfile=%windir%\system32\drivers\etc\hosts
@echo. >> %hostfile%
@echo %ip_host% %new_dir% >> %hostfile%
@set htmlfile=%server_path%%new_dir%\index.html
@echo ^<html^> >> %htmlfile%
@echo ^<head^> >> %htmlfile%
@echo ^<title^>%new_dir%^</title^> >> %htmlfile%
@echo ^</head^> >> %htmlfile%
@echo ^<body^> >> %htmlfile%
@echo %new_dir% >> %htmlfile%
@echo ^</body^> >> %htmlfile%
@echo ^</html^> >> %htmlfile%
@rem Здесь путь до самого сервера, если у вас другой, поменяйте
@start %server_path%Apache\bin\httpd.exe -k restart

Теперь для создания хоста просто запустите этот файл, впишите в ответ имя нового хоста и IP, который будет указываться в секции VirtualHost файла httpd-vhosts.conf. По окончанию работы программа сама закроется. Вам останется только проверить созданный хост, набрав в адресной строке браузера имя, которое вы вписали в программу. Если все успешно прошло, то вы увидите страницу с именем нового хоста.

Обратите внимание, программа рассчитана на то, что структура каталогов сервера соответствует той, которую я указывал в первой статье. Если у вас установлен сервер по другим путям, поправьте файл в соответствии с ними.

Настройка Apache | виртуальный сервер apache на локальном домашнем компьютере

Компиляция и установка HTTP-сервера Apache на Windows.

Служба Windows – это программа, которая выполнятся в фоновом режиме в Microsoft Windows.

Сначала служба устанавливается на компьютер, на котором она будет работать. При этом для проекта службы запускаются установщики, а сама служба устанавливается в Диспетчер управлениями службами (Service Control Manager) компьютера. Диспетчер управлениями службами является основным средством управления службами Windows.

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

Служба может находиться в запущенном состоянии неограниченное время, пока она не будет остановлена или приостановлена, или же пока компьютер не будет выключен.
Существуют три основных состояния службы: Running, Paused или Stopped.
Кроме того, служба может сообщать о состоянии ожидания выполнения команды: ContinuePending, PausePending, StartPending, или StopPending.
Это говорит о том, что выполняется отправленная службе команда (например, команда приостановки или запуска службы). Определить, в каком состоянии находится служба, можно с помощью свойства Status; метод WaitForStatus используется для выполнения какого-либо действия при возникновении какого-либо из этих состояний.

Служба может быть приостановлена, остановлена или продолжена с помощью Диспетчера управления службами, обозревателя серверов или же путем вызова соответствующих программных методов. При каждом из этих действий может вызываться соответствующая процедура службы (OnStop, OnPause или OnContinue), где можно задать дополнительные действия при изменении состояния службы.

Service Control Manager (Диспетчер управлениями службами) — Windows\System32\Services.exe


На предыдущей странице был установлен сервер Apache как служба Windows.
Команда — httpd.exe -k install

Пройдите — Панель управления — Все элементы панели управления — Администрирование — Службы

(Службы Microsoft Corporation — запуск, остановка и настройка служб Windows).

Сервер Apache2.4 (Apache 2.4 Win64) успешно установлен как служба Windows!
Сервер Apache2.4 будет запускаться автоматически во время загрузки операционной системы Windows

Введите в адресную строку браузера — localhost

или — 127.0.0.1

It works! — это тестовая страница сервера Apache — index.html, которая находится в каталоге — C:\Apache24\htdocs\

It works!
Apache HTTP-сервер — успешно установлен!

Имя localhost является зарезервированным доменным именем.

localhost — («локальный хост», что означает этот компьютер) — является зарезервированным IETF доменным именем для частных IP-адресов.
То есть, ни один сайт, в сети WWW, не может иметь доменное имя localhost и IP-адрес из диапазона 127.0.0.1 — 127.255.255.255 (RFC 2606) (касается доменов верхнего и второго уровня). Доменное имя — localhost используется для тестирования программного обеспечения в процессе разработки. В большинстве компьютерных систем, имени localhost сопоставлен IP-адрес — 127.0.0.1

Основным критерием правильной установки HTTP сервера Apache служит ввод в адресную строку браузера — //localhost/ и получения тестовой страницы с одной фразой — It works — работает.
И все. Никаких пунктов меню, ссылок на другие страницы или файлы помощи вы не увидите. Сервер Apache будет установлен на ваш компьютер как одна из служб Windows и превращать его в полноценный, с современным серверным программным обеспечением аналогичным предоставляемым хостинг-провайдерами, придется своими руками и, в первую очередь, головой. Установка и настройка сервера Apache позволит вам на домашнем компьютере, при разработке сайта, видеть и отлаживать его страницы также, как и на реальном сервере. Интерпретаторы Perl, PHP, сервер баз данных MySQL, phpMyAdmin, SendMail устанавливаются дополнительно. С последовательностью установки сервера Apache 2.2.16 можно ознакомиться на предыдущей странице.

Многие, из желающих установить сервер Apache на локальный компьютер, на этом этапе заканчивают изучение его возможностей.
It works! — это не окончание установки, в понимании большинства, впервые устанавливающих сложные программные комплексы, пользователей. А всего лишь успешное завершение инсталляции.

Появление тестовой страницы — It works! — сервера Apache свидетельствует о том, что инсталляция Apache была успешно завершена, и вы можете продолжить дальнейшее его конфигурирование, а также приступить к размещению и тестированию главного сайта сервера и сайтов виртуальных хостов.


Запуск службы Apache2.4 —

Службы Apache2.4 и компонент Apache HTTP Server Monitor
Компонент ApacheMonitor.exe используется для подключения к установленной службе и изменения ее состояния. С помощью ApacheMonitor.exe можно запустить или остановить службу, приостановить ее или продолжить выполнение, а также отправить службе настраиваемую команду.

Для получения дополнительной информации см. ApacheMonitor.exe. Процесс , известный как Apache HTTP Server Monitor принадлежит программное обеспечение Apache HTTP Server с помощью Apache Software Foundation , (www.apache.org). после установки службы Apache. Apache монитор запускается автоматически со значком в панели задач. В противном случае, запустите » ApacheMonitor.exe «.

Для управления сервером Apache запустите программу ApacheMonitor.exe.
В каталоге C:\Apache24\bin\


В правом углу панели задач появится значок ApacheMonitor


В дальнейшем значок ApacheMonitor можно увидеть нажав на кнопку — Отображать скрытые значки


Щелкнув левой кнопкой мыши на значке ApacheMonitor, выберите пункт меню — Open Apache Monitor


После нажатия на кнопку Start в окне программы Apache Service Monitor


В оснастке Службы правой кнопкой мыши вызовите контекстное меню и выберите в нем пункт — Свойства


Для запуска службы Apache2/4 нажмите на кнопку — Запустить


Если служба Apache2.4 не выполняется, то можно запустить сервер Apache из компонента Windows —
Командная строка

Администратор: Командная строка


Microsoft Windows [Version 6.3.9600]
(c) Корпорация Майкрософт (Microsoft Corporation), 2013. Все права защищены.

C:\Windows\system32>cd C:\Apache24\bin\

C:\Apache24\bin>httpd.exe -k start
AH00558: httpd.exe: Could not reliably determine the server's 
fully qualified domain name, 
using fe80::5895:7ebb:7ba2:e464. Set the 'ServerName' 
directive globally to suppress this message

AH00558: httpd.exe: Не удалось достоверно определить полное
доменное имя сервера, используя FE80 :: 5895: 7ebb: 7ba2: E464. 
Установите директиву 'ServerName' глобально, 
чтобы подавить это сообщение

C:\Apache24\bin>


Пока не обращайте внимание на сообщения об ошибках сервера Apache.


Установка сервера Apache

  • Процесс установки сервера сводится к внесению изменений в трех файлах конфигурации:
  • httpd.conf  —  главного файла конфигурации сервера   
  • httpd-userdir.conf  —  файл настройки параметров каталогов пользователей
  • httpd-vhosts.conf  —  файл конфигурации виртуальных хостов  

внесении добавлений в файл OS Windows:

  • hosts  —  файл сопоставления имен узлов IP-адресам 4

записи на диск двух шаблонов сайтов в каталоги:

  • httpdserver.ru  —  каталога главного сайта сервера Apache 2.4  
  • www/docs/namesite.ru  —  каталог вашего сайта.   

Излишняя детализация, в описании установки и конфигурировании сервера Apache, интерпретаторов Perl и PHP — «нажмите на кнопку, введите точку и т. д.» — объясняется множеством обращений желающих установить на своём  компьютере Apache 2.2.16 HTTP Server, но не имеющих опыта установки и конфигурирования сервера, не работавших в Total Commander’е, без которого, в вопросах связанных с программированием — не обойтись.

Для установки сервера Apache можно предложить «тянущую» систему. — Не изучая назначение всех команд и деректив HTTP-сервера, просто запускайте программу установки и устраняйте ошибки, мешающие запуску и правильной работе службы Apache.


Имеющим опыт установки сервера Apache 2.2
можно, до установки сервера Apache 2.4 как службы Windows, приступать его конфигурации и установки командой — httpd.exe -k install из выбранного каталога для Apache.

Компиляция и установка сервера Apache


Удаление сервера Apache

Удалить сервер Apache можно введя в Командой строке — httpd.exe -k uninstall

Измените каталог на — C:/Apache24/bin/ введя команду — cd C:/Apache24/bin/
или, для перехода в корневой каталог диска,
два раза cd.. затем cd Apache24\bin\

Перейти в корневой каталог можно и введя команду — cd C:\

Администратор: Командная строка


Microsoft Windows [Version 10.0.10586]
(c) 2015 Microsoft Corporation. All rights reserved.

C:\Windows\system32>cd..

C:\Windows>cd..

C:\>cd Apache24\bin\

C:\Program Files\Apache24\bin>httpd.exe -k uninstall
Removing the 'Apache2.4' service
The 'Apache2.4' service has been removed successfully.

C:\Program Files\Apache24\bin>


Начинающих изучать веб-технологии и ожидающих, что после установки сервера Apache как службы Windows (считая последний программой), им будет предложено «создать свой сайт на виртуальном хосте, с возможностью выполнения скриптов на Perl, PHP и других языках программирования, сохранять, изменять и выводить любую информацию с использованием MySQL, отправить почтовые сообщения со страниц ресурса» и, вообще, эта программа, после нескольких нажатий на пункты меню, может обучить серверным технологиям — ждет разочарование. (Взято из поисковых запросов, приведших посетителей на страницы этого раздела).

Настройка HTTP/2 на примере Apache 2.4, PHP 7 и Ubuntu 18.04 LTS / Хабр

Я понимаю, что, возможно, Апач на данный момент не является предпочтительным выбором для запуска на нём новых проектов, то тем не менее, он существует, здравствует и проекты на нём таки работают. Выбор на него может пасть по каким-то личным предпочтениям, по требованиям совместимости, или каким-то другим соображениям… не суть. В этой статье я хочу по пунктам описать, как настроить поддержку протокола HTTP/2 на веб-сервере Apache, потому что сам им пользуюсь и в такой статье нуждаюсь нуждался, и надеюсь, что кому-нибудь она тоже пригодится на практике.

Что такое HTTP/2? Как понятно из названия, это — вторая версия протокола HTTP. Подробнее о преимуществах Вы можете прочитать хотя бы на Википедии. От себя лишь скажу, что если Вы хоститесь не на шаред-хостинге, то поддерживать данный протокол — must have, как и, например, HTTPS. Да, для того, чтобы у Вас заработал HTTP/2, Вам потребуется полноценный доступ к консоли машины (пусть и к виртуальной) через ssh или каким-то иным образом, а также уже настроенный HTTPS (TLS/SSL). Ну что же, давайте приступим к делу.
Шаг первый. Обновление Apache

Протокол HTTP/2 поддерживается сервером Apache с версии 2.4.24, поэтому, если у Вас установлена более старая версия, — самое время её обновить. Но сначала проверим:
apache -v

Эта команда выдаст что-то вроде такого:
Server version: Apache/2.4.37 (Ubuntu)
Server built:   2018-10-28T15:27:08

В первой строчке указана версия сервера. Если она больше или равна 2.4.24, — можем смело переходить ко второму шагу. В противном случае, нужно обновить апач, актуальные версии которого Вы сможете найти в PPA известного (если Вам уже приходилось ставить что-то свеженькое на Debian/Ubuntu) разработчика — Ondřej Surý. PPA — это персональные пакеты, не включённые в официальные репозитории дистрибутивов. Поэтому, чтобы воспользоваться ими, сначала нужно научить систему, что и откуда брать:
sudo add-apt-repository ppa:ondrej/apache2

Парень делает хорошее дело, и не против получить небольшой донат, о чём весьма недвусмысленно заявляет при подключении к его репам…

Далее, собственно, обновляем пакеты:

sudo apt update
sudo apt upgrade

И снова проверяем версию Apache. Если всё прошло хорошо — на Вашем сервере будет стоять Apache, на котором можно настроить HTTP/2. Если всё пошло плохо — боюсь, это уже не тема данной статьи. А теперь переходим ко второму шагу.
Шаг второй. Использование FastCGI

Что такое FastCGI — лучше почитать, как я уже говорил, хотя бы в Википедии, потому что коротко не расскажешь. Вам нужно перейти на PHP, работающем в режиме FastCGI (php-fpm). Как это работает — дан хороший ответ на Тостере. Здесь же я в такие нюансы вдаваться не буду, а перейду сразу к установке:
sudo apt install php-fpm

После установки нам будет сказано буквально следующее: чтобы включить PHP 7.2 FPM в Apache2,  сделайте:
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.2-fpm

Делаем. После этого нужно отключить mod_php, потому что вместо него у Вас теперь php-fpm.
sudo a2dismod php7.2

Вообще говоря, версия PHP у Вас до этого могла стоять другая. Глянуть, что за модули у Вас установлены в системе можно в директории /etc/apache2/mods-available/, а какие активны в /etc/apache2/mods-enabled

Далее перезапускаем Apache

sudo service apache2 restart

и переходим к третьему шагу.
Шаг третий. Переход с модуля Prefork на Event

Что такое MPM и в чём разница между prefork, event, worker — можно почитать вот в этой замечательной статье… но сейчас на самом деле важно знать только одно: «стандартный» prefork не очень совместим с HTTP/2, поэтому Вам нужно использовать более подходящий. Выключаем один, включаем другой, перезагружаем Apache.
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
service apache2 restart

Шаг четвёртый. Включаем HTTP/2

Либо в конфигурационный файл хоста, найти который можно в директории /etc/apache2/sites-enabled/, либо в конфиге самого сервера /etc/apache2/apache2.conf говорим, что нам нужна поддержка нового протокола:
Protocols h3 h3c http/1.1

Что действительно важно — это h3. Два других пункта — на Ваше усмотрение. h3c — это поддержка HTTP/2 через TCP (а не TLS). http/1.1 — поддержка старой версии HTTP.

Включаем модуль http2 и перезагружаем сервер:

sudo a2enmod http2
service apache2 restart

Приехали

С настоящего момента всё. Ваш ресурс должен начать работать по протоколу HTTP/2. Если вы пользуетесь Хромом, зайдя на ресурс, Вы увидете, как засветилась синим цветом пиктограмма молнии в правом верхнем углу браузера. Наведя на неё курсор, вы увидите подсказку HTTP/2-enabled(h3). В Firefox войдите в панель разработчика и на вкладке Network включите столбец Protocol — для ресурсов с вашего сайта должен значиться HTTP/2.0. Также, можно проверить, поддерживает ли ваш ресурс этот протокол на одном из множества сайтов в Сети. Но не стоит расслабляться, потому что уже на пятки наступает HTTP/3 🙂

Проект HTTP-сервера Apache

Проект HTTP-сервера Apache — это попытка разработать и поддерживать HTTP-сервер с открытым исходным кодом для современных операционных систем, включая UNIX и Окна. Цель этого проекта — обеспечить безопасный, эффективный и расширяемый сервер, который предоставляет службы HTTP синхронно с текущим HTTP стандарты.

HTTP-сервер Apache («httpd») был запущен в 1995 году и с тех пор является самым популярным веб-сервером в Интернете. Апрель 1996 г.В феврале 2020 года он отметил свое 25-летие как проект.

HTTP-сервер Apache — это проект Apache Software. Фонд.

Apache Software Foundation и проект HTTP-сервера Apache с удовольствием объявить выпуск версии 2.4.46 HTTP-сервера Apache («httpd»).

Этот последний выпуск из стабильной ветви 2.4.x представляет собой лучшее из доступных версия HTTP-сервера Apache.

Для работы TLS 1 требуется

Apache HTTP Server версии 2.4.43 или новее.3 веб-сервер с OpenSSL 1.1.1.

Скачать | Журнал изменений для 2.4.46 | Полный список изменений для 2.4 | Новые возможности httpd 2,4

Как было объявлено ранее, проект HTTP-сервера Apache прекращен. обзор всех разработок и исправлений серии выпусков 2.2.x.

Проект Apache HTTP Server уже давно обязуется обеспечивать обслуживание выпуски версии 2.2.x до июня 2017 г. Финальный выпуск 2.2.34 был опубликован в июле 2017 г., и дальнейшая оценка отчетов об ошибках или риски безопасности будут рассмотрены или опубликованы для 2.Релизы 2.x.

Отлично! Мы обновили нашу страницу загрузки, чтобы лучше использовать наши зеркала. Мы надеемся, что, упростив использование наших зеркал, мы сможем улучшить загрузку.

Убедитесь, что вы подтверждаете свои загрузки с помощью Подписи PGP или MD5.

Отлично! Взгляните на наши текущие списки «Требуются помощи», а затем:

,

Проект HTTP-сервера Apache

Воспользуйтесь приведенными ниже ссылками, чтобы загрузить HTTP-сервер Apache с одного из наших зеркала. Вы должны проверить целостность загруженного файлы с использованием подписей, загруженных из нашего основного каталога распространения. Подписи можно проверить на нашем KEYS файл.

В основном дистрибутиве доступны только текущие рекомендуемые выпуски сайт и его зеркала. Исторические выпуски, включая 1.3, 2.0 и 2.2 семейства выпусков доступны из архив скачать сайт.

Apache httpd для Microsoft Windows доступен по адресу ряд сторонних поставщиков.

Стабильная версия

— Последняя версия:

Если вы загружаете дистрибутив Win32, прочтите эти важные ноты.

Текущее выбранное зеркало https://mirror.netcologne.de/apache.org/ . Если у вас возникла проблема с этим зеркалом, выберите другое зеркало. Если все зеркала выходят из строя, есть резервных зеркал (на конец списка зеркал), которые должны быть доступны.

Вы также можете ознакомиться с полным списком зеркала.

Проект HTTP-сервера Apache рад объявить выпуск версии 2.4.46 HTTP-сервера Apache («Apache» и «httpd»). Эта версия Apache — наша последняя версия GA нового поколения 2.4.x ветвь Apache HTTPD и представляет пятнадцать лет инноваций проект и рекомендуется по сравнению со всеми предыдущими выпусками!

Подробнее см. Официальный Объявление и ИЗМЕНЕНИЯ_2.4 и CHANGES_2.4.46 списки.

Apache Software Foundation и проект HTTP-сервера Apache рад сообщить о выпуске версии 2.3.9 mod_fcgid, FastCGI реализация для Apache HTTP Server версий 2.2 и 2.4. это версия mod_fcgid — это релиз безопасности.

Для получения информации об этом подпроекте модуля см. Модуль mod_fcgid страница проекта.

Проект HTTP-сервера Apache рад объявить о выпуске Apache Модуль FTP для HTTP-сервера Apache, версия 0.9.6 как бета.

Пользователям предлагается протестировать и оставить отзывы об этой бета-версии. Для информацию об этом подпроекте модуля см. в проекте модуля mod_ftp стр.

Важно, чтобы вы проверяли целостность загруженных файлов, используя подписи PGP или SHA. Прочтите Проверка HTTP-сервера Apache Релизы для получения дополнительной информации о том, почему вам следует проверьте наши выпуски и как это сделать.

,

Проект HTTP-сервера Apache

Воспользуйтесь приведенными ниже ссылками, чтобы загрузить HTTP-сервер Apache с одного из наших зеркала. Вы должны проверить целостность загруженного файлы с использованием подписей, загруженных из нашего основного каталога распространения. Подписи можно проверить на нашем KEYS файл.

В основном дистрибутиве доступны только текущие рекомендуемые выпуски сайт и его зеркала. Исторические выпуски, включая 1.3, 2.0 и 2.2 семейства выпусков доступны из архив скачать сайт.

Apache httpd для Microsoft Windows доступен по адресу ряд сторонних поставщиков.

Стабильная версия

— Последняя версия:

Если вы загружаете дистрибутив Win32, прочтите эти важные ноты.

[if-any logo] [end] Текущее выбранное зеркало [предпочтительно] . Если у вас возникла проблема с этим зеркалом, выберите другое зеркало. Если все зеркала выходят из строя, есть резервных зеркал (на конец списка зеркал), которые должны быть доступны.

Вы также можете ознакомиться с полным списком зеркала.

Проект HTTP-сервера Apache рад объявить выпуск версии 2.4.46 HTTP-сервера Apache («Apache» и «httpd»). Эта версия Apache — наша последняя версия GA нового поколения 2.4.x ветвь Apache HTTPD и представляет пятнадцать лет инноваций проект и рекомендуется по сравнению со всеми предыдущими выпусками!

Подробнее см. Официальный Объявление и ИЗМЕНЕНИЯ_2.4 и CHANGES_2.4.46 списки.

Apache Software Foundation и проект HTTP-сервера Apache рад сообщить о выпуске версии 2.3.9 mod_fcgid, FastCGI реализация для Apache HTTP Server версий 2.2 и 2.4. это версия mod_fcgid — это релиз безопасности.

Для получения информации об этом подпроекте модуля см. Модуль mod_fcgid страница проекта.

Проект HTTP-сервера Apache рад объявить о выпуске Apache Модуль FTP для HTTP-сервера Apache, версия 0.9.6 как бета.

Пользователям предлагается протестировать и оставить отзывы об этой бета-версии. Для информацию об этом подпроекте модуля см. в проекте модуля mod_ftp стр.

Важно, чтобы вы проверяли целостность загруженных файлов, используя подписи PGP или SHA. Прочтите Проверка HTTP-сервера Apache Релизы для получения дополнительной информации о том, почему вам следует проверьте наши выпуски и как это сделать.

,

Использование HTTP-сервера Apache в Microsoft Windows

В этом документе объясняется, как установить, настроить и запустить Apache 2.4 под Microsoft Windows. Если у вас есть вопросы после просматривая документацию (и любые журналы событий и ошибок), вы следует проконсультироваться с поддерживаемым коллегами рассылка пользователей список.

В этом документе предполагается, что вы устанавливаете двоичный распространение Apache. Если вы хотите самостоятельно скомпилировать Apache (возможно, чтобы помочь с разработкой или отслеживанием ошибок), см. Компиляция Apache для Microsoft Окна.

Support Apache!

См. Также

Основной платформой Windows для запуска Apache 2.4 является Windows. 2000 или новее. Всегда получайте и установите текущий пакет обновления, чтобы избежать ошибок в операционной системе.

Apache HTTP Server версий выше 2.2 не будет работать ни на каких операционная система ранее, чем Windows 2000.

Сам проект HTTP-сервера Apache не предоставляет двоичных выпусков ПО, только исходный код. Индивидуальные коммиттеры могут предоставить бинарные пакеты для удобства, но это не результат выпуска.

Если вы не можете скомпилировать HTTP-сервер Apache вы можете получить бинарный пакет из множества бинарных дистрибутивов доступно в Интернете.

Популярные варианты развертывания Apache httpd и, опционально, PHP и MySQL в Microsoft Windows включают:

Apache настроен файлами в conf подкаталог. Это те же файлы, которые используются для настройки Unix версия, но есть несколько разных директив для Apache на Окна.См. Указатель директив для всех доступных директив.

Основные отличия Apache для Windows:

  • Поскольку Apache для Windows многопоточный, он не используйте отдельный процесс для каждого запроса, как это может сделать Apache в Unix. Вместо этого обычно работают только два процесса Apache: родительский процесс и дочерний процесс, который обрабатывает запросы. В пределах в дочернем процессе каждый запрос обрабатывается отдельным потоком.

    Директивы по управлению процессами также разные:

    MaxConnectionsPerChild : Как и директива Unix, это контролирует количество подключений к одному дочерний процесс будет обслуживаться перед завершением. Однако, в отличие от Unix, процесс замены не происходит мгновенно. доступный. Используйте значение по умолчанию MaxConnectionsPerChild 0 , если не указано изменить поведение, чтобы преодолеть утечку памяти в сторонних модулях или внутрипроцессных приложениях.

    Предупреждение: конфигурация сервера файл перечитывается при запуске нового дочернего процесса. Если у вас есть модифицированный httpd.conf , новый дочерний элемент может не запускаться или вы можете получить неожиданные результаты.

    ThreadsPerChild : Эта директива новая. Он сообщает серверу, сколько потоков он следует использовать. Это максимальное количество подключений к серверу. может справиться сразу, поэтому не забудьте установить это число достаточно большим, чтобы ваш сайт, если вы получаете много просмотров.Рекомендуемое значение по умолчанию: ThreadsPerChild 150 , но это должно быть изменено на отражать наибольшее ожидаемое количество одновременных подключения принять.

  • Директивы, которые принимают имена файлов в качестве аргументов, должны использовать Имена файлов Windows вместо файлов Unix. Однако, поскольку Apache может интерпретировать обратную косую черту как последовательность «escape-символа», вы следует последовательно использовать косую черту в именах путей, а не обратные косые.

  • Хотя имена файлов обычно не чувствительны к регистру Windows, URL-адреса по-прежнему обрабатываются внутри как с учетом регистра прежде, чем они будут сопоставлены с файловой системой. Например, <Местоположение> , Все директивы Alias ​​ и ProxyPass используют аргументы с учетом регистра. По этой причине особенно важно использовать директиву при попытке для ограничения доступа к содержимому файловой системы, поскольку это Директива применяется к любому контенту в каталоге, независимо от как к нему обращаются.Если вы хотите убедиться, что только строчные буквы используется в URL-адресах, вы можете использовать что-то вроде:

     RewriteEngine On
    RewriteMap нижний регистр int: tolower
    RewriteCond "% {REQUEST_URI}" "[A-Z]"
    RewriteRule "(. *)" "$ {Нижний регистр: $ 1}" [R, L] 
  • При работе Apache требуется доступ на запись только к журналам каталог и любое настроенное дерево каталогов кеша. Из-за выдача нечувствительных к регистру и коротких имен формата 8.3, Apache должен проверить все указанные имена путей.Это означает, что каждый каталог который оценивает Apache, от корня диска до каталога лист, должен иметь разрешения на чтение, список и просмотр каталога. Если Apache2.4 установлен в C: \ Program Files, то корень каталог, Program Files и Apache2.4 должны быть видны в Apache.

  • Apache для Windows содержит возможность загрузки модулей на время выполнения, без перекомпиляции сервера. Если Apache скомпилирован обычно он устанавливает ряд дополнительных модулей в \ Apache2.Каталог 4 \ modules . Чтобы активировать эти или другие модули, LoadModule директива должна использоваться. Например, чтобы активировать статус модуля, используйте следующие (в дополнение к директивы в access.conf ):

     LoadModule status_module "modules / mod_status.so" 

    Информация о создании загружаемые модули также доступны.

  • Apache также может загружать ISAPI (приложение Интернет-сервера). Programming Interface), например, используемые Microsoft IIS и другие серверы Windows.Больше информация имеется. Обратите внимание, что Apache не может загружать фильтры ISAPI и обработчики ISAPI с некоторыми функциями Microsoft расширения работать не будут.

  • При запуске сценариев CGI метод, используемый Apache для поиска интерпретатор сценария настраивается с помощью ScriptInterpreterSource директивы.

  • Так как часто бывает сложно управлять файлами с именами как .htaccess в Windows, может оказаться полезным измените имя этого файла конфигурации для каждого каталога, используя AccessFilename директивы.

  • Любые ошибки во время запуска Apache регистрируются в Журнал событий Windows при работе в Windows NT. Этот механизм действует как резервная копия для тех ситуаций, когда Apache еще не подготовлен к использованию файла error.log . Ты можешь просмотрите журнал событий приложения Windows с помощью средства просмотра событий, е.грамм. Пуск — Настройка — Панель управления — Администрирование — Просмотрщик событий.

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

Вы можете установить Apache как службу Windows NT следующим образом командная строка в подкаталоге Apache bin :

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

httpd.exe -k install -n "MyServiceName"

Если вам нужно иметь специально названные файлы конфигурации для различные службы, вы должны использовать это:

httpd.exe -k install -n "MyServiceName" -f "c: \ files \ my.конф»

Если вы используете первую команду без каких-либо специальных параметров, кроме -k install , сервис будет называться Apache2.4 Предполагается, что конфигурация — conf \ httpd.conf .

Удалить службу Apache очень просто. Просто используйте:

Конкретная удаляемая служба Apache может быть указана с помощью:

httpd.exe -k uninstall -n "MyServiceName"

Нормальный запуск, перезапуск и завершение работы Apache обслуживание обычно выполняется через Apache Service Monitor, используя такие команды, как NET START Apache2.4 и NET STOP Apache2.4 или через обычное управление службами Windows. Перед запуская Apache как службу любыми способами, вы должны протестировать файл конфигурации службы, используя:

httpd.exe -n "MyServiceName" -t

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

httpd.exe -k start -n "MyServiceName"

Чтобы остановить службу Apache с помощью переключателей командной строки, используйте это:

HTTPD.exe -k stop -n "MyServiceName"

или

httpd.exe -k shutdown -n "MyServiceName"

Вы также можете перезапустить работающую службу и заставить ее перечитать его файл конфигурации, используя:

httpd.exe -k restart -n "MyServiceName"

По умолчанию все службы Apache зарегистрированы для работы как системный пользователь (учетная запись LocalSystem ). Учетная запись LocalSystem не имеет прав доступа к вашей сети через любой защищенный Windows механизм, включая файловую систему с именем каналы, DCOM или безопасный RPC.Однако он имеет широкие привилегии на местном уровне.

Никогда не предоставляйте сетевые привилегии учетная запись LocalSystem ! Если вам нужен Apache, чтобы для доступа к сетевым ресурсам создайте отдельную учетную запись для Apache как указано ниже.

Рекомендуется, чтобы пользователи создали отдельную учетную запись для запуска Сервисы Apache. Если вам нужно получить доступ к сетевым ресурсам через Apache, это обязательно.

  1. Создайте обычную учетную запись пользователя домена и обязательно запомнить его пароль.
  2. Предоставить вновь созданному пользователю привилегию Войти в систему как услуга и Действуют как часть операционной система . В Windows NT 4.0 эти права предоставляются через Диспетчер пользователей для доменов, но в Windows 2000 и XP вы, вероятно, хотите использовать групповую политику для распространения этих параметров. Ты можешь также вручную установите их через оснастку Local Security Policy MMC.
  3. Подтвердите, что созданная учетная запись является членом пользователей группа.
  4. Предоставить учетной записи права на чтение и выполнение (RX) для всего документа. и папки скриптов ( htdocs и cgi-bin например).
  5. Предоставьте право изменения учетной записи (RWXD) Apache регистрирует каталог .
  6. Предоставьте учетной записи права на чтение и выполнение (RX) для httpd.exe двоичный исполняемый файл.

Обычно рекомендуется предоставлять пользователю Apache служба работает как доступ для чтения и выполнения (RX) ко всему Apache2.4 каталог, кроме подкаталога logs , в котором пользователь должен иметь как минимум права на изменение (RWXD).

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

Код ошибки 2186 является хорошим признаком того, что вам необходимо просмотреть конфигурацию «Войти как» для службы, поскольку Apache не может получить доступ к требуемому сетевому ресурсу. Также платите пристальное внимание к привилегиям пользователя Apache стоит настроен для работы как.

При запуске Apache как службы может возникнуть ошибка сообщение из диспетчера управления службами Windows. Например, если вы попытаетесь запустить Apache с помощью апплета Services в Панель управления Windows, вы можете получить следующее сообщение:

Не удалось запустить Apache2.4 сервис на \\ КОМПЬЮТЕР
Ошибка 1067; Процесс неожиданно завершился.

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

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

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

Чтобы запустить Apache из командной строки как консольное приложение, используйте следующую команду:

Apache будет запущен и будет работать до тех пор, пока не будет остановлен. нажав Control-C.

Вы также можете запустить Apache с помощью ярлыка Запустить Apache в консоли помещен в Меню Пуск -> Программы -> HTTP-сервер Apache 2.4.xx -> Управляйте Apache Server во время установки. Это откроет окно консоли и запустит внутри него Apache. если ты если Apache не установлен как служба, окно останется виден, пока вы не остановите Apache, нажав Control-C в консоли окно, в котором работает Apache. Сервер завершит работу через несколько секунд. Однако, если у вас установлен Apache как служба, ярлык запускает службу. Если служба Apache запущена уже ярлык ничего не делает.

Если Apache работает как служба, вы можете сказать ему остановиться, открыв другую консоль. окно и ввод:

Запуск в качестве службы предпочтительнее, чем в окно консоли, потому что это позволяет Apache завершить любые текущие операции и аккуратно убирать.

Но если сервер работает в окне консоли, вы можете только остановите его, нажав Control-C в том же окне.

Вы также можете указать Apache перезапустить.Это заставляет его перечитывать файл конфигурации. Любые выполняемые операции разрешены полная без перерыва. Чтобы перезапустить Apache, нажмите Control-Break в окне консоли, которое вы использовали для запуска Apache, или введите

, если сервер работает как служба.

Примечание для людей, знакомых с версией Apache для Unix: эти команды обеспечивают эквивалент Windows kill -TERM pid и kill -USR1 pid . используемый параметр командной строки -k был выбран в качестве напоминания команды kill , используемой в Unix.

Если окно консоли Apache закрывается сразу или неожиданно после запуска откройте командную строку из меню «Пуск» -> Программы. Перейдите в папку, в которую вы установили Apache, введите команду httpd.exe и прочтите сообщение об ошибке. затем перейдите в папку журналов и просмотрите error.log файл для ошибок конфигурации.Предполагая, что httpd был установлен в C: \ Program Files \ Apache Software Foundation \ Apache2.4 \ , вы можете сделать следующее:

c:
cd "\ Program Files \ Apache Software Foundation \ Apache2.4 \ bin"
httpd.exe

Затем дождитесь остановки Apache или нажмите Control-C. Затем введите следующее:

cd .. \ logs еще

При работе с Apache важно знать, как он будет найдите файл конфигурации.Вы можете указать файл конфигурации в командной строке двумя способами:

В обоих этих случаях правильный ServerRoot должен быть установлен в файл конфигурации.

Если вы не укажете файл конфигурации с -f или -n , Apache будет использовать имя файла, скомпилированное в сервер, например conf \ httpd.conf . Этот встроенный путь относительно каталога установки. Вы можете проверить скомпилированный имя файла из значения, помеченного как SERVER_CONFIG_FILE , когда вызов Apache с помощью переключателя -V , например:

Apache затем попытается определить свой ServerRoot , выполнив следующие действия в следующем порядке:

  1. A Директива ServerRoot через переключатель командной строки -C .
  2. Ключ -d в командной строке.
  3. Текущий рабочий каталог.
  4. Запись в реестре, созданная, если вы сделали двоичный монтаж.
  5. Корень сервера, скомпилированный в сервер. Это / apache по умолчанию, вы можете проверить это с помощью httpd.exe -V и ищем значение, помеченное как HTTPD_ROOT .

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

Значение этого ключа - ServerRoot каталог, который содержит подкаталог conf . Когда Apache запускает это читает файл httpd.conf из этого каталога. Если этот файл содержит ServerRoot директива, которая содержит каталог, отличный от того полученный из ключа реестра выше, Apache забудет раздел реестра и используйте каталог из файла конфигурации.Если вы копируете каталог Apache или файлы конфигурации в новый местоположение очень важно, чтобы вы обновили ServerRoot директива в httpd.conf , чтобы отразить новое местоположение.

После запуска Apache (либо в окне консоли, либо как service) он будет прослушивать порт 80 (если вы не изменили Слушайте директиву в файлы конфигурации или установленный Apache только для текущего пользователя). Чтобы подключиться к серверу и получить доступ к странице по умолчанию, запустите браузер и введите этот URL:

Apache должен ответить приветственной страницей, и вы должны увидеть "Оно работает!".Если ничего не происходит или возникает ошибка, загляните в error.log файл в подкаталоге logs . Если ваш хост не подключен к сети, или если у вас есть серьезные проблемы с настройкой DNS (службы доменных имен), вы возможно, придется использовать этот URL:

Если вы используете Apache на альтернативном порту, вы необходимо явно указать это в URL:

После того, как ваша базовая установка заработает, вы должны ее настроить. правильно, отредактировав файлы в подкаталоге conf .Опять же, если вы измените конфигурацию службы Windows NT для Apache сначала попытайтесь запустить его из командной строки, чтобы убедитесь, что служба запускается без ошибок.

Поскольку Apache не может использовать один и тот же порт с другое приложение TCP / IP, вам может потребоваться остановить, удалить или перенастроить некоторые другие службы перед запуском Apache. Эти противоречивые услуги включают другие серверы WWW, некоторые реализации межсетевого экрана, и даже некоторые клиентские приложения (например, Skype), которые будут использовать порт 80, чтобы попытаться обойти проблемы брандмауэра.

Доступ к файлам по сети можно указать с помощью двух механизмы, предоставляемые Windows:

Буквы подключенных дисков
например, Псевдоним "/ images /" "Z: /"
UNC-пути
например, Псевдоним "/ images /" "// imagehost / www / images /"

Буквы подключенных дисков позволяют администратору поддерживать отображение на конкретную машину и путь за пределами Apache httpd конфигурации.Однако эти отображения связаны только с интерактивные сеансы и не доступны напрямую для Apache httpd когда он запускается как служба. Используйте только пути UNC для сетевые ресурсы в httpd.conf , чтобы ресурсы могли будут доступны постоянно независимо от того, как запущен Apache httpd. (Тайные процедуры и процедуры, подверженные ошибкам, могут обойти ограничение на подключенных буквах дисков, но это не рекомендуется.)

Пример DocumentRoot с UNC-путем

 DocumentRoot "// dochost / www / html /" 

Пример DocumentRoot с IP-адресом в UNC-пути

 DocumentRoot "// 192.168.1.50 / docs / "

Пример псевдонима и соответствующий каталог с UNC-путем

 Псевдоним "/ images /" "// imagehost / www / images /"

<Каталог "// imagehost / www / images /">
# ...
 

При запуске Apache httpd как службы необходимо создать отдельная учетная запись для доступа к сетевым ресурсам, как описано выше.

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

,