Конфигурационный файл Apache. Установка и конфигурация веб сервера Apache с поддержкой PHP, JSP и MySQL на Windows XP Конфигурационный файл apache

Конфигурационные файлы Apache

В большинстве пакетов основной конфигурационный файл Apache носит имя httpd.conf . В зависимости от версии системы этот файл может находиться в разных каталогах, но формат его остается неизменным. В системах Caldera и SuSE файл httpd.conf содержится в каталоге /etc/httpd ; в Debian и Slackware он размещается в /etc/apache (Slackware предоставляет файл-образец /etc/apache/httpd.conf.default ; для обеспечения работы сервера надо лишь переименовать данный файл и внести в него необходимые изменения); в Red Hat и TurboLinux файл httpd.conf размещается в каталоге /etc/httpd/conf/ .

Как обычно, строки файла httpd.conf , начинающиеся с символа # , содержат комментарии. Опции, определяющие конфигурацию сервера, задаются в следующем виде:

Директива Значение

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

Options FollowSymLinks

AllowOverride None

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

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

Access.conf . Ссылка на этот файл формируется с помощью директивы AccessConfig и содержится в файле httpd.conf . В файле access.conf чаще всего задаются директивы , определяющие особенности доступа к указанным в них каталогам. В настоящее время этот файл обычно остается пустым, а иногда в качестве значения AccessConfig задается /dev/null , что запрещает использование access.conf .

Mime.types . Для того чтобы сообщить Web-броузеру о том, как должны обрабатываться данные, Web-сервер использует стандарт MIME (Multipurpose Internet Mail Extensions - многоцелевые почтовые расширений Internet). Например, MIME-тип text/plain означает, что данные представляют собой обычный текст, а image/jpeg определяет графические данные в формате JPEG (Joint Photographic Experts Group - объединенная группа экспертов по обработке фотоснимков). Файл mime.types содержит информацию о соответствии между MIME-типами и расширениями файлов. Например, имена файлов, оканчивающиеся.txt и.asc , связываются с MIME-типом text/plain . Если такое соответствие задано неправильно, Web-броузер будет испытывать затруднения при обработке некоторых типов файлов. Файл, поставляемый в составе пакета, обеспечивает обработку практически любых типов данных, которые могут быть помещены на Web-страницу. Если же вам надо использовать редко встречающиеся типы, вам придется добавить в этот файл новые записи.

Magic . Этот файл также позволяет определять соответствие между MIME-типами и данными. При анализе информации можно обнаружить специфические признаки того или иного типа. Так, например, многие файлы содержат специальные ключи - "магические" байтовые последовательности. Эти последовательности, преобразованные в текстовый вид, указываются в файле magic . Если вы подробно не изучили формат этого файла, вносить изменения в него не рекомендуется. Структура файла magic в данной главе рассматриваться не будет.

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

8.2.2. Основные конфигурационные файлы Если вы прочитали разд. 8.2.1 (или если смотрели файл /etc/inittab), то представляете, что в обычной ситуации процесс init помимо запуска процессов getty выполняет 2 основных действия: запускает скрипт rc.sysinit из каталога /etc/rc.d; запускает скрипт rc

Из книги Linux-сервер своими руками автора

12.5. SSL и Apache 12.5.1. Установка SSL SSL (Secure Sockets Layer) является методом шифрования, разработанным компанией Netscape для обеспечения безопасности в Интернет. Этот метод поддерживает несколько способов шифрования и обеспечивает аутентификацию как на уровне клиента, так и на уровне

Из книги Asterisk™: будущее телефонии Второе издание автора Меггелен Джим Ван

Из книги Сетевые средства Linux автора Смит Родерик В.

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

Конфигурационные файлы DHCP Большинство дистрибутивных пакетов Linux содержит сервер DHCP, разработанный Internet Software Consortium (http://www.isc.org/products/DHCP/). Internet Software Consortium (ISC) в конце 2000 г. выпустил версию 3.0 DHCP, но в начале 2002 г. многие версии Linux все еще поставлялись со старой версией 2.0

Из книги Ubuntu 10. Краткое руководство пользователя автора Колисниченко Д. Н.

Из книги Язык Си - руководство для начинающих автора Прата Стивен

Конфигурационные файлы Exim Главный конфигурационный файл Exim называется exim.conf. Обычно он располагается в каталоге /etc. В состав этого файла входят записи, представленные в следующем формате:опция = значениеКак обычно, строки, содержащие комментарии, начинаются с символа #.

Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

Из книги Разработка ядра Linux автора Лав Роберт

16.1. Установка Apache В зависимости от дистрибутива, пакет, из которого устанавливается веб-сервер Apache, может называться apache или httpd, а пакет с документацией - apache-docs или httpd-manual соответственно. В первом случае вам понадобится установить еще пакет apache-common, содержащий

Из книги автора

16.2. Настройка Apache. Файлы конфигурации После установки Apache следует отредактировать следующие файлы:? /etc/httpd/conf/httpd.conf - основной файл конфигурации. Для Apache 2.x. этот файл может также называться httpd2.conf;? /etc/logrotate.d/apache или /etc/logrotate.d/httpd (в версии 2.0) - файл ротации

Из книги автора

16.10. SSL и Apache 16.10.1. Установка SSL SSL (Secure Sockets Layer) является методом шифрования, разработанным компанией Netscape для обеспечения безопасности передачи данных. Этот метод поддерживает несколько методов шифрования и обеспечивает аутентификацию как на уровне клиента, так и на

Из книги автора

19.2. Конфигурационные файлы загрузчика В листинге 19.1 приведен основной конфигурационный файл GRUB2 - /boot/grub/grub.cfg. Он не поддается редактированию вручную. Для его создания используется утилита /usr/sbm/grub-mkconfig, которая генерирует этот конфигурационный файл на основе шаблонов,

Из книги автора

26.2.3. Конфигурационные файлы сервера Файлы конфигурации сервера находятся в каталоге /etc/apache2. Основной файл конфигурации называется apache2.conf. По умолчанию его настройки устроят большинство пользователей. Если вы планируете использовать Web-сервер не только локально (для

Из книги автора

Исходные файлы и выполняемые файлы Наша замечательная программа, несмотря на свою лаконичность и простоту, для компьютера является совершенно бессмысленным набором символов, так как он "не понимает" директив типа #include или printf. Он понимает только специальный язык,

Из книги автора

5.3.1. Конфигурационные файлы Все настроечные файлы протокола SSH находятся в директории /etc/ssh. Здесь можно увидеть следующий перечень:? файл конфигурации SSH-сервера - sshd_config;? файл конфигурации SSH-клиента - ssh_config;? файлы ключей для различных

Из книги автора

Конфигурационные параметры отладки ядра Существует несколько конфигурационных параметров, которые помогают в отладке и тестировании кода ядра и которые включаются во время компиляции. Эти параметры доступны в пункте Kernel hacking меню редактора конфигурации ядра. Все эти

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

По умолчанию настройки Apache расположены в файле "httpd.conf " в каталоге "conf ".

Следует обратить особое внимание на путь к файлам в конфигурационных файлах Apache и РНР. Вам часто придется указывать пути к различным каталогов и файлов. В операционных системах UNIX и Windows применяются различные разделители каталогов. В UNIX используется прямая косая черта (/) в Windows - обратная (\). В некоторых директивах Apache и РНР работают оба вида разделителей каталогов. Но поскольку Apache и РНР изначально разрабатывались под UNIX, то, применяя их "родной" формат, вы сможете избежать ряда проблем. Поэтому пути в конфигурационных файлах "httpd.conf " и "php.ini " рекомендуется писать через слеш в формате UNIX - "/".

К примеру:
ScriptAlias "/php_dir/" "c:/php/" Директивы файла httpd.conf :

Port - задает порт TCP, который используется Apache для установления соединения. По умолчанию указывается порт 80. Также порт можно указать в директиве ServerName .
Port 80 Единственная причина установления нестандартного порта - это отсутствие прав на использование стандартного порта. При использовании нестандартного порта, например, 8080, номер порта следует указывать в адресе "http://localhost:8080/ ".

ServerAdmin - содержит заданный адрес электронной почты администратора Web-сервера. Именно этот адрес будет отображаться при ошибках работы сервера.
ServerAdmin [email protected] ServerName - содержит заданное имя компьютера для сервера.
ServerName localhost:80 ServerRoot - указывает на каталог, содержащий файлы Web-сервера Apache.
ServerRoot "C:/web_server/apache" DocumentRoot - определяет каталог, в котором расположены файлы Web-сайта.
DocumentRoot "C:/web_server/apache/htdocs" Контейнер

Сфера действия директив внутри этого контейнера распространяется на все файлы и подкаталоги внутри каталога, заданного в директиве DocumentRoot .

Options FollowSymLinks Includes Indexes
AllowOverride All
Директива AllowOverride установлена ​​в значение ALL , позволяет переопределять значение главного конфигурационного файла "httpd.conf " в файлах ".htaccess ".

Директива Options FollowSymLinks позволяет Apache следовать символическим ссылке.

Директива Options Includes позволяет выполнение директив SSI (Server Side Includes, включения на стороне сервера) в коде страниц Web-сайта.

Директива Options indexes указывает, что нужно возвращать содержимое каталога, если отсутствует индексный файл.

DirectoryIndex - содержит заданный список индексных файлов, которые следует отображать при обращении в каталог без указания имени файла.
DirectoryIndex index.html index.htm index.php Директива ScriptAlias ​​используется для создания псевдонима каталога "/cgi-bin/ ", в котором располагаются программы и сценарии CGI.
ScriptAlias /cgi-bin/ "C:/web_server/apache/cgi-bin/" Далее необходимо настроить права и ограничения на каталог cgi-bin .

AllowOverride None
Options ExecCGI
Order allow, deny
Allow from all
Данное действие необходимо для гарантии, что опции каталога не будут изменены, так как это может создать проблемы безопасности.

Директива AllowOverride None говорит о том, что опции этого каталога не могут быть переопределены файлами ".htaccess ".

Директива Options ExecCGI позволяет выполнение CGI-сценариев.

Директивы order allow , deny и Allow from all разрешают доступ к каталогу.

AddHandler - заставляет Apache рассматривать файлы с расширениями "ехе " и "bat ", как CGI - скрипты.
AddHandler cgi-script .bat .exe DefaultType устанавливает заголовок файлов, тип которых не может быть определен по расширению. В данном случае все неизвестные файлы воспринимаются как обычные текстовые файлы. Для того чтобы все неизвестные расширения файлов обрабатывать, как HTML, измените директиву следующим образом:
DefaultType text/html AddDefaultCharset - устанавливает кодировку по умолчанию, если кодировка не задана в заголовке HTML-документа.
AddDefaultCharset windows-1251

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

Собственный HTTP: Apache, PHP, MySQL

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

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

Считается, что сервера Apache обслуживают более 50 % всех активных веб-ресурсов, остальная доля приходится на подобные изделия от Microsoft, Sun и др. Собственно, физический сервер и его операционная система могут быть любыми. HTTP-сервер ставится на готовую платформу и работает параллельно с другими приложениями на ней. Apache считается родным для всего семейства линуксоидов, но в каждом конкретном случае у него есть особенности.

Бесплатность, простота, надежность отличают линукс-системы и их приложения. Не важно, что использовать: установка и настройка Apache на Ubuntu не намного отличается от CentOs, Debian или FreeBSD. Часто играет роль насыщенность той или иной операционной системы дополнительным программным обеспечением.

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

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

Смещение приоритетов локальной разработки

Трудно оценить роль глобальной сети в развитии программирования, но легко заметить реальное смещение центра тяжести: локальные приложения стало принято исполнять как веб-ресурс. Просто написать программу для локального компьютера - это драйвера, антивирусы, небольшие проекты с простым функционалом. Язык программирования... VBA, хотя можно применить C/C++ или C#.

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

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

При этом локальное может быть распределенным: офисы компании могут находиться где угодно, но это не Интернет, а распределенная локальная сеть компании.

MySQL, PHP, Apache настройка в локальной форме:

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

Если учесть, что MySQL и Apache в среде Windows - это службы, а PHP-код - это обычный текст, обрабатываемый инструментом (интерпретатор PHP), вызываемым в нужный момент времени HTTP-сервером, то уровень изменяемости, мобильности и переносимости кода будет значительно выше, чем у локальных инструментов разработки.

Подготовка к инсталляции Apache

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

Прежде всего нужно скачать последнюю версию сервера (сегодня это версия 2.4.33 от 17.03.2018) с официального сайта в формате zip-архива. Следует иметь в виду изначально, что версии серверов многочисленны и предлагаются на множестве сторонних ресурсов, поэтому важно выбрать официальную реализацию, размещенную на веб-ресурсе, вызывающем доверие.

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

Редактирование файла конфигурации

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

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

Для успешного запуска сервера достаточно внести правку только в одну строку (по порядку - 38-ю) - и настройка Apache завершена.

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

Процедура размещения сервера

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

Скачанный официальный zip-архив Apache нужно развернуть в выбранном месте, разместив раздельно инструмент и работу. В данном примере папка C:\SCiA - это инструмент (Apache24, PHP, MySQL, ...), а папка SCiB - это работа, собственно, сайтов, которые создаются, сопровождаются или модернизируются.

В результате первого этапа работы в папку C:\SCiA\Apache24 попадают только подпапки bin, cgi-bin, conf, error, ... со всем их содержимым.

Редактирование файла hosts

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

Базовый IP - 127.0.0.1 обычно всегда указывает на localhost. Рабочий файл hosts находится по адресу c:\Windows\System32\drivers\etc и выглядит так, как показано ниже.

Чтобы поместить файл hosts в нужное место, нужно воспользоваться командной строкой в режиме администратора. Подготовить правильное содержание файла можно в любом месте файловой системы компьютера, но записать его по адресу c:\Windows\System32\drivers\etc можно только тем инструментом, который обладает правами администратора. Через командную строку это сделать проще всего.

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

Нет ничего проще. Достаточно запустить командную строку от имени администратора и перейти в папку C:\SCiA\Apache24. Поскольку это путь в системе Windows, то используются прямые слэши. В конкретном случае путь может быть иным. Но если с именем папки для размещения святой троицы - Apache, PHP и MySQL - еще можно как-то экспериментировать, то менять имена папок для каждого из них нецелесообразно.

В данном случае архив сервера развернут в папке С:/SCiA/Apache24, следовательно, нужно в папке bin написать команду:

  • httpd.exe -k install

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

Окно (1) командной строки - установка сервиса, окно (2) - список служб, в которых объявился сервер, окно (3) - исходный файл index.html, расположенный по адресу С:/SCiB/localhost/www, окно (4) - результат работы сервера.

В этом примере умышленно была допущена ошибка: вместо установки значения переменной SRVROOT были внесены многочисленные правки «по старинке»: вручную все было изменено. Это не самое лучшее решение. Прежде чем применять знания, следует ознакомиться с текущей версией продукта. Как правило, все быстро меняется, и знания следует применять «со знанием дела и пониманием текущей ситуации».

Практика развертывания zip-архива

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

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

При установке сервера важно указать:

  • где он находится;
  • где находится веб-ресурс (localhost);
  • использование ssl;
  • виртуальные хосты.

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

Джентльменские наборы

Простота развертывания zip-архива очевидна, Apache (установка и настройка) - всего два-три клика. Однако результат, когда были популярны инсталляторы, был эквивалентным. Разработчик просто тратил больше времени на разработку очередной версии своего продукта. Установка сервера, серверного языка и базы данных - это, по сути, просто наборы файлов, запуск сервисов, файл hosts и пути по умолчанию в переменной операционной системы path.

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

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

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

Несколько сайтов - один сервер

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

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

Один сервер может поддерживать сколько угодно веб-ресурсов, для этого нужно в файле httpd.conf снять комментарий со строки 501:

  • # Include conf/extra/httpd-vhosts.conf

и описать все необходимые хосты в файле

  • extra\httpd-vhosts.conf.

Может потребоваться уточнить, какие порты и IP слушает сервер, но это отдельная тема, на первое время можно ограничиться тем, что есть.

Следует отметить, что в примере для удобства описания реальных виртуальных веб-ресурсов (а их много) введена переменная (DOCROOT) с путем к общей папке всех веб-ресурсов, доступных через установленный сервер.

Настройка Apache SSL доступна аналогичным образом. В файле httpd.conf нужно просто оставить «как есть» строки с 524 по 531, которые отвечают за работу SSL.

Простота и сложность Apache

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

Три простых действия:

  • развернуть архив;
  • изменить файл конфигурации;
  • инсталлировать сервер.

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

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

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

Профессиональная среда разработчика

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

Эта логика предполагает наличие хотя бы одного сервера в сети на платформе CentOS, Ubuntu, FreeBSD, рабочих станций на Windows. Оптимально иметь два Linux-сервера (основной и вспомогательный), настройку Apache для локального компьютера в среде Windows. В случае вирусной атаки или непредвиденной ситуации вспомогательный сервер станет на замену основному, а основной - на ремонт и восстановление. Заменить локальную установку Apache на рабочей станции (под Windows) можно из архива.

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

Apache – самый популярный веб-сервер в сети Интернет, который обслуживает больше половины активных сайтов.

В этой статье мы рассмотрим общие конфигурационные файлы и основные параметры Apache в системе Ubuntu/Debian

Примечание : Файлы Apache отличаются в зависимости от дистрибутива, потому эта статья не подходит пользователям RHEL.

Установка Apache в Ubuntu/Debian

Если веб-сервер Apache ещё не установлен, используйте команды:

sudo apt-get update
sudo apt-get install apache2

Чтобы убедиться, что установка прошла успешно, откройте в браузере IP-адрес своего сервера. На экране должна появиться приветственная страница Apache:

It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.

Иерархия файлов Apache

В Ubuntu и Debian Apache хранит конфигурационные файлы в папке /etc/apache2.

cd /etc/apache2
ls -F
apache2.conf envvars magic mods-enabled/ sites-available/
conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/

Эта папка содержит ряд простых текстовых файлов и подкаталогов. Наиболее важные из них:

  • apache2.conf: главный конфигурационный файл сервера. В нём можно выполнить почти все конфигурации.
  • ports.conf: этот файл задаёт порты, которые прослушиваются виртуальными хостами. Проверьте этот файл при настройке SSL.
  • conf.d/: этот каталог управляет отдельными аспектами конфигурации Apache. К примеру, с его помощью часто определяется конфигурация SSL и стандартная политика безопасности.
  • sites-available/: этот каталог хранит все доступные виртуальные хосты, которые определяют, какой контент будет обслуживаться на сайте. Эти хосты не активны.
  • sites-enabled/: этот каталог определяет активные виртуальные хосты. Как правило, он содержит символические ссылки на файлы, определенные в каталоге sites-available.
  • mods-/: эти каталоги работают по тому же принципу, что и sites-available и sites-enabled. Они хранят модули.

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

Конфигурационный файл Apache

Основные настройки Apache хранятся в /etc/apache2/apache2.conf.

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

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

В конце файла вы найдёте множество настроек Include. Они определяют модули, добавляют документ ports.conf, определённые файлы из каталога conf.d/ и настройки виртуальных хостов из каталога sites-enabled/.

Сосредоточимся на глобальных настройках веб-сервера Apache.

Глобальные настройки Apache

Данный раздел рассматривает важные параметры глобальных настроек Apache.

Timeout

По умолчанию этот параметр имеет значение 300. Это значит, что на выполнение каждого запроса у сервера есть максимум 300 секунд. В большинстве случаев это значение очень большое, и его рекомендуют уменьшить до 30-60 секунд.

KeepAlive

Если этот параметр имеет значение On, сервер позволит клиенту запрашивать несколько объектов в рамках одного соединения. Если параметр имеет значение Off, то каждый новый запрос будет создавать индивидуальное соединение. Такое поведение может привести к перенагрузке сайта с большим трафиком.

MaxKeepAliveRequests

Этот параметр позволяет определить максимальное количество запросов для одного соединения. Это позволяет увеличить производительность Apache.

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

KeepAliveTimeout

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

Настройки MPM

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

apache2 -l
Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
prefork.c
http_core.c
mod_so.c

Как видите, в данном случае веб-сервер скомпилирован с модулем prefork.c и файлом apache2.conf.

Конфигурации виртуальных хостов

Стандартный виртуальный хост находится в файле default в каталоге sites-available.

Чтобы ознакомиться с общим форматом виртуального хоста, откройте этот файл:

sudo nano /etc/apache2/sites-available/default

ServerAdmin webmaster@localhost
DocumentRoot /var/www

Options FollowSymLinks
AllowOverride None


Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

. . .

По умолчанию виртуальный хост обрабатывает запросы на порте 80.

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

Настройки виртуального хоста высшего уровня

Эти параметры устанавливаются в разделе Virtual Host и применяются ко всему виртуальному хосту.

Параметр ServerAdmin указывает контактный адрес электронной почты, который будет использоваться в случае возникновения проблем на сервере. Этот адрес можно вставить на страницу ошибки. Для этого параметр ServerSignature (в файле /etc/apache2/conf.d/security) должен иметь значение Email.

Директива ServerName задаёт доменное имя или IP-адрес сервера. Это индивидуальный параметр каждого виртуального хоста, который может переопределить настройки по умолчанию, если он совпадает со значением ServerName.

Параметр ServerAlias позволяет добавить алиасы сайта – альтернативные имена и пути, ведущие к одному контенту. Так, например, часто устанавливается алиас домена с www.

DocumentRoot задаёт каталог, в котором веб-сервер хранит контент данного виртуального хоста. В Ubuntu для этого по умолчанию используется /var/www.

Настройки каталогов

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

Сначала виртуальный хост предлагает набор правил для каталога / (root-каталог). Этот раздел обеспечит базовую конфигурацию виртуального хоста, поскольку он относится ко всем файлам, которые обслуживаются в файловой системе.

По умолчанию Ubuntu не накладывает никаких ограничений на файловую систему. Apache рекомендует добавить несколько стандартных ограничений доступа, например:


Options FollowSymLinks
AllowOverride None
Order Deny,Allow
Deny from All

Это заблокирует доступ ко всему контенту, если в последующих определениях каталогов не указано иное.

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

Настройки Alias и ScriptAlias

Иногда перед разделом Directory идут параметры Alias и ScriptAlias.

Директива Alias позволяет добавлять к обслуживаемому контенту каталоги вне DocumentRoot.

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

К примеру, такая строка в виртуальном хосте для сайта example.com откроет доступ к контенту в каталоге /path/to/content/ при запросе example.com/content/.

Alias /content/ /path/to/content/

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

Включение сайтов и модулей в Apache

Создав файл виртуального хоста, вы можете включить его. Для этого нужно создать символическую ссылку на файл в каталоге sites-enabled:

sudo a2ensite файл_виртуального_хоста

Включив сайт, перезапустите Apache, чтобы веб-сервер перечитал конфигурации:

sudo service apache2 reload

Чтобы отключить виртуальный хост, нужно удалить символьную ссылку из sites-enabled:

sudo a2dissite файл_виртуального_хоста

После этого нужно снова перезапустить веб-сервер:

sudo service apache2 reload

Включить и отключить модуль Apache можно с помощью следующих команд (соответственно):

a2enmod
a2dismod

Они работают так же, как и ранее упомянутые команды a2ensite иa2dissite. После включения или отключения модуля нужно перезапускать веб-сервер.

Заключение

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

Если вам нужна дополнительная информация о веб-сервере, обратитесь к

Apache HTTP Server, это - сложный программный продукт, работающий на разных платформах и в разных операционных системах по всему миру. Поэтому для корректной работы на установленной системе его необходимо настроить (сконфигурировать).
По умолчанию настройки Apache расположены в файле httpd.conf в каталоге conf. Далее будут описаны основные директивы файла httpd.conf и их общеупотребительные значения.

Редактирование файла httpd.conf

1. Для загрузки модуля mod_rewrite найдите и раскомментируйте (уберите в начале строки символ "#") данную строку:
LoadModule rewrite_module modules/mod_rewrite.so
2. Для загрузки PHP интерпретатора, в конец блока загрузки модулей необходимо добавить строку:
LoadModule php5_module "C:/php/php5apache2_2.dll"
3. Определите каталог содержащий конфигурационный файл PHP, добавив ниже следующую строку:
PHPIniDir "C:/php"
4. Найдите и раскомментируйте строку:
ServerName localhost:80
5. Найдите строку:
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
Назначьте корневую директорию управления сайтами (немного раньше вы ее уже создали):
DocumentRoot "C:/apache"
6. Найдите данный блок:

Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all

И замените его на нижеследующий:

Options Includes Indexes FollowSymLinks
AllowOverride All
Allow from all

7. Удалите или закомментируйте первоначальный блок управления директориями (он нам не понадобится), который без комментариев выглядит примерно так:

Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

8. Найдите блок:

DirectoryIndex index.html

Замените его на:

DirectoryIndex index.html index.htm index.shtml index.php

9. Найдите строку:
ErrorLog "logs/error.log"
Замените на нижеследующую (в этом случае просматривать глобальный файл ошибок сервера будет удобнее):
ErrorLog "C:/apache/error.log"
10. Найдите строку:
CustomLog "logs/access.log" common
Замените на:
CustomLog "C:/apache/access.log" common
11. Для работы SSI (включения на стороне сервера) следующие строки, находящийся в блоке , необходимо найти и раскомментировать:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
12. Добавьте ниже, в тот же блок , две строки:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
13. И, наконец, найдите и раскомментируйте строки:
Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-manual.conf
Include conf/extra/httpd-default.conf
Сохраните изменения и закройте файл "httpd.conf"

Теперь откройте файл "httpd-vhosts.conf" находящийся в директории "conf\extra", и произведите в нём следующие изменения:

Существующие блоки примеров виртуальных хостов необходимо закомментировать, либо удалить, и вставить нижеследующее:

DocumentRoot "C:/apache/localhost/www"
ServerName localhost
ErrorLog "C:/apache/localhost/error.log"
CustomLog "C:/apache/localhost/access.log" common

Пример создания виртуального хоста

При необходимости установки собственных виртуальных хостов сделайте следующее:

Откройте файл "httpd-vhosts.conf", и создайте в нём блок, примерно, следующего содержания:

# Папка, в которой будет корень вашего хоста.
DocumentRoot "C:/apache/test.ru/www"
# Домен по которому вы сможете обращаться к виртуальному хосту.
ServerName test.ru
# Алиас (добавочное имя) домена.
ServerAlias www.test.ru
# Файл, в который будут записываться ошибки.
ErrorLog "C:/apache/test.ru/error.log"
# Файл журнала доступа к хосту.
CustomLog "C:/apache/test.ru/access.log" common

Затем в каталоге "apache", создайте папку "test.ru" (прямо так, с точкой), в которой, в свою очередь, создайте папку "www".

Следующий шаг создания виртуального хоста – это изменение файла C:\WINDOWS\system32\drivers\etc\hosts операционной системы. Откройте данный файл и добавьте в него две строки:
127.0.0.1 test.ru
127.0.0.1 www.test.ru

Теперь перезапустите сервер Apache ярлыком "Restart", находящимся в меню "Start", откройте браузер, введите в адресной строке test.ru или www.test.ru и вы окажетесь в своем виртуальном хосте. Только будьте внимательны, теперь вы сможете попасть на оригинальный сайт с именем виртуального хоста (www.test.ru если таковой существует), только закомментировав либо удалив строку: 127.0.0.1 www.test.ru, в вышеупомянутом файле "hosts".

Документация Apache, при запущенном сервере, доступна по адресу http://localhost/manual/

Установка и настройка веб-сервера Apache – завершена.

Создание пакетных файлов для запуска и остановки сервисов

Согласитесь, что вручную редактировать файл "hosts" при каждом запуске сервисов – это не удобно, поэтому для более удобного, одновременного запуска сервисов Apache, MySQL, и изменения файла "hosts" мы создадим два пакетных файла: на запуск и остановку, которые будут выполнять всю рутинную работу автоматически.

При использовании виртуальных хостов необходимо создать в директории C:\apache два файла: vhosts-off.txt – содержащий изначальное содержимое файла "hosts" и vhosts-on.txt – содержащий все виртуальные хосты. Обратите внимание, что при создании новых виртуальных хостов вам необходимо будет добавлять их в файл vhosts-on.txt, а не в C:\WINDOWS\system32\drivers\etc\hosts. Посмотрите на примеры ниже.

Файл vhosts-off.txt (может содержать одну единственную строку):
127.0.0.1 localhost

Пример файла vhosts-on.txt с виртуальными хостами www.test.ru и test.ru:

127.0.0.1 localhost
127.0.0.1 www.test.ru
127.0.0.1 test.ru

В той же директории C:\apache, создайте два пакетных файла: start-webserver.bat – для запуска сервисов и подмены файла "hosts", и stop-webserver.bat – для остановки сервисов и очистки файла "hosts".

Файл запуска start-webserver.bat:

@echo off
echo.
if not exist C:\apache\vhosts-on.txt goto no_vhosts
echo Create virtual hosts:
copy /v /y C:\apache\vhosts-on.txt C:\WINDOWS\system32\drivers\etc\hosts
echo.
:no_vhosts
NET start Apache2.2
NET start MySQL

Файл остановки stop-webserver.bat:

@echo off
echo.
if not exist C:\apache\vhosts-off.txt goto no_vhosts
echo Restore hosts file:
copy /v /y C:\apache\vhosts-off.txt C:\WINDOWS\system32\drivers\etc\hosts
echo.
:no_vhosts
NET stop Apache2.2
NET stop MySQL

В случае если вы не используете виртуальные хосты или хотите запустить сервисы без подмены файла "hosts", просто уберите из директории C:\apache файлы vhosts-on.txt и vhosts-off.txt.