Основная конфигурация apache сервера содержится в каком файле
Apache – система конфигурации
httpd.conf — конфигурация сервера Apache
Apache настраивается путем размещения директив в обычные текстовые файлы конфигурации. Основной конфигурационный файл сервера Apache – httpd.conf.
С помощью директивы Include могут быть добавлены другие конфигурационные файлы. Любая директива может быть установлена в любом из этих файлов конфигурации.
Apache 2.4 конфигурируется файлами находящимися в подкаталоге (по умолчанию) – conf (C:Program FilesApache Software FoundationApache2.4conf). Это – те же самые файлы, что и для конфигурирования на 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 (Почтовый Адрес Администратора) – admin@server-apache24.ru
Следовательно, server-apache24.ru — будет именем главного сайта сервера Apache.
Главный сайт сервера Apache конфигурируется в файле – httpd.conf.
Внесение изменений в файл конфигурации сервера Apache — httpd.conf
Для обращения к главному сайту сервера Apache по доменному имени – server-apache24.ru, создайте на диске каталог – C:server-apache24.ru
- C:server-apache24.ru
- logs
- access.log
- error.log
- www
- index.html
- logs
каталог server-apache24.ru
В корне диска C: нужно создать каталог server-apache24.ru
В нём обязательно должны быть папки:
logs с “пустыми” файлами access.log и error.log
и
www с файлом index.html
См. в файле httpd.conf строки –
209 ServerAdmin admin@server-apache24.ru
218 ServerName www.server-apache24.ru:80
243 DocumentRoot “C:/server-apache24.ru/www”
245 <Directory “C:/server-apache24.ru/www”>
httpd.conf — конфигурирование сервера Apache 2.4
Прежде чем вносить какие-либо изменения, сделайте резервную копию файла – httpd.conf.
Действие директив главного файла конфигурации распространяется на весь сервер
Все записи, за исключением выделенных красным цветом, должны быть закомментированы. Строки начинающиеся с символа ‘#’ – это комментарии.
Изменения в основных конфигурационных файлах вступят в силу только при запуске или перезагрузке сервера Apache.
Команда – httpd.exe -k restart, позволяет завершить любые выполняемые сервером Apache операции и вынуждает Apache перечитать конфигурационный файл.
Поиск и устранение ошибок при установке сервера Apache
Apache поставляется с утилитой под названием Apache Service Monitor. С её помощью вы можете увидеть и управлять состоянием всех установленных служб Apache на любом компьютере в сети.
Перезапуск Apache 2.4
Так как изменения в основных конфигурационных файлах вступят в силу только при запуске или перезагрузке сервера Apache,
нужно перезапустить сервер.
ApacheMonitor
Значок ApacheMonitor можно увидеть нажав на кнопку — отображать скрытые значки
Дважды щелкните левой кнопкой мыши на значке Apache Service Monitor.
Пезапустить сервер Apache можно нажав на кнопку Restart
в окне программы Apache Service Monitor.
Или – Stop и затем – Start.
Если вы внесли изменения только в файл httpd.conf,
то введя в адресную строку браузера — localhost или – 127.0.0.1,
вы увидите страницу – Ошибка 403 (Error 403).
Access forbidden!
You don’t have permission to access the requested directory. There is either no index document or the directory is read-protected.
If you think this is a server error, please contact the webmaster.
Error 403
127.0.0.1
Apache/2.4.4 (Win64)
Доступ запрещен!
У вас нет разрешения на доступ к запрошенному каталогу. Отсутствует индексный документ или каталог защищен от чтения.
Если вы считаете, что это ошибка сервера, обратитесь к веб-мастеру.
Ошибка 403
Войдите с правами администратора в командную строку — Администратор – Командная строка
и введите:
“C:Program FilesApache Software FoundationApache2.4binhttpd.exe” 2> C:errapache.txt
Администратор: Командная строка
Microsoft Windows [Version 10.0.14393]
(c) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены.
C:Windowssystem32>“C:Program FilesApache Software FoundationApache2.4binhttpd.exe” 2> C:errapache.txt
C:Windowssystem32>
На диске C:/ будет создан файл errapache.txt
AH00112: Warning: DocumentRoot
[C:/Program Files/Apache Software Foundation/Apache2.4/docs/dummy-host.server-apache24.ru] does not exist
AH00112: Warning: DocumentRoot
[C:/Program Files/Apache Software Foundation/Apache2.4/docs/dummy-host2.server-apache24.ru] does not exist
(OS 10048) Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт).
: AH00072: make_sock: could not bind to address [::]:80
(OS 10048) Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт).
: AH00072: make_sock: could not bind to address 0.0.0.0:80
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs
Из его содержания видно, что Apache не может обратится к каталогам:
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 [Version 10.0.14393]
(c) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены.
C:Windowssystem32>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:Windowssystem32>
Идентификатор процесса, более известный как идентификатор 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
<VirtualHost *:80> на <VirtualHost 127.0.0.2:80>
httpd-vhosts.conf — содержание файла конфигурации сервера Apache 2.4
В каталоге C:WindowsSystem32driversetc
откройте в Блокноте файл – 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.ruwww)
После установки сервера Apache 2.4 войдите в командную строку и введите команды:
cd C:Program FilesApache Software FoundationApache2.4bin
httpd.exe -t
Будет получено два предупреждения.
Администратор: Командная строка
Microsoft Windows [Version 10.0.14393]
(c) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены.
C:Windowssystem32>cd C:Program FilesApache Software FoundationApache2.4bin
C:Program FilesApache Software FoundationApache2.4bin>httpd.exe -t
AH00112: Warning: DocumentRoot
[C:/Program Files/Apache Software Foundation/Apache2.4/docs/dummy-host.server-apache24.ru] does not exist
AH00112: Warning:
DocumentRoot [C:/Program Files/Apache Software Foundation/Apache2.4/docs/dummy-host2.server-apache24.ru] does not exist
Syntax OK
C:Program FilesApache Software FoundationApache2.4bin>
Установка сервера Apache 2.4 на Windows
Источник
По умолчанию конфигурация Apache 2.4 разбита на пачку файлов. Тут я рассмотрю стандартный конфиг и снабжу его русскими комментариями.
Базовый конфиг
Максимально упростим и по-русски откомментируем основной файл конфига /etc/httpd/conf/httpd.conf
#Корневая директория Apache
ServerRoot “/etc/httpd”
#Порт который будет “слушать” сервер. В случае использования Apache “за nginx” нужно указать отличное от “80” значение
Listen 8080
#Подключаем все .conf-файлы из поддиректории conf.modules.d
Include conf.modules.d/*.conf
#Пользователь и группа с которыми запускается сервер
User apache
Group apache
#Дефолтный конфиг под все директории
AllowOverride none
#Указание дефолтной директории при доступе с “внешки” (можно переопределять на конфигах виртуальных серверов)
DocumentRoot “/var/www/empty”
#Порядок поиска индексных файлов
DirectoryIndex index.html index.php
Require all denied
#Путь к error_log
ErrorLog “logs/error_log”
#Уровень логгирования
LogLevel warn
LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i”” combined
LogFormat “%h %l %u %t “%r” %>s %b” common
CustomLog “logs/access_log” combined
AddDefaultCharset UTF-8
EnableSendfile on
TypesConfig /etc/mime.types
#Дополнительные файлы конфигурации
IncludeOptional conf.d/*.conf
Дополнительно подгружаемые модули Apache
Разберемся с подгружаемыми модулями. Листинг /etc/httpd/conf.modules.d/00-base.conf с русскими комментариями выглядит так.
#Отвечает за возможность использования директив Allow и Deny в расширенном синтаксисе
#Allow from all|host|env=[!]env-variable [host|env=[!]env-variable]
#LoadModule access_compat_module modules/mod_access_compat.so
#Позволяет связать запрошенный клиентом mime-тип c cgi-скриптом
#Action action-type cgi-script [virtual]
#LoadModule actions_module modules/mod_actions.so
#Позволяет использовать синтаксис Alias
#Alias URL-path file-path|directory-path
LoadModule alias_module modules/mod_alias.so
#Позволяет явно указать поддерживаемые сервером HTTP-методы
#AllowMethods GET POST OPTIONS
LoadModule allowmethods_module modules/mod_allowmethods.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 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 cache_module modules/mod_cache.so
#LoadModule cache_disk_module modules/mod_cache_disk.so
#Позволяет преобразовавать ответ сервера в RFC2397 data URL
#LoadModule data_module modules/mod_data.so
#Позволяет управлять подключениями к базам данных. Подбробнее можно найти по ключевому слову APR
LoadModule dbd_module modules/mod_dbd.so
#Управляет сжатием отправляемого контеннта
LoadModule deflate_module modules/mod_deflate.so
#Позволяет использовать директиву DirectoryIndex для автоматической подстановки файла “по умолчанию” на запросы без файла
LoadModule dir_module modules/mod_dir.so
#Позволяет логгировать io-дамп в error_log
#LoadModule dumpio_module modules/mod_dumpio.so
#Позволяет использовать Echo-протокол
#ProtocolEcho On|Off
#LoadModule echo_module modules/mod_echo.so
#Позволяет устанавливаеть дополнительные переменные окружения в исполняемые скрипты
#LoadModule env_module modules/mod_env.so
#Позволяет управлять http-заголовками Expires и Cache-Control
#LoadModule expires_module modules/mod_expires.so
#Позволяет ответ сервера перенаправить через сторонние приложения
#LoadModule ext_filter_module modules/mod_ext_filter.so
#Позволяет управлять фильтрацией отправляемых данных
#LoadModule filter_module modules/mod_filter.so
#Позволяет отправлять кастомные заголовки клиенту
#LoadModule headers_module modules/mod_headers.so
#Позволяет настраивать server-side вставки сторонних файлов в отправялемые данные
#LoadModule include_module modules/mod_include.so
#Позволяет настроить генерацию server-info
#LoadModule info_module modules/mod_info.so
#Позволяет вести логгирование запросов и ошибок
LoadModule log_config_module modules/mod_log_config.so
#Позволяет логгировать так же информацию об объемах принятой/отправленной информации
LoadModule logio_module modules/mod_logio.so
#Позволяет использовать директиву MimeMagicFile
LoadModule mime_magic_module modules/mod_mime_magic.so
#Позволяет соотносить запрошенные типы файлов/контента с server-side хэндлерами, фильтрами, файлами и типами контента
LoadModule mime_module modules/mod_mime.so
#Позволяет управлять отображением различных видов одного файла в зависимости от входящего запроса (например, при реализации мультиязычности)
#LoadModule negotiation_module modules/mod_negotiation.so
#Предназначет для переопределения клиентского IP в случае если apache используется за другим front-сервером
LoadModule remoteip_module modules/mod_remoteip.so
#Позволяет установить таймауты для генерации ответов клиенту
#RequestReadTimeout [header=timeout[-maxtimeout][,MinRate=rate] [body=timeout[-maxtimeout][,MinRate=rate]
#LoadModule reqtimeout_module modules/mod_reqtimeout.so
#Позволяет использвать Rewrite-движок. Необходим для большинства MVC-фреймворков
LoadModule rewrite_module modules/mod_rewrite.so
#Позволяет устанавливать переменные окружения в зависимости от характеристик запроса
#LoadModule setenvif_module modules/mod_setenvif.so
#Memory-провайдеры
#LoadModule slotmem_plain_module modules/mod_slotmem_plain.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
#socache-провайдеры
#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 status_module modules/mod_status.so
#Позволяет производить операции на отправляемых данных во время отправки
#LoadModule substitute_module modules/mod_substitute.so
#Позволяет выполнять CGI-скрипты от имени определенного пользователя
#LoadModule suexec_module modules/mod_suexec.so
#Позволяет задавать уникальный ID каждому реквесту
#LoadModule unique_id_module modules/mod_unique_id.so
#Позволяет управлять некоторыми вопросами в области unix-безопасности
LoadModule unixd_module modules/mod_unixd.so
#Позволяет задавать директории для работы определенных пользоваталей
#LoadModule userdir_module modules/mod_userdir.so
#Позволяет организовывать различные конфиги Apache в зависимости от версии Apache
#LoadModule version_module modules/mod_version.so
#Позволяет создавать динамически конфигурируемый виртуальный хостинг
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#Управляет буфферизацией
##LoadModule buffer_module modules/mod_buffer.so
#Позволяет управлять периодической проверкой работы других модулей
#LoadModule watchdog_module modules/mod_watchdog.so
#Управляет автоматической отправкой отчетности о состоянии сервера
#LoadModule heartbeat_module modules/mod_heartbeat.so
#LoadModule heartmonitor_module modules/mod_heartmonitor.so
#Позволяет настраивать мониторинг “сервинга” сайта пользователем с помощью кук
#LoadModule usertrack_module modules/mod_usertrack.so
#Позволяет настроить отдачу контента со скоростью различных старых стандартов модемов
#LoadModule dialup_module modules/mod_dialup.so
#Позволяет легко настроить трансляцию отправляемых данных в нужную кодировку
#LoadModule charset_lite_module modules/mod_charset_lite.so
#Позволяет сконфигурировать debug-log
#LoadModule log_debug_module modules/mod_log_debug.so
#Позволяет ограничить скорость отдачи данных для некоторых видов запросов
#LoadModule ratelimit_module modules/mod_ratelimit.so
#Позволяет настроить отдачу запроса обратно клиенту с использованием некоторых фильтров
#LoadModule reflector_module modules/mod_reflector.so
#Позволяет задавать максимальный размер тела запроса
#LoadModule request_module modules/mod_request.so
#Позволяет фильтровать входящие запросы и исходящие ответы с помощью sed-синтаксиса
#LoadModule sed_module modules/mod_sed.so
#Позволяет настраивать реакцию сервера на неверные адреса (например отключать case-sensitive)
#LoadModule speling_module modules/mod_speling.so
Здесь и далее он представлен в таком виде в котором использую его лично я – все лишние модули я просто убрал.
Файл конфига 00-dav.conf отвечает за модули авторизации. Еслми пользуетесь php-методами авторизации – можно смело все комментировать или удалить файл.
Файл 00-lua.conf содержит модули отвечающие за работу lua-скриптов в конфигах. Если не используете – можно комментировать или удалить файл целиком.
00-mpm.conf содержит подгрузку модулей, отвечающих за процессинг запросов.
00-systemmd.conf подгружает модуль для правильной работы с systemctl операционной системы.
00-proxy.conf содержит модули про проксирование. Если вы не используете apache-проксиование (например, у вас для фронт используется nginx) – то так же можно комментировать/удалять этот файл.
01-cgi.conf подгружает модули обработки cgi-скриптов. Если вы их не используете – и этот файл можно закомментировать/удалить.
Дополнительные подгружаемые Apache файлы:
- /etc/httpd/conf.d/autoindex.conf – используется для настройки автоиндесиования. Можно удалить если вы не используете мод mod_autoindex
- /etc/httpd/conf.d/userdir.conf – используется для конфигурация дсотупа в зависимости от пользователя. Можно удалить если вы не используеете модуль mod_userdir.
- /etc/httpd/conf.d/welcome.conf – конфигурирует отображение welcome-страницы Apache. Можно удалить.
Виртуальные хосты
Теперь, наконец, можно настроить виртуальные хосты.
Создадим папку куда будем складывать конфиги виртуальных хостов.
mkdir /etc/httpd/conf.vhosts.d
Создадим там файл domain.com.conf и внесем в него такую заготовку.
DocumentRoot /var/www/sites/domain.com
ServerName domain.com
ServerAlias www.domain.com
ErrorLog /var/www/sites/domain.com/logs/error_log
CustomLog /var/www/sites/domain.com/logs/access_log combined
Options FollowSymLinks
AllowOverride All
Ваш сайт должен лежать в директории /var/www/sites/domain.com.
Осталось добавить строчку Include conf.vhosts.d/*.conf в файл /etc/httpd/conf/httpd.conf и перезапустить httpd.
Файлов виртуальных хостов можно добавить сколько угодно – все они будут подтягиваться автоматически при рестарта сервиса.
Apache готов к работе.
Источник