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.
Раньше в нашей серии по основам Linux мы рассматривали основы работы с веб-сервером Apache. Он является самым широко используемым в мире веб-сервером в Интернете (по состоянию на июль 2015 года, доля Apache составляла 38%, IIS - занимал 26%, а Nginx - 15%). Поэтому чем больше вы о нем знаете и понимаете как он работает, тем больших успехов вы достигнете при его взломе.
Сегодня мы рассмотрим основы настройки сервера Apache. Как мы писали раньше, конфигурирование и настройка почти всех приложений в Linux или Unix осуществляется через конфигурационные файлы, которые представляют собой обычный текст. Apache здесь не является исключением. Поэтому в этой статье мы сосредоточимся на конфигурационном файле apache2.conf, который находится в директории /etc/apache2.
Давайте начнем с того, что запустим Apache2. Сделаем это через графическую оболочку окружения Kali, перейдя в Applications -> Kali Linux -> System Services -> HTTP -> apache2 start, как показано на скриншоте ниже.
Или запустите его через командную строку, набрав в терминале следующую команду
Kali >service apache2 start
Это запускает демон Apache2, и с этого момента веб-сервер должен обрабатывать наш контент в Интернете.
Чтобы проверить, работает ли наш сервер Apache, давайте просто перейдем в браузере по localhost или 127.0.0.1. Если вы видите страницу как на скриншоте ниже, то это означает, что сервер работает нормально!
Чтобы настроить Apache, нам нужно перейти в директорию /etc/apache2.
Kali > cd /etc/apache2
Выведем на экран список всех файлов в этой директории:
Kali > ls -l
Как видите, в этой директории есть несколько файлов и поддиректорий. Сейчас нас интересует только файл apache2.conf, но обратите внимание, что у нас есть файл ports.conf и папка sites_available, которые нам понадобятся чуть позже, также здесь есть несколько других файлов конфигурации и папок.
Мы можем открыть apache2.conf в любом текстовом редакторе, но здесь мы будем использовать Leafpad. Файл можно открыть, просто набрав в консоли:
Kali > leafpad /etc/apache2/apache2.conf
Как видите, эта команда открывает текстовый файл со всей информацией о конфигурации нашего веб-сервера Apache. Чтобы настроить сервер, мы сейчас попытаемся ознакомить вас со всеми ключевыми моментами этого файла.
Давайте прокрутимся вниз, пропустив все комментарии, и найдем строку #70, где начинается раздел глобальных настроек. Здесь мы видим настройки ServerRoot. Это вершина дерева директорий, в которой сервер Apache хранит все связанные с работой сервера файлы. Строка #84 определяет ServerRoot. Мы можем просто раскомментировать эту строку, если хотим установить /etc/apache2 в качестве ServerRoot. Мы рекомендуем вам это сделать.
В следующем разделе у нас располагаются переменные, которые определяют значения параметров: Timeout, KeepAlive, MaxKeepAliveRequests и KeepAliveTimeout.
Мы предлагаем вам оставить все значения по умолчанию, кроме параметра «Timeout». Каждая ситуация отличается, и вам может потребоваться изменить эти значения по умолчанию для того, чтобы адаптировать производительность сервера к конкретной среде.
Давайте опять прокрутим вниз несколько строк в файле apache2.conf, пока не дойдем до строки #177. Здесь мы можем установить пользователя и группы Apache2. Обратите внимание на комментарий к строке #177. Там указано, что мы можем установить эти переменные в файле envvars (переменные окружения). Оставим этот вопрос для будущих статей, но пока просто имейте в виду, что и User (пользователь) и Group (группа) являются переменными, значения которых берутся из файла /etc/apache2/envvars.
И, наконец, последний раздел, имеющий огромное значение для безопасности Apache, начинается со строки #193. Этот раздел дает гарантии, что веб-клиенты не смогут получить доступ к файлам.htaccess и.htpasswd.
В следующем разделе описано, как Apache управляет логами (журналами).
В первом подразделе мы обращаемся к параметру HostNameLookups. Эта директива сообщает Apache2, должен ли он выполнять поиск DNS, когда он записывает в лог установленное соединение. Со значением по умолчанию «Off» (выключено) Apache2 работает намного лучше.
Теперь посмотрим на директорию site_available (доступные сайты) и, самое главное, на тот файл, который находится в ней по умолчанию. Его часто называют файлом виртуальных хостов (Virtual Hosts) по умолчанию. Откройте этот файл, набрав в консоли:
Kali > leafpad /etc/apache2/site_available/default
Как видите, в этом файле есть три критических области. Первая строка определяет, какой порт слушает веб-сервер. Здесь определено, что он слушает любой интерфейс на 80-м порту (*: 80). Вторая строка определяет адрес электронной почты, на который нужно слать уведомления в случае возникновения проблем с сервером. По умолчанию там стоит адрес Если вы являетесь системным администратором, то здесь вы можете указать ваш адрес электронной почты. Третий элемент может быть самым важным - DocumentRoot. Он определяет, где будет размещаться контент для этого виртуального хоста, значением по умолчанию является директория /var/www. Мы предлагаем вам оставить все в том виде, в котором это было определено разработчиками.
Наконец, мы можем перейти в файле apache2.conf еще ниже до строки #248 — «include port.conf». Эта директива просто сообщает Apache о необходимости перейти в файл port.conf, чтобы найти те порты, которые он должен прослушивать.
Apache – это веб-сервер.
По умолчанию все конфигурационные файлы хранятся в папке " conf ".
httpd.conf – это основной конфигурационный файл сервера apache. Для вступления в силу изменений, внесённых в этот файл, требуется перезапуск сервера apache.
В папке " extra " (внутри папки " conf ") находятся дополнительные конфигурационные файлы . При необходимости их можно подключить внутри основного конфигурационного файла.
На одной строке должна быть расположена только одна директива. Символ \ (обратный слэш) может быть использован в качестве последнего символа строки, чтобы указать, что директива продолжается на следующей строке. После символа \ не должно быть никаких других пробельных символов, кроме символа конца строки.
Директива и её аргументы разделяются пробелом. Сами аргументы также разделяются пробелами. Если аргумент содержит пробелы, его необходимо заключить в кавычки.
Директивы не чувствительны к регистру символов, а вот аргументы наоборот – чувствительны.
Строка, которая начинается с символа # (решётка), считается комментарием и игнорируется. Комментарий не может быть расположен на одной строке с директивой.
Пробельные символы, вставленные до директивы, игнорируются, поэтому их можно использовать для вставки отступов, чтобы было удобнее читать код. Пустые строки так же игнорируются.
Модуль – это просто подключаемый файл, который позволяет добавить дополнительный функционал. Все подключаемые модули по умолчанию располагаются в папке " modules ".
Модули позволяют использовать директивы, которые не входят в состав ядра веб-сервера Apache.
Htaccess – это файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Он позволяет настраивать функционал для отдельных каталогов, без изменения основного конфигурационного файла, так как доступ к нему чаще всего запрещён.
Файл.htaccess действует только на каталог, в котором располагается, и на его дочерние каталоги. Файл.htaccess может быть размещён в любом каталоге. Директивы этого файла действуют на все файлы в текущем каталоге и во всех его подкаталогах (если эти директивы не переопределены директивами нижележащих файлов.htaccess).
Изменения, вносимые в файл.htaccess, не требуют перезапуска сервера.
Если в файле.htaccess была допущена какая-либо ошибка, например неправильно написана директива или значение директивы, то сервер вернёт ошибку: Error 500 .
Файл.htaccess использует тот же синтаксис, что и конфигурационные файлы Apache.
Посмотреть, какие директивы могут располагаться внутри файла.htaccess можно в справочнике директив в "Контексте" конкретной директивы.
Apache - это целое семейство различных проектов, первым из которых был Web-сервер. Web-сервер представлен демоном httpd, поэтому проект Apache по разработке Web-сервера называется httpd.
Конфигурационные файлы Web-сервера httpd в GNU/Linux в различных дист- рибутивах размещаются в разных каталогах: /etc/httpd/conf/, или /etc/apache2, или ином. Главный конфигурационный файл называется httpd.conf, причем часто выделенные для каких-либо групп настроек индивидуальные конфигура- ционные файлы подключаются к httpd.conf с помощью директивы include.
В целом, настройки httpd можно разделить на три основные категории:
r секция глобальных настроек;
r настройки для главного сервера;
r настройки для виртуальных узлов.
Кроме этих секций можно выделить настройки для обработки заданных ти- пов файлов, MIME-расширений и спецификаций обработки национальных языков.
К глобальным настройкам сервера относятся те из них, которые влияют на работу сервера Apache в целом. Далее приводятся основные глобальные настройки:
r ServerRoot - базовый каталог установки, относительно которого в фай- ловой системе GNU/Linux размещаются конфигурационные файлы Apache, а также некоторые файлы, необходимые в его работе;
r PidFile - файл, в который при запуске сервера Apache заносится PID
главного процесса сервера;
r LoadModule - команда загрузить модуль расширения Apache, скомпили- рованный в виде разделяемой библиотеки;
r Timeout - количество секунд перед посылкой сигнала о потере соединения;
r KeepAlive - разрешение или запрет поддержки долгоживущих соедине- ний, доступных в рамках протокола HTTP/1.1, позволяющих оставлять со- единение в неразорванном состоянии после отправки сервером требуемой информации;
r KeepAliveTimeOut - количество секунд ожидания следующего запроса, по прошествии которого долгоживущее соединение будет разорвано;
r MaxKeepAliveRequests - максимально возможное количество запросов, разрешенное для долгоживущих соединений;
r StartServers - количество дочерних процессов httpd, которые стартуют при запуске сервера Apache;
r MinSpareServers - минимальное количество ждущих соединения дочер- них процессов httpd (при появлении соединений запускается столько ко- пий httpd, чтобы количество ожидающих соединения дочерних процессов было не меньше этой величины);
r MaxSpareServers - максимальное количество ждущих соединения до- черних процессов httpd (лишние процессы останавливаются);
r MaxClients - ограничение на максимальное количество дочерних про- цессов httpd, определяющее возможное количество соединений;
r MaxRequestsPerChild - максимальное количество запросов, которое раз- решено обслуживать одному дочернему процессу httpd, при достижении которого он гарантированно останавливается для исключения возможных утечек памяти.
ServerRoot "/etc/httpd" PidFile run/httpd.pid Timeout 120
KeepAlive Off MaxKeepAliveRequests 100
KeepAliveTimeout 15
StartServers | |
MinSpareServers | |
MaxSpareServers | |
ServerLimit | |
MaxClients |
MaxRequestsPerChild 4000
Listen 80
LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_alias_module modules/mod_authn_alias.so LoadModule authn_anon_module modules/mod_authn_anon.so
User apache Group apache
Следует отметить, что модули могут быть не только подключены с помощью директивы LoadModule, но и установлены непосредственно в код Apache на стадии его компиляции и сборки. Для определения, какие модули были уста- новлены в код на стадии компиляции, выполните команду httpd –l (при- мер 28.2).
$ /usr/sbin/httpd -l Compiled in modules:
core.c prefork.c http_core.c mod_so.c
Обратите внимание на модуль prefork.c - это один из нескольких различ- ных модулей MPM (Multi-Processing Modules), имеющихся для Apache v2. Эти модули ориентированы на разные операционные системы или на раз- личные модели многозадачной обработки. Например, модуль prefork.c ори- ентирован на традиционную для UNIX модель порождения дочерних про- цессов, а worker.c - на работу с потоками.
Среди настроек главного сервера наиболее важны следующие:
r Listen - заставляет Apache слушать только указанный порт;
r User - пользователь, от имени которого будут запущены процессы httpd;
r Group - группа, от имени которой будут запущены дочерние процессы
r DocumentRoot - каталог размещения файлов Web-сайта;
r UserDir - имя каталога для размещения личных Web-страниц пользова- телей;
r DirectoryIndex - список имен файлов, который будет просмотрен при попытке доступа к корневому документу каталога;
r AccessFileName - имя файла, содержащего директивы управлением до- ступом к каталогу;
r TypesConfig - задает местонахождение файла конфигурации MIME;
r DefaultType - задает MIME-тип документа по умолчанию;
r MimeMagicFile - задает местонахождение файла магических чисел для определения MIME-типа документа;
r HostnameLookups - задает тип занесения информации о запросах клиен- тов либо по IP-адресу, либо по имени узла;
r ErrorLog - файл журнала, в который будут записываться любые ошибки
(сообщения), встретившиеся в процессе работы Apache;
r LogLevel - уровень информативности журналирования;
r LogFormat - директива, определяющая формат вывода информации в жур- нал;
r CustomLog - указывает местонахождение файла журнала;
r ServerSignature - разрешает выводить в страницах, сгенерированных сервером Apache, информацию о версии, виртуальном узле и т. п.;
r Alias - устанавливает псевдонимы для путей доступа к каталогам серве- ра (длина строки псевдонима меньше, чем длина строки пути доступа);
r ScriptAlias - делает то же, что и Alias, но для каталогов с CGI-
сценариями;
r IndexOptions - определяет тип индексирования каталогов;
r AddIcon - указывает файл значка для отображения в конкретных ситуа- циях, например, при выводе страницы с содержимым каталога разным ти- пам файлов сопоставляются разные значки;
r AddIconByEncoding - задает значки для конкретных MIME-кодировок;
r AddIconByType - задает значки для определенных MIME-видов документов;
r DefaultIcon - значок по умолчанию;
r AddDescription - добавляет строку комментария к определенным типам документов (например, .gz - gzipped document);
r ReadmeName - задает имя файла README, добавляемого в конец списка файлов в каталоге (directory index);
r HeaderName - задает имя файла HEADER, добавляемого в начало списка файлов в каталоге (directory index);
r IndexIgnore - имена файлов, которые будут игнорироваться при индек- сации;
r AddEncoding - позволяет браузерам заданным образом обрабатывать ин- формацию на лету (например, отображать содержимое сжатых gzip- файлов);
r AddLanguage - отображает заданные расширения имен файлов на опреде- ленный язык документа (например, AddLanguage ru .ru);
r AddCharset - задает отображение определенного расширения имен фай- лов на конкретную кодировку;
r LanguagePriority - порядок следования языков;
r AddType - задает отображение расширения имен файлов на тип MIME;
r AddHandler - задает тип обработки по расширению имен файлов;
r ErrorDocument - позволяет настраивать сообщения об ошибках;
r BrowserMatch - задает особенности вывода информации для браузеров.
В файле конфигурации httpd.conf часто встречаются условные директивы вида
Alias /doc /usr/share/doc
В этом примере установлен псевдоним doc для каталога /usr/share/doc. Одна- ко такой псевдоним будет установлен только в случае наличия модуля mod_alias.c. Имея такой псевдоним (при наличии соответствующих разреше- ний), можно будет обращаться с помощью Web-браузера к содержимому ка- талога /usr/share/doc, используя URL http://localhost/doc .
Другим видом условных директив является
Часто Apache поставляется с весьма обширной документацией в HTML- формате. Например, в дистрибутивах Fedora традиционно документация на Apache доступна после запуска Apache по URL http://localhost/manual .
Apache настраивается путем размещения директив в обычные текстовые файлы конфигурации. Основной конфигурационный файл сервера Apache - httpd.conf
.
С помощью директивы Include могут быть добавлены другие конфигурационные файлы. Любая директива может быть установлена в любом из этих файлов конфигурации.
Apache 2.4 конфигурируется файлами находящимися в подкаталоге (по умолчанию) - conf
(C:\Program Files\Apache Software Foundation\Apache2.4\conf\). Это - те же самые файлы, что и для конфигурирования на OS Unix, но есть несколько директив специально предназначенных для Windows.
Главный файл конфигурации сервера Apache HTTP 2.4 обычно называется - httpd.conf .
Он содержит директивы и параметры, управляющие работой Web-сервера, виртуальных серверов, а также всех программных модулей Apache 2.4. . Apache - модульный сервер. Это означает, что только самые основные функциональные возможности включены в основной сервер. Расширение функций, доступно при помощи динамически загружаемых модулей. Файлы конфигурации содержат одну директиву в строке. Наклонная черта влево "\" может использоваться как последний символ в строке, для указания того, что директива продолжается на следующую строку. Не должно быть никаких других символов или пробелов между наклонной чертой влево и концом строки. Директивы в файлах конфигурации нечувствительны к регистру, но аргументы директив - часто чувствительны. Строки, которые начинаются с символа "#", считают комментариями, и игнорируется. Комментарии не могут быть включены в строку после директивы конфигурации. Пустые строки и пробелы, перед директивой игнорируются.
Директива
- команда конфигурации, которая контролирует один или несколько аспектов поведения сервера Apache.
Директивы, размещенные в основных файлах конфигурации, относятся ко всему серверу
.
Для проверки файлов конфигурации на синтаксические ошибки, используется команда httpd.exe -t .
При установке Apache 2.4 были введены:
В Network Domain (Сетевой Домен) - server-apache24.ru
в Server Name (Имя сервера) - www.server-apache24.ru
в Administrator"s Email Adress (Почтовый Адрес Администратора) - [email protected]
Следовательно, server-apache24.ru - будет именем главного сайта сервера Apache.
Главный сайт сервера Apache конфигурируется в файле - httpd.conf .
Внесение изменений в файл конфигурации сервера Apache - httpd.conf
Для обращения к главному сайту сервера Apache по доменному имени - server-apache24.ru , создайте на диске каталог - C:\server-apache24.ru
server-apache24.ru
каталог server-apache24.ru
В корне диска C:
нужно создать каталог server-apache24.ru
В нём обязательно
должны быть папки:
logs
с "пустыми" файлами access.log
и error.log
и
www
с файлом index.html
См. в файле httpd.conf строки -
209 ServerAdmin [email protected]
218 ServerName www.server-apache24.ru:80
243 DocumentRoot "C:/server-apache24.ru/www"
245
httpd.conf - конфигурирование сервера Apache 2.4
httpd.conf
.
Действие директив главного файла конфигурации распространяется на весь сервер
Все записи, за исключением выделенных красным цветом, должны быть закомментированы. Строки начинающиеся с символа "#" - это комментарии.
# # This is the main Apache HTTP server configuration file. It contains the # configuration directives that give the server its instructions. # See for detailed information. # In particular, see # # for a discussion of each configuration directive. # # Do NOT simply read the instructions in here without understanding # what they do. They"re here only as hints or reminders. If you are unsure # consult the online docs. You have been warned. # # Configuration and logfile names: If the filenames you specify for many # of the server"s control files begin with "/" (or "drive:/" for Win32), the # server will use that explicit path. If the filenames do *not* begin # with "/", the value of ServerRoot is prepended -- so "logs/access_log" # with ServerRoot set to "/usr/local/apache2" will be interpreted by the # server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log" # will be interpreted as "/logs/access_log". # # NOTE: Where filenames are specified, you must use forward slashes # instead of backslashes (e.g., "c:/apache" instead of "c:\apache"). # If a drive letter is omitted, the drive on which httpd.exe is located # will be used by default. It is recommended that you always supply # an explicit drive letter in absolute paths to avoid confusion. # # ServerRoot: The top of the directory tree under which the server"s # configuration, error, and log files are kept. # # Do not add a slash at the end of the directory path. If you point # ServerRoot at a non-local disk, be sure to specify a local disk on the # Mutex directive, if file-based mutexes are used. If you wish to share the # same ServerRoot for multiple httpd daemons, you will need to change at # least PidFile. # ServerRoot "C:/Program Files/Apache Software Foundation/Apache2.4" # # Mutex: Allows you to set the mutex mechanism and mutex file directory # for individual mutexes, or change the global defaults # # Uncomment and change the directory if mutexes are file-based and the default # mutex file directory is not on a local disk or is not appropriate for some # other reason. # # Mutex default:logs # # Listen: Allows you to bind Apache to specific IP addresses and/or # ports, instead of the default. See also the # directive. # # Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses. # #Listen 12.34.56.78:80 Listen 80 # # Dynamic Shared Object (DSO) Support # # To be able to use the functionality of a module which was built as a DSO you # have to place corresponding `LoadModule" lines at this location so the # directives contained in it are actually available _before_ they are used. # Statically compiled modules (those listed by `httpd -l") do not need # to be loaded here. # # Example: # LoadModule foo_module modules/mod_foo.so # LoadModule access_compat_module modules/mod_access_compat.so LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule allowmethods_module modules/mod_allowmethods.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so #LoadModule auth_digest_module modules/mod_auth_digest.so #LoadModule authn_anon_module modules/mod_authn_anon.so LoadModule authn_core_module modules/mod_authn_core.so #LoadModule authn_dbd_module modules/mod_authn_dbd.so #LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_file_module modules/mod_authn_file.so #LoadModule authn_socache_module modules/mod_authn_socache.so #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so LoadModule authz_core_module modules/mod_authz_core.so #LoadModule authz_dbd_module modules/mod_authz_dbd.so #LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so #LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so #LoadModule buffer_module modules/mod_buffer.so #LoadModule cache_module modules/mod_cache.so #LoadModule cache_disk_module modules/mod_cache_disk.so #LoadModule cern_meta_module modules/mod_cern_meta.so LoadModule cgi_module modules/mod_cgi.so #LoadModule charset_lite_module modules/mod_charset_lite.so #LoadModule data_module modules/mod_data.so #LoadModule dav_module modules/mod_dav.so #LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule dav_lock_module modules/mod_dav_lock.so #LoadModule dbd_module modules/mod_dbd.so #LoadModule deflate_module modules/mod_deflate.so LoadModule dir_module modules/mod_dir.so #LoadModule dumpio_module modules/mod_dumpio.so LoadModule env_module modules/mod_env.so #LoadModule expires_module modules/mod_expires.so #LoadModule ext_filter_module modules/mod_ext_filter.so #LoadModule file_cache_module modules/mod_file_cache.so #LoadModule filter_module modules/mod_filter.so #LoadModule headers_module modules/mod_headers.so #LoadModule heartbeat_module modules/mod_heartbeat.so #LoadModule heartmonitor_module modules/mod_heartmonitor.so #LoadModule ident_module modules/mod_ident.so LoadModule imagemap_module modules/mod_imagemap.so LoadModule include_module modules/mod_include.so #LoadModule info_module modules/mod_info.so LoadModule isapi_module modules/mod_isapi.so #LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so #LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so #LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so #LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so #LoadModule ldap_module modules/mod_ldap.so #LoadModule logio_module modules/mod_logio.so LoadModule log_config_module modules/mod_log_config.so #LoadModule log_debug_module modules/mod_log_debug.so #LoadModule log_forensic_module modules/mod_log_forensic.so #LoadModule lua_module modules/mod_lua.so LoadModule mime_module modules/mod_mime.so #LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule negotiation_module modules/mod_negotiation.so #LoadModule proxy_module modules/mod_proxy.so #LoadModule proxy_ajp_module modules/mod_proxy_ajp.so #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so #LoadModule proxy_connect_module modules/mod_proxy_connect.so #LoadModule proxy_express_module modules/mod_proxy_express.so #LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so #LoadModule proxy_html_module modules/mod_proxy_html.so #LoadModule proxy_http_module modules/mod_proxy_http.so #LoadModule proxy_scgi_module modules/mod_proxy_scgi.so #LoadModule ratelimit_module modules/mod_ratelimit.so #LoadModule reflector_module modules/mod_reflector.so #LoadModule remoteip_module modules/mod_remoteip.so #LoadModule request_module modules/mod_request.so #LoadModule reqtimeout_module modules/mod_reqtimeout.so #LoadModule rewrite_module modules/mod_rewrite.so #LoadModule sed_module modules/mod_sed.so #LoadModule session_module modules/mod_session.so #LoadModule session_cookie_module modules/mod_session_cookie.so #LoadModule session_crypto_module modules/mod_session_crypto.so #LoadModule session_dbd_module modules/mod_session_dbd.so LoadModule setenvif_module modules/mod_setenvif.so #LoadModule slotmem_plain_module modules/mod_slotmem_plain.so #LoadModule slotmem_shm_module modules/mod_slotmem_shm.so #LoadModule socache_dbm_module modules/mod_socache_dbm.so #LoadModule socache_memcache_module modules/mod_socache_memcache.so #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so #LoadModule speling_module modules/mod_speling.so #LoadModule ssl_module modules/mod_ssl.so #LoadModule status_module modules/mod_status.so #LoadModule substitute_module modules/mod_substitute.so #LoadModule unique_id_module modules/mod_unique_id.so LoadModule userdir_module modules/mod_userdir.so #LoadModule usertrack_module modules/mod_usertrack.so #LoadModule version_module modules/mod_version.so #LoadModule vhost_alias_module modules/mod_vhost_alias.so #LoadModule watchdog_module modules/mod_watchdog.so #LoadModule xml2enc_module modules/mod_xml2enc.so # После установки PHP уберите комментарии со строк Load, Add, PHP #LoadModule php7_module "c:/php7/php7apache2_4.dll" #AddHandler application/x-httpd-php .php # configure the path to php.ini #PHPIniDir "c:/php7" # # If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch. # # User/Group: The name (or #number) of the user/group to run httpd as. # It is usually good practice to create a dedicated user and group for # running httpd, as with most system services. # User daemon Group daemon # "Main" server configuration # # The directives in this section set up the values used by the "main" # server, which responds to any requests that aren"t handled by a # definition. These values also provide defaults for # any containers you may define later in the file. # # All of these directives may appear inside containers, # in which case these default settings will be overridden for the # virtual host being defined. # # # ServerAdmin: Your address, where problems with the server should be # e-mailed. This address appears on some server-generated pages, such # as error documents. e.g. [email protected] # ServerAdmin [email protected] # # ServerName gives the name and port that the server uses to identify itself. # This can often be determined automatically, but we recommend you specify # it explicitly to prevent problems during startup. # # If your host doesn"t have a registered DNS name, enter its IP address here. # ServerName www.server-apache24.ru:80 # # Deny access to the entirety of your server"s filesystem. You must # explicitly permit access to web content directories in other # blocks below. # AllowOverride none Require all denied # # Note that from this point forward you must specifically allow # particular features to be enabled - so if something"s not working as # you might expect, make sure that you have specifically enabled it # below. # # # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # # DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.4/htdocs" было DocumentRoot "C:/server-apache24.ru/www" # было # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn"t give it to you. # # The Options directive is both complicated and important. Please see # //httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # # Options Indexes FollowSymLinks было Options Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # # AllowOverride None было AllowOverride All # # Controls who can get stuff from this server. # Require all granted AddHandler server-parsed .shtml .shtm .html .htm # # DirectoryIndex: sets the file that Apache will serve if a directory # is requested. # DirectoryIndex index.html # # The following lines prevent .htaccess and .htpasswd files from being # viewed by Web clients. # Require all denied # # ErrorLog: The location of the error log file. # If you do not specify an ErrorLog directive within a # container, error messages relating to that virtual host will be # logged here. If you *do* define an error logfile for a # container, that host"s errors will be logged there and not here. # # ErrorLog "logs/error.log" было ErrorLog c:/server-apache24.ru/logs/error.log # # LogLevel: Control the number of messages logged to the error_log. # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. # LogLevel warn # # The following directives define some format nicknames for use with # a CustomLog directive (see below). # LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common # You need to enable mod_logio.c to use %I and %O LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio # # The location and format of the access logfile (Common Logfile Format). # If you do not define any access logfiles within a # container, they will be logged here. Contrariwise, if you *do* # define per- access logfiles, transactions will be # logged therein and *not* in this file. # # CustomLog "logs/access.log" common было CustomLog c:/server-apache24.ru/logs/access.log common # # If you prefer a logfile with access, agent, and referer information # (Combined Logfile Format) you can use the following directive. # #CustomLog "logs/access.log" combined # # Redirect: Allows you to tell clients about documents that used to # exist in your server"s namespace, but do not anymore. The client # will make a new request for the document at its new location. # Example: # Redirect permanent /foo //www.server-apache24.ru/bar # # Alias: Maps web paths into filesystem paths and is used to # access content that does not live under the DocumentRoot. # Example: # Alias /webpath /full/filesystem/path # # If you include a trailing / on /webpath then the server will # require it to be present in the URL. You will also likely # need to provide a section to allow access to # the filesystem path. # # ScriptAlias: This controls which directories contain server scripts. # ScriptAliases are essentially the same as Aliases, except that # documents in the target directory are treated as applications and # run by the server when requested rather than as documents sent to the # client. The same rules about trailing "/" apply to ScriptAlias # directives as to Alias. # # ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.4/cgi-bin/" было ScriptAlias /cgi-bin/ "C:/server-apache24.ru/cgi-bin/" # # ScriptSock: On threaded servers, designate the path to the UNIX # socket used to communicate with the CGI daemon of mod_cgid. # #Scriptsock cgisock # # "C:/Program Files/Apache Software Foundation/Apache2.4/cgi-bin" should be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # # AllowOverride None Options None Require all granted # # TypesConfig points to the file containing the list of mappings from # filename extension to MIME-type. # TypesConfig conf/mime.types # # AddType allows you to add to or override the MIME configuration # file specified in TypesConfig for specific file types. # #AddType application/x-gzip .tgz # # AddEncoding allows you to have certain browsers uncompress # information on the fly. Note: Not all browsers support this. # #AddEncoding x-compress .Z #AddEncoding x-gzip .gz .tgz # # If the AddEncoding directives above are commented-out, then you # probably should define those extensions to indicate media types: # AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddType application/x-httpd-php .php # # AddHandler allows you to map certain file extensions to "handlers": # actions unrelated to filetype. These can be either built into the server # or added with the Action directive (see below) # # To use CGI scripts outside of ScriptAliased directories: # (You will also need to add "ExecCGI" to the "Options" directive.) # #AddHandler cgi-script .cgi AddHandler cgi-script .cgi .pl # For type maps (negotiated resources): #AddHandler type-map var # # Filters allow you to process content before it is sent to the client. # # To parse .shtml files for server-side includes (SSI): # (You will also need to add "Includes" to the "Options" directive.) # AddType text/html .shtml AddOutputFilter INCLUDES .shtml # # The mod_mime_magic module allows the server to use various hints from the # contents of the file itself to determine its type. The MIMEMagicFile # directive tells the module where the hint definitions are located. # #MIMEMagicFile conf/magic # # Customizable error responses come in three flavors: # 1) plain text 2) local redirects 3) external redirects # # Some examples: #ErrorDocument 500 "The server made a boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 //www.server-apache24.ru/subscription_info.html ErrorDocument 404 C:/server-apache24.ru/www/404error.html ErrorDocument 500 C:/server-apache24.ru/www/500error.html # # MaxRanges: Maximum number of Ranges in a request before # returning the entire resource, or one of the special # values "default", "none" or "unlimited". # Default setting is to accept 200 Ranges. #MaxRanges unlimited # # EnableMMAP and EnableSendfile: On systems that support it, # memory-mapping or the sendfile syscall may be used to deliver # files. This usually improves server performance, but must # be turned off when serving from networked-mounted # filesystems or if support for these functions is otherwise # broken on your system. # Defaults: EnableMMAP On, EnableSendfile Off # #EnableMMAP off #EnableSendfile on # Supplemental configuration # # The configuration files in the conf/extra/ directory can be # included to add extra features or to modify the default configuration of # the server, or you may simply copy their contents here and change as # necessary. # Server-pool management (MPM specific) #Include conf/extra/httpd-mpm.conf # Multi-language error messages Include conf/extra/httpd-multilang-errordoc.conf # Fancy directory listings Include conf/extra/httpd-autoindex.conf # Language settings Include conf/extra/httpd-languages.conf # User home directories Include conf/extra/httpd-userdir.conf # Real-time info on requests and configuration #Include conf/extra/httpd-info.conf # Virtual hosts Include conf/extra/httpd-vhosts.conf # Local access to the Apache HTTP Server Manual #Include conf/extra/httpd-manual.conf # Distributed authoring and versioning (WebDAV) #Include conf/extra/httpd-dav.conf # Various default settings Include conf/extra/httpd-default.conf # Configure mod_proxy_html to understand HTML4/XHTML1 Include conf/extra/proxy-html.conf # Secure (SSL/TLS) connections #Include conf/extra/httpd-ssl.conf # # Note: The following must must be present to support # starting without SSL on platforms with no /dev/random equivalent # but a statically compiled-in mod_ssl. # SSLRandomSeed startup builtin SSLRandomSeed connect builtin # # uncomment out the below to deal with user agents that deliberately # violate open standards by misusing DNT (DNT *must* be a specific # end-user choice) # # #BrowserMatch "MSIE 10.0;" bad_DNT # # #RequestHeader unset DNT env=bad_DNT #
Изменения
.
Команда - httpd.exe -k restart
, позволяет завершить любые выполняемые сервером Apache операции и вынуждает Apache перечитать конфигурационный файл.
Поиск и устранение ошибок при установке сервера Apache
Apache поставляется с утилитой под названием Apache Service Monitor. С её помощью вы можете увидеть и управлять состоянием всех установленных служб Apache на любом компьютере в сети.
Так как изменения
в основных конфигурационных файлах вступят в силу только при запуске или перезагрузке сервера Apache
,
нужно перезапустить сервер.
Значок ApacheMonitor можно увидеть нажав на кнопку - отображать скрытые значки
Дважды щелкните левой кнопкой мыши на значке Apache Service Monitor .
Пезапустить сервер Apache можно нажав на кнопку Restart
в окне программы Apache Service Monitor.
Или - Stop
и затем - Start
.
то введя в адресную строку браузера - localhost
или - 127.0.0.1
,
вы увидите страницу - Ошибка 403 (Error 403)
.
Войдите с правами администратора в командную строку - Администратор - Командная строка
и введите:
"C:\Program Files\Apache Software Foundation\Apache2.4\bin\httpd.exe" 2> C:\errapache.txt
Microsoft Windows (c) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены. C:\Windows\system32>"C:\Program Files\Apache Software Foundation\Apache2.4\bin\httpd.exe" 2> C:\errapache.txt C:\Windows\system32>
На диске C:/
будет создан файл errapache.txt
AH00112: Предупреждение (Warning):
C:/Program Files/Apache Software Foundation/Apache2.4/docs/dummy-host.server-apache24.ru
C:/Program Files/Apache Software Foundation/Apache2.4/docs/dummy-host2.server-apache24.ru
Они не существуют (does not exist)
.
Но главное - это ошибки OS 10048:
не удалось привязать к адресу [::]:80 (could not bind to address [::]:80)
не удалось привязать к адресу 0.0.0.0:80 (could not bind to address 0.0.0.0:80)
Войдите в командную строку и введите:
netstat -aon
Администратор: Командная строка
Microsoft Windows (c) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены. C:\Windows\system32>netstat -aon Активные подключения Имя Локальный адрес Внешний адрес Состояние PID TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1612 TCP [::]:80 [::]:0 LISTENING 1612 TCP 127.0.0.1:49693 127.0.0.1:49694 ESTABLISHED 5612 TCP 127.0.0.1:49694 127.0.0.1:49693 ESTABLISHED 5612 TCP 127.0.0.1:51341 0.0.0.0:0 LISTENING 3920 TCP 127.0.0.1:52006 0.0.0.0:0 LISTENING 3708 TCP 192.168.0.100:139 0.0.0.0:0 LISTENING 4 TCP 192.168.0.100:51330 34.226.135.28:443 ESTABLISHED 1232 TCP 192.168.0.100:51345 52.196.85.70:443 ESTABLISHED 1232 TCP 192.168.0.100:52796 88.212.253.127:21 ESTABLISHED 1128 TCP 192.168.0.100:53160 151.101.112.134:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53161 151.101.112.134:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53162 151.101.128.134:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53176 151.101.112.134:443 ESTABLISHED 3712 TCP 192.168.0.100:53179 151.101.128.233:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53192 151.101.112.64:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53223 23.61.217.175:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53230 185.29.133.52:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53246 2.18.74.149:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53271 52.205.235.141:443 ESTABLISHED 5236 C:\Windows\system32>
Идентификатор процесса, более известный как идентификатор PID - это уникальный номер. Каждый процесс, запущенный в системе имеет уникальный идентификатор.
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1612
TCP [::]:80 [::]:0 LISTENING 1612
Откройте Диспетчер задач
Только служба Apache2.4 имеет идентификатор PID - 1612
В каталоге C:/Program Files/Apache Software Foundation/Apache2.4/conf/extra/
откройте в Блокноте файл - httpd-vhosts.conf
Прежде чем вносить какие-либо изменения, сделайте резервную копию файла - httpd-vhosts.conf .
Замените в секциях VirtualHost
httpd-vhosts.conf - содержание файла конфигурации сервера Apache 2.4
# Virtual Hosts
#
# Required modules: mod_log_config
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn"t need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
#
В каталоге C:\Windows\System32\drivers\etc\
откройте в Блокноте файл - hosts
И добавьте в него строку:
127.0.0.1 localhost www.server-apache24.ru server-apache24.ru
Пезапустите сервер Apache, нажав на кнопку Restart
в Apache Service Monitor.
Введите в адресную строку браузера - server-apache24.ru
и увидите, созданную вами, индексную страницу главного сайта сервера Apache2.4
Индексная страница сайта должна находиться в подкаталоге www (C:\server-apache24.ru\www\)
После установки сервера Apache 2.4 войдите в командную строку и введите команды:
httpd.exe -t
Будет получено два предупреждения.
Администратор: Командная строка
Microsoft Windows (c) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены. C:\Windows\system32>cd C:\Program Files\Apache Software Foundation\Apache2.4\bin\ C:\Program Files\Apache Software Foundation\Apache2.4\bin>httpd.exe -t AH00112: Warning: DocumentRoot does not exist AH00112: Warning: DocumentRoot does not exist Syntax OK C:\Program Files\Apache Software Foundation\Apache2.4\bin>