Разное

Apache сервер: The Apache HTTP Server Project

23.11.2017

Содержание

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

4 июня 2020

191

Время чтения ≈ 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!

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

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

Apache сервер: что такое и как настроить

Что такое Apache сервер?

Apache HTTP-сервер — это так называемый свободный веб-сервер, представляющий собой кросплатформенное программное обеспечение. Apache поддерживает следующие операционные системы: BSD, Microsoft Windows, Linux, Mac OS, BeOS, Novell NetWare.

Как правильно настроить Apache?

Обычно настройка Apache-сервера происходит через файл .htaccess (детальная инструкция). Этот файл лежит на сервере, на котором находится ваш сайт. А сам сервер считывает его содержимое и применяет настройки, которые там указаны. Ниже мы перечислим основные параметры которые изменяются в файле .htaccess и будут полезны для вебмастеров.

Автоматические перенаправления с одной страницы на другую

  • Перенаправление с http://www.site.com на http://site.com
  • Обратное перенаправление с http://site.com на http://www.site.com
  • Переезд со старого домена на новый
  • site.com/page или site.com/page/ перенаправляем на site.com/page.html
  • Обратное с site.com/page.html на site.com/page
  • Убираем слеш в конце url-а (было site.com/page/, стало site.com/page)
  • Перенаправление всех страниц одного раздела site.com/razdel-1/razdel-2/page на на страницы другого раздела site.com/razdel-1/page

⇑Как настроить перенаправления?

Обработка ошибок

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

⇑Как настроить обработку ошибок?

Настройка безопасности сайта

  • Защита от инъекций
  • Защита от кражи картинок
  • Блокирование пользователей по IP
  • Защита файлов и папок
  • Работа с User-агентами

⇑Как настроить безопасность сайта?

Кодировка страниц сайта

  • Работа с кодировкой страниц сайта, на уровне сервера.

⇑Как настроить кодировку?

Оптимизация работы сайта

  • Ускорение работы сайта
  • Работа с кэшированием
  • Изменение главной страницы сайта

⇑Как оптимизировать сайт?

Настройки PHP

  • Работа с параметрами PHP, которые задаются на уровне сервера.

⇑Как настроить PHP?

Информация про Apache

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

Начиная с апреля 1996 года и до настоящего времени Apache является самым распространенным и популярным HTTP-сервером в сети Интернет. Согласно статистическим данным в августе 2007 HTTP-сервером работал на 51% всех веб-серверов, в мае 2009 года этот показатель снизился до 46%, а в январе 2011 года вырос до 59%. На сегодняшний день более 59% от общего количества веб-сайтов обслуживаются веб-сервером Apache. Разработкой и поддержкой Apache занимаются специалисты открытого сообщества разработчиков под эгидой Apache Software Foundation. Apache включен в большинство программных продуктов, среди которых IBM WebSphere и СУБД Oracle.

Apache оснащен встроенным механизмом виртуальных хостов. Благодаря этому на одном IP-адресе можно обслуживать большое количество веб-проектов (доменных имен), при этом отображая для каждого из них свое содержимое. Для каждого виртуального хоста имеется возможность указать свои настройки модулей и ядра, а также установить ограничения к доступу ко всему сайту либо некоторым файлам. С помощью Apache-ITK для каждого виртуального хоста можно запускать процесс ht

Apache для Windows — Веб-сервер под Windows

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

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

Скачать Apache для Windows

Последней версией Apache для Windows является 2.4.43, она вышла 31 марта 2020 года.

Ссылки для скачивания:

Убедитесь, что у вас установлена последняя версия Visual C++ Redistributable for Visual Studio 2015-2019, которая необходима для работы Apache в Windows (версия 14.25.28508.3 и выше):

Официальный сайт Apache

Официальным сайтом веб-сервера Apache является: https://httpd.apache.org/

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

Официально рекомендованным источником исполнимых файлов является Apache Lounge. Именно с на его файлы даны ссылки чуть выше.

Как настроить Apache на Windows

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

Имеется детальная пошаговая инструкция для установки веб-сервера: «Установка веб-сервера (Apache 2.4, MySQL 8.0, PHP 7, phpMyAdmin) на Windows 10».

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

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

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

Что может веб-сервер в Windows

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

Вы можете подключат и использовать при тестировании и разработке:

  • модули Apache (например, mod_rewrite)
  • PHP (требуется дополнительная установка)
  • базы данных (требуется дополнительная установка)

Версии Apache для Windows

В настоящее время актуальной веткой Apache является 2.4.*. Предыдущее поколение Apache 2.2.* является устаревшим и больше не поддерживается. Новые версии, исправления ошибок и патчи безопасности начиная с 2018 года выпускаются теперь только для Apache 2.4. Именная эта версия предоставлена для скачивания на этом сайте.

Сборка Apache + PHP + MySQL + phpMyAdmin

Если вы хотите в несколько кликов получить работающий веб-сервер Apache + PHP + MySQL + phpMyAdmin на Windows, то скачайте готовую сборку, которая включает полностью настроенный для Windows веб-сервер, который достаточно распаковать и запустить кликом по ярлыку.

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

Apache — это популярнейший свободный веб-сервер. Состоянием на 2016 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов. Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.

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

Содержание статьи:

Установка Apache

На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:

sudo apt update
$ sudo apt upgrade

Затем установка apache2:

sudo apt install apache2

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

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

sudo systemctl enable apache2

Настройка Apache

Уже прошло то время, когда конфигурация Apache хранилась в одном файле. Но оно и правильно, когда все распределено по своим директориям, в конфигурационных файлах легче ориентироваться.

Все настройки содержатся в папке /etc/apache/:

  • Файл /etc/apache2/apache2.conf отвечает за основные настройки
  • /etc/apache2/conf-available/* — дополнительные настройки веб-сервера
  • /etc/apache2/mods-available/* — настройки модулей
  • /etc/apache2/sites-available/* — настойки виртуальных хостов
  • /etc/apache2/ports.conf — порты, на которых работает apache
  • /etc/apache2/envvars

Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.

Сначала давайте рассмотрим главный файл конфигурации:

vi /eta/apache2/apache2.conf

apache

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

KeepAlive On — очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.

MaxKeepAliveRequests 100 — максимальное количество запросов за одно соединение, чем больше, тем лучше.

KeepAliveTimeout 5 — таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.

User, Group — пользователь и группа, от имени которых будет работать программа.

HostnameLookups — записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.

LogLevel — уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error

Include — все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.

apache1

Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:

<Directory /адрес/в/файловой/системе/>
Параметр значение
</Directory>

Здесь доступны такие основные опции:

AllowOverride — указывает нужно ли читать .htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All — разрешать все, None — не читать эти файлы.

DocumentRoot — устанавливает из какой папки нужно брать документы для отображенияа пользователю

Options — указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All — разрешить все, FollowSymLinks — переходить по символическим ссылкам, Indexes — отображать содержимое каталога если нет файла индекса.

Require — устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied — всем запретить, Require all granted — всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.

Order — позволяет управлять доступом к директории. Принимает два значения Allow,Deny — разрешить для всех, кроме указанных или Deny,Allow — запретить для всех, кроме указанных. Теперь мы можем запретить доступ к директории для всех: Deny from all, а затем разрешить только для приложения от losst.ru: Allow from losst.ru.

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

У нас остался файл /etc/apache2/ports.conf:

apache2

В нем только одна директива, Listen, которая указывает программе на каком порту нужно работать.

Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.

apache3

Дальше поговорим немного о htacess. Совсем немного.

Настройка сервера Apache через htaccess

Файлы .htaccess позволяют настраивать веб-сервер на Ubuntu для поведения в определенной директории. Все инструкции, указанные в этом файле выполняются как бы они были обвернуты в тег <directory адрес_папки> если бы находились в основном файле.

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

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

Order Deny,Allow
Deny from all

Запрещает всем доступ к этой папке, важно применить, для папок с конфигурацией. Чаще всего .htaccess используется для работы с модулем mod_rewrite, который позволяет изменять запросы на лету:

RewriteEngine on
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]

Но это очень обширная тема и выходит за рамки этой статьи.

Настройка модулей Apache

Как я уже говорил, Apache — модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.

Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:

apache2ctl -M

apache4

Включить модуль можно командой:

sudo a2enmod имя_модуля

А отключить:

sudo a2dismod имя_модуля

После включения или отключения модулей нужно перезагрузить apache:

sudo systemctl restart apache2

Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:

vi /etc/apache2/mods-available/deflate.load

apache5

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

Настройки модулей находятся в той же папке, только в файле с расширением .conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:

vi /etc/apache2/mods-available/deflate.conf

apache6

Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:

a2enconf имя_модуля

a2disconf имя модуля

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

sudo a2enmod expires
$ sudo a2enmod headers
$ sudo a2enmod rewrite
$ sudo a2enmod ssl

Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.

Настройка виртуальных хостов Apache

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

Настройки хостов Apache расположены в папке /etc/apache2/hosts-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:

  • ServerName — основное имя домена
  • ServerAlias — дополнительное имя, по которому будет доступен сайт
  • ServerAdmin — электронная почта администратора
  • DocumentRoot — папка с документами для этого домена

Например:

vi /etc/apache2/sites-available/test.site.conf

apache7

<VirtualHost *:80>

ServerName test.site
ServerAlias www.test.site
ServerAdmin [email protected]
DocumentRoot /var/www/test.site/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

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

sudo a2ensite test.site

Здесь test.site — имя файла виртуального хоста. Для отключения тоже есть команда:

sudo a2dissite test.site

Настройка виртуальных хостов Apache завершена и на публичном сервере это все бы уже работало, но если вам нужна настройка Apache на домашней машине, то вы ваш новый сайт не откроется в браузере. Браузер не знает такого сайта. И откуда ему знать? DNS службы не могут ничего сообщить об этом доменном имени. Но в системе Linux мы можем сами указать ip адреса для доменных имен в файле /etc/hosts. Поэтому добавляем в конец файла такие строки:

vi /etc/hosts

127.0.0.1 test.site
127.0.0.1 www.test.site

Вот, ну теперь будет работать, открывайте браузер, проверяйте.

Выводы

Вот и все. Установка и настройка Apache linux завершена, вы можете использовать программу для размещения ваших сайтов. Более того, вы не просто настроили ее, вы разобрались со всеми подробностями и теперь знаете чуточку больше. Если у вас остались еще вопросы, пишите в комментариях!

Оцените статью:

apache7 Загрузка…
Веб сервер 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 HTTP Server — Википедия. Что такое Apache HTTP Server

Apache HTTP-сервер (произносится /ə.ˈpæ.ʧi/, назван именем группы племён североамериканских индейцев апачей; кроме того, является искажённым сокращением от англ. a patchy server; среди русских пользователей общепринято переводное апа́ч) — свободный веб-сервер.

Apache является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.

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

История

Сервер был написан в начале 1995 года и считается, что его имя восходит к шуточному названию «a patchy» (с англ. — «заплаточка»), так как он устранял ошибки популярного тогда сервера Всемирной паутины NCSA HTTPd 1.3. В дальнейшем, с версии 2.х, сервер был переписан заново и теперь не содержит кода NCSA. На данный момент разработка ведётся в ветке 2.2, а в версиях 1.3 и 2.0 производятся лишь исправления ошибок безопасности. На текущий момент последняя версия ветки 2.4 — 2.4.23 (4 июля 2016) , для первой версии это 1.3.42.

Веб-сервер Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation и включён во многие программные продукты, среди которых СУБД Oracle и IBM WebSphere.

С апреля 1996 и до настоящего времени является самым популярным HTTP-сервером в Интернете. Статистика Netcraft показывает следующие данные об использовании Apache:

Apache имеет долю рынка в России до 17,45 %. Это самый популярный веб-сервер после NGINX с долей рынка 64,89 %[11].

Архитектура

Ядро

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

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

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

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

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

  • Конфигурация сервера (httpd.conf).
  • Конфигурация виртуального хоста (httpd.conf c версии 2.2, extra/httpd-vhosts.conf).
  • Конфигурация уровня каталога (.htaccess).

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

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

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

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

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

Название Разработчик Поддерживаемые OS Описание Назначение Статус
worker Apache Software Foundation Linux, FreeBSD Гибридная мультипроцессорно-мультипоточная модель. Сохраняя стабильность мультипроцессорных решений, она позволяет обслуживать большое число клиентов с минимальным использованием ресурсов. Среднезагруженные веб-серверы. Стабильный.
pre-fork Apache Software Foundation Linux, FreeBSD MPM, основанная на предварительном создании отдельных процессов, не использующая механизм threads. Большая безопасность и стабильность за счёт изоляции процессов друг от друга, сохранение совместимости со старыми библиотеками, не поддерживающими threads. Стабильный.
perchild Apache Software Foundation Linux Гибридная модель, с фиксированным количеством процессов. Высоконагруженные серверы, возможность запуска дочерних процессов используя другое имя пользователя для повышения безопасности. В разработке, нестабильный.
netware Apache Software Foundation Novell NetWare Мультипоточная модель, оптимизированная для работы в среде NetWare. Серверы Novell NetWare Стабильный.
winnt Apache Software Foundation Microsoft Windows Мультипоточная модель, созданная для операционной системы Microsoft Windows. Серверы под управлением Windows Server. Стабильный.
Apache-ITK Steinar H. Gunderson Linux, FreeBSD MPM, основанная на модели prefork. Позволяет запуск каждого виртуального хоста под отдельными uid и gid. Хостинговые серверы, серверы, критичные к изоляции пользователей и учёту ресурсов. Стабильный.
peruser Sean Gabriel Heacock Linux, FreeBSD Модель, созданная на базе MPM perchild. Позволяет запуск каждого виртуального хоста под отдельными uid и gid. Не использует потоки. Обеспечение повышенной безопасности, работа с библиотеками, не поддерживающими threads. Стабильная версия от 4 октября 2007 года, экспериментальная — от 10 сентября 2009 года.

Система модулей

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

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

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

Часть веб-приложений, например панели управления ISPmanager и VDSmanager реализованы в виде модуля Apache.

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

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

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

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

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

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

Существует множество модулей, добавляющих к 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.

См. также

  • Список веб-серверов
  • LAMP — комплект из Linux, Apache, MySQL, PHP и пр.
  • WAMP— комплект из Windows, Apache, MySQL, PHP и пр.
  • MAMP— комплект из Mac OS, Apache, MySQL, PHP и пр.

Примечания

Литература

  • Скотт Хокинс. Администрирование веб-сервера Apache и руководство по электронной коммерции = Apache Web Server Administration and e-Commerce Handbook. — М.: Вильямс, 2001. — 336 с. — ISBN 0-13-089873-2.

Ссылки

HTTP-сервер Apache Project

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

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

HTTP-сервер Apache является проектом программного обеспечения Apache Фонд.

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

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

Apache HTTP Server версии 2.4.43 или новее требуется для работы TLS 1.3 веб-сервера с OpenSSL 1.1.1.

Скачать | ChangeLog для 2.4.43 | Полный список изменений для 2,4 | Новые функции в httpd 2,4

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

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

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

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

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

,

HTTP-сервер Apache Project

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

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

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

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

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

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

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

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

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

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

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

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

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

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

,

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

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

В этом документе предполагается, что вы устанавливаете двоичный файл раздача апача. Если вы хотите скомпилировать 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 настроен по файлам в конфиге подкаталог. Это те же файлы, которые используются для настройки Unix версия, но есть несколько различных директив для Apache на Окна.Смотрите указатель директивы для всех доступных директив.

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

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

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

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

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

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

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

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

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

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

     LoadModule status_module "modules / mod_status.so" 

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

  • Apache также может загружать ISAPI (приложение интернет-сервера) Интерфейс программирования), такие как используемые 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 установить -n "MyServiceName"

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

httpd.exe -k установить -n "MyServiceName" -f "c: \ files \ my.конф»

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

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

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

httpd.exe -k удалить -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 перезагрузка -n "MyServiceName"

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

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

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

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

Обычно хорошей практикой является предоставление пользователю Apache. служба работает как доступ на чтение и выполнение (RX) ко всему Apache2.4 каталог, за исключением журналов подкаталога , где пользователь должен иметь как минимум права на изменение (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 в консоли». помещен в Меню Пуск -> Программы -> Apache HTTP Server 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 (либо в окне консоли, либо в виде служба) будет прослушивать порт 80 (если вы не изменили Слушайте директиву в конфигурационные файлы или установленный Apache только для текущего пользователя). Чтобы подключиться к серверу и получить доступ к странице по умолчанию, запустите браузер и введите этот URL:

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

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

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

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

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

Отображенные буквы дисков
, например, Alias ​​"/ images /" "Z: /"
UNC пути
, например, Alias ​​"/ 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 / документы / "

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

 Алиас "/ images /" "// imagehost / www / images /"


# ...
 

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

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

,

Замечания по разработке Apache - HTTP-сервер Apache Project

Эта страница предназначена для предоставления некоторой базовой информации о разработке гниды и содержание сайта разработчика.

Apache HTTP Server Project использует Subversion для размещения своего исходного кода.

Чтобы проверить ветку 2.4.x:

svn checkout http://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x httpd-2.4.x

Чтобы проверить текущую версию разработки (на момент написания статьи, 2.5.x), использование:

svn checkout http://svn.apache.org/repos/asf/httpd/httpd/trunk httpd-trunk

Коммиттеры должны проверять через https вместо http (чтобы они могли совершать свои изменения). Для получения дополнительной информации о Subversion, пожалуйста, прочитайте ASF FAQ по контролю версий.

Разработчики продолжают стремиться поддерживать совместимость модулей между 2.4.1 и будущие версии 2.4 для администраторов и конечных пользователей.

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

  1. Разработчик проверяет копию файлов, над которыми они хотят работать (в в этом случае ствол), в частный рабочий каталог называется httpd-trunk :
% svn checkout http://svn.apache.org/repos/asf/httpd/httpd/trunk httpd-trunk

Этот шаг нужно выполнить только один раз (если только каталог испорчен или удален). Коммиттеры должны использовать префикс URL из https на кассе, чтобы спасти себя от головной боли позже.

  1. Разработчик синхронизирует свой рабочий каталог с изменениями, внесенными в хранилище:
% svn update httpd-trunk

Это, вероятно, следует делать ежедневно или даже чаще в течение периодов высокой активности.

  1. Разработчик вносит изменения в свои рабочие копии, удостоверяется, что они работают, и создает исправление, чтобы другие могли применить изменения для их проверки:
% svn diff httpd-trunk / modules / http / mod_mime.с> / TMP / Foo

Файл / tmp / foo отправлен разработчикам по почте список, чтобы они могли рассмотреть ценность / срок действия патча. Стоит убедиться, что ваш код соответствует Стиль Apache, как описано в руководстве по стилю.

  1. После того, как другие разработчики согласились, что изменение - это хорошо, разработчик проверяет изменения в хранилище:
% svn commit httpd-trunk / modules / http / mod_mime.c

В поддереве httpd есть несколько разных веток хранилище Apache SVN, относящееся к разным версиям.Вершина уровень можно просматривать с SVN Просмотр CVS страниц. Основные поддеревья относящиеся к источнику сервера httpd :

httpd-2.4

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

% cd / usr / local / apache
% svn checkout http://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x httpd-2.4
 

httpd-2.5

Если вы хотите проверить самые передовые разработки, httpd-2.5 дерево разработки (планируется к выпуску 2.6) и вызов это httpd-trunk , оформить заказ следующим образом:

% cd / usr / local / apache
% svn checkout http://svn.apache.org/repos/asf/httpd/httpd/trunk httpd-trunk
 

httpd-сайт

Это поддерево содержит файлы, которые живут на http://httpd.apache.org/ . Каталог на хосте, который сопоставления с этим URL на самом деле представляет собой набор извлеченных рабочих копий SVN файлы.

Основные изменения можно внести в этот веб-сайт в вашем браузере с помощью системы ASF CMS.

Сначала добавьте это в закладки:

javascript: void (location.href = 'https: //cms.apache.org/redirect? Uri =' + escape (location.href))

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

URL SVN это https: // svn.apache.org/repos/asf/httpd/site/trunk/docs . Важно, чтобы файлы на веб-хосте не изменялись непосредственно. Если вы хотите или хотите изменить один, проверьте это в частном рабочая копия, измените , , передайте изменения в SVN, а затем выполнить svn update , чтобы привести каталог хоста в синхронизацию с источники SVN. Каталоги веб-сайта (в отличие от файлов) не поддерживаются в синхронизировать с файлами SVN автоматически. Они обновляются вручную из SVN различными людьми, как они считают целесообразным.Это обычно не проблема, если группа файлов не обновляется в соответствии с текущей групповая дискуссия.

httpd-dist

Как и поддерево httpd-site , это используется для поддержки файлы, которые составляют веб-сайт - в этом дело, http://downloads.apache.org/httpd/ . Также как и предыдущий поддерево, каталог на сервере является извлеченной рабочей копией этого поддерево. Однако, поскольку это каталог распространения, у нас есть только окружающая документация и контрольные файлы, проверенные в этом поддереве реальные архивы просто копируются на www.apache.org.

URL SVN это https://svn.apache.org/repos/asf/httpd/httpd/dist .

Коммиттеры

обычно имеют дело с этим поддеревом, когда "катят" релиз Это серия шагов, предпринятых для создания полной новой версии Apache httpd программное обеспечение. Среди прочего, ключ к этому поддереву каталог tools / , который содержит сценарий оболочки release.sh . Больше информации о политике и процедуры, относящиеся к скользящим выбросам, можно найти в Release Страница рекомендаций.

Краткий обзор начала работы с доступом к коммиттеру SVN Вот. Один ключ следует отметить, что SSH больше не используется для доступа коммиттера из-за функциональные различия с SVN.

Наш проект доступен только для чтения, GitHub и пользователи время от времени открываются запросы на извлечение. Мы не можем напрямую принять / закрыть тянуть запросы, но мы можем комментировать / просматривать, а затем фиксировать патчи. сообщение коммита может содержать фразу "this закрывает #X", где X - это Вытащите номер запроса, который будет виден в интерфейсе.

Примером ревизии, которая закрывает запрос на извлечение, является http://svn.apache.org/viewvc?view=revision&revision=1780308

Travis CI услуги используются.

Этот сервис позволяет автоматически собирать httpd на разных процессорах, ОС, с разными версиями gcc, с разными версиями библиотеки и с разными конфигурации. После успешной сборки наш тестовый фреймворк Perl также автоматически выполняется.

Все это выполняется для каждого коммита.

Цель состоит в том, чтобы выявлять ранние проблемы со сборкой и регрессию.

Если коммиттер хочет что-то зафиксировать, не запуская весь процесс (например, изменение документа или обновление статуса), он может добавить магию "[skip ci]" Ключевое слово как часть сообщения фиксации.

Вот последние построенные результаты.

,

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *