Разное

Httpd apache: Documentation: Apache HTTP Server — The Apache HTTP Server Project

25.05.2021

Содержание

Установка веб-сервера Apache в CentOS 7

Введение

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

В этом руководства вы установите веб-сервер Apache с виртуальными хостами на сервер на базе CentOS 7.

Предварительные требования

Для выполнения данного руководства вам потребуется следующее:

Шаг 1 — Установка Apache

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

С помощью пользователя sudo без прав root, настроенного согласно предварительным требованиям, обновите локальный индекс пакета Apache httpd, чтобы отразить последние изменения:

После обновления пакетов установите пакет Apache:

После подтверждения установки yum

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

Если вы выполнили указания руководства Дополнительные рекомендуемые шаги для новых серверов CentOS 7, указанные в разделе предварительных требований, на вашем сервере установлен брандмауэр firewalld, и вам нужно открыть порт 80, чтобы дать Apache возможность обслуживать запросы через HTTP. Если вы еще не сделали этого, вы можете активировать в брандмауэре firewalld службу http с помощью следующей команды:

  • sudo firewall-cmd --permanent --add-service=http

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

443, включив службу https:

  • sudo firewall-cmd --permanent --add-service=https

Затем перезагрузите брандмауэр, чтобы новые правила начали действовать:

  • sudo firewall-cmd --reload

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

Шаг 2 — Проверка веб-сервера

Apache не запускается автоматически на CentOS после завершения установки. Вам нужно будет запустить процесс Apache вручную:

  • sudo systemctl start httpd

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

  • sudo systemctl status httpd

Если служба запущена, вы увидите значение active (активна) в статусе:

Output

Redirecting to /bin/systemctl status httpd.service ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2019-02-20 01:29:08 UTC; 5s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 1290 (httpd) Status: "Processing requests..." CGroup: /system.slice/httpd.service ├─1290 /usr/sbin/httpd -DFOREGROUND ├─1291 /usr/sbin/httpd -DFOREGROUND ├─1292 /usr/sbin/httpd -DFOREGROUND ├─1293 /usr/sbin/httpd -DFOREGROUND ├─1294 /usr/sbin/httpd -DFOREGROUND └─1295 /usr/sbin/httpd -DFOREGROUND ...

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

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

Введите следующие данные в командной строке сервера:

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

Также в качестве альтернативы вы можете использовать curl для запроса IP-адреса icanhazip.com, который предоставит вам ваш публичный IPv4-адрес, видимый в другом месте в Интернете:

Когда вы узнаете IP-адрес вашего сервера, введите его в адресную строку браузера:

http://your_server_ip

Вы увидите стандартную веб-страницу Apache в CentOS 7:

Эта страница показывает, что Apache работает корректно.

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

Шаг 3 — Управление процессом Apache

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

Чтобы остановить веб-сервер, введите:

  • sudo systemctl stop httpd

Чтобы запустить остановленный веб-сервер, введите:

  • sudo systemctl start httpd

Чтобы остановить и снова запустить службу, введите:

  • sudo systemctl restart httpd

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

  • sudo systemctl reload httpd

По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если вы не хотите этого, отключите такое поведение с помощью следующей команды:

  • sudo systemctl disable httpd

Чтобы перезагрузить службу для запуска во время загрузки, введите:

  • sudo systemctl enable httpd

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

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

Шаг 4 — Настройка виртуальных хостов (рекомендуется)

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

На этом шаге мы будем настраивать домен с именем example.com, но вы должны будете заменить его собственным доменным именем. Чтобы узнать больше о настройке доменного имени с помощью DigitalOcean, пройдите наше обучающее руководство Введение в DigitalOcean DNS.

В Apache в CentOS 7 по умолчанию включен один серверный блок, настроенный на обслуживание документов из директории /var/www/html. Хотя это хорошо работает для отдельного сайта, при хостинге нескольких сайтов это неудобно. Вместо изменения /var/www/html вы создадите структуру директорий внутри /var/www для сайта

example.com, оставив /var/www/html на месте в качестве директории по умолчанию, которая будет обслуживаться, если запрос клиента не будет соответствовать каким-либо другим сайтам.

Создайте директорию html для example.com, используя флаг -p для создания необходимых родительских директорий:

  • sudo mkdir -p /var/www/example.com/html

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

  • sudo mkdir -p /var/www/example.com/log

Затем назначьте права владения для директории html с помощью переменной среды

$USER:

  • sudo chown -R $USER:$USER /var/www/example.com/html

Убедитесь, что ваша корневая директория имеет набор разрешений по умолчанию:

  • sudo chmod -R 755 /var/www

Затем создайте в качестве примера страницу index.html, используя vi или свой любимый редактор:

  • sudo vi /var/www/example.com/html/index.html

Нажмите i для переключения в режим INSERT (ВСТАВКА) и добавьте в файл следующий пример HTML-контента:

/var/www/example.

com/html/index.html

<html>
  <head>
    <title>Welcome to Example.com!</title>
  </head>
  <body>
    <h2>Success! The example.com virtual host is working!</h2>
  </body>
</html>

Сохраните и закройте файл, нажмите ESC, введите :wq и нажмите ENTER.

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

Перед созданием ваших виртуальных хостов вам нужно будет создать директорию

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

  • sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

Затем вы должны попросить Apache выполнить поиск виртуальных хостов в директории sites-enabled. Для этого необходимо изменить главный файл конфигурации Apache и добавить строку, объявляющую опциональную директорию для дополнительных файлов конфигурации:

  • sudo vi /etc/httpd/conf/httpd.conf

Добавьте эту строку в конец файла:

IncludeOptional sites-enabled/*.conf

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

Начните с создания нового файла в директории sites-available:

  • sudo vi /etc/httpd/sites-available/example. com.conf

Добавьте следующий блок конфигурации и измените домен example.com на собственный:

/etc/httpd/sites-available/example.com.conf

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog /var/www/example.com/log/error.log
    CustomLog /var/www/example.com/log/requests.log combined
</VirtualHost>

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

Сохраните файл и закройте его после завершения.

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

  • sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

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

Шаг 5 — Настройка разрешений SELinux для виртуальных хостов (рекомендуется)

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

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

Универсальное изменение политик Apache

Универсальная настройка политики Apache позволит SELinux одинаковым образом использовать все процессы Apache, используя для этого булеву переменную httpd_unified. Хотя этот подход более удобен, он не обеспечивает аналогичный уровень контроля, что и подход, который подразумевает внимание к политике для отдельных файлов и директорий.

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

  • sudo setsebool -P httpd_unified 1

Команда setsebool меняет значения булевых значений SELinux. Флаг -P будет обновлять значение времени начальной загрузки, а обновленное значение сохраняется между перезагрузками. httpd_unified — это булево значение, которое позволит SELinux рассматривать все процессы Apache как один тип, поэтому вы активировали его со значением 1.

Изменение политик Apache для директории

Индивидуальная настройка разрешений SELinux для директории /var/www/example.com/log позволит вам получить более полноценный контроль за политиками Apache, но также может потребовать дополнительных действий. Поскольку этот параметр не подразумевает наличия универсально настроенных политик, вам нужно будет вручную задать тип контекста для любых новых директорий.

Вначале проверьте тип контекста, который SELinux указал для директории /var/www/example.com/log:

  • sudo ls -dZ /var/www/example.com/log/

Эта команда формирует список и выводит контекст SELinux из директории. Вы увидите примерно следующий результат:

Output

drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/example. com/log/

В настоящее время используется контекст httpd_sys_content_t, который указывает SELinux, что процесс Apache может читать только файлы, созданные в этой директории. В ходе данного обучающего руководства вы измените тип контекста директории /var/www/example.com/log на httpd_log_t​​​​. Этот тип позволит Apache генерировать и добавлять данные в файлы журнала веб-приложения:

  • sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"

Затем воспользуйтесь командой restorecon для применения этих изменений и их сохранения между перезагрузками:

  • sudo restorecon -R -v /var/www/example.com/log

Флаг -R запускает эту команду рекурсивно, т. е. она будет обновлять любые существующие файлы для использования нового контекста. Флаг -v будет распечатывать изменения контекста, внесенные командой. Вы увидите следующий вывод, подтверждающий изменения:

Output

restorecon reset /var/www/example.com/log context unconfined_u:object_r:httpd_sys_content_t:s0->unconfined_u:object_r:httpd_log_t:s0

Вы можете вывести список контекста еще раз, чтобы посмотреть изменения:

  • sudo ls -dZ /var/www/example.com/log/

Результат отражает обновленный тип контекста:

Output

drwxr-xr-x. root root unconfined_u:object_r:httpd_log_t:s0 /var/www/example.com/log

Теперь, когда директория /var/www/example.com/log использует тип httpd_log_t, вы готовы протестировать вашу конфигурацию виртуального хоста.

Шаг 6 — Тестирование виртуального хоста (рекомендуется)

После обновления контекста SELinux с помощью любого метода Apache сможет осуществлять запись в директорию /var/www/example.com/log. Теперь вы можете перезапустить службу Apache:

  • sudo systemctl restart httpd

Сформируйте список содержимого директории /var/www/example.com/log, чтобы убедиться, что Apache создал файлы журнала:

  • ls -lZ /var/www/example.com/log

Вы увидите, что Apache удалось создать файлы errors.log и requests.log, которые указаны в конфигурации виртуального хоста:

Output

-rw-r--r--. 1 root root 0 Feb 26 22:54 error.log -rw-r--r--. 1 root root 0 Feb 26 22:54 requests.log

Теперь, когда вы настроили ваш виртуальный хост и обновили разрешения SELinux, Apache будет обслуживать ваше доменное имя. Вы можете проверить это, открыв в браузере адрес http://example.com, после чего должны увидеть примерно следующее:

Это подтверждает, что ваш виртуальный хост успешно настроен и обслуживает контент. Повторите шаги 4 и 5 для создания новых виртуальных хостов с разрешениями SELinux для дополнительных доменов.

Заключение

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

Если вы хотите развернуть более полный комплекс приложений, ознакомьтесь с этой статьей Настройка набора LAMP в CentOS 7.

Apache настройка и установка httpd

Установка и компиляция сервера Apache на машине Ubuntu

шаг 1:Install Java JDK

sudo apt install openjdk-11-jdk

sudo gedit /etc/environment

JAVA_HOME="/usr/lib/jvm/openjdk-11"

source /etc/environment

echo $JAVA_HOME

проверьте версию java

javac --version

**** установите другие необходимые пакеты:**

  sudo apt-get install apache2-dev -y 

sudo apt-get install libpcre3 libpcre3-dev

Шаг 2: Установка Сервера Apache HTTP

#1 для ubuntu установите средства разработки, включая компилятор C:

sudo apt-get install build-essential checkinstall

#2 Загрузите и извлеките необходимые файлы

предположим, что все файлы были загружены в каталог ~/Downloads

Скачать Apache HTTP сервер httpd-2. 4.41.tar.gz со страницы загрузки Apache ( https:/ / httpd.apache.org / download. cgi )

и следующие необходимые библиотеки для компиляции сервера apache HTTP:

Раздел ****Read требования( http://httpd.apache.org/документы/2.4/установить.html )***

#3 извлеките файлы tar

  • tar-xvf httpd-2.4.41.tar.gz
  • tar-xvf apr-1.7.0.tar.gz
  • tar-xvf apr-util-1.6.1.tar.gz
  • tar-xvf pcre2-10.34.tar.gz

после извлечения вы должны увидеть следующий список каталогов в ~/Downloads

  • httpd-2.4.41
  • апрель-1.7.0
  • апреля-утиль-1.6.1
  • pcre2-10.34

#4 создайте каталог для сервера apache HTTP

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

 sudo mkdir /home{your username here}/apache

Чтобы предоставить все разрешения каталогу apache :

sudo chmod -R 777 /home{your username here}/apache

#5 скопируйте каталог arp и arp-util в ~ / Downloads/httpd-2.4.41/srclib/

cd ~/Downloads

mv  apr-util-1.6.1  ~/Downloads/httpd-2.4.41/srclib/apr-util

 mv  apr-1.7.0  ~/Downloads/httpd-2.4.41/srclib/apr

#6 настройка источников для компиляции. Параметр —prefix можно использовать для установки веб-сервера в место, где можно записывать файлы.

cd ~/Downloads/httpd-2.4.41/


./configure  --prefix=/home/{username here}/apache --with-pcre=~/Downloads/pcre2-10.34

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

insallting pcre in /usr/local/pcre, используя

. / configure —prefix=/usr/local/pcre делать sudo сделать установить

команды, а затем путем выполнения следующих команд:

   cd ~/Downloads/httpd-2. 4.41/

./настроить —prefix=/home/{username здесь}/apache —с-pcre=/usr/local/pcre

делать

  sudo make install

Если вы все еще сталкиваетесь с некоторыми проблемами ,убедитесь, что ~/apache и его вложенный каталог имеют права на чтение/запись. если нет, то выполните команду **sudo chmod -R 777 /home{your username here}/apache** еще раз.

#7 Компилировать Apache HTTP Сервер.

cd ~/Downloads/httpd-2.2.25

sudo make

#8 Установите Сервер Apache HTTP.

cd ~/Downloads/httpd-2.2.25

sudo make install

Необязательно #9 Для Подготовки Файла Hosts

sudo gedit /etc/hosts

27.0.0.1 localhost www.example.com

sudo gedit /home/{your username here}/apache/conf/httpd.conf

и копия:

Listen 8000

ServerName www.example.com:8000

#10 Проверьте установку, чтобы убедиться, что сервер Apache HTTP работает.

/home/{your username here}//apache/bin/apachectl -k start

Русский файл «httpd.conf» — Для себя

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

В переводе применяются следующие соглашения и сокращения

  • конфиг, конфиг-файл — конфигурационный файл
  • errlog, error-файл — файл, содержащий сообщения об ошибках
  • log, лог, — лог-файл файл, в котором ведется журнал системы (или какой-то ее компоненты)
  • default, дефолт (дефолтное, и т.д.) — что-либо (значение, действие, компонента), действующее «по умолчанию» — т.е. «автоматически», если явно ничего не задано
  • инстанция (процесса, программы) — одна отдельная копия программы (или процесса) из множества параллельно запущенных копий одной и той же программы (процесса)
  • (sic) — примечание переводчика о том, что в этом месте в оригинале возможно допущена ошибка, или неточная/неудачная/неясная формулировка. Поскольку это перевод, а не статья, то исправление последних не входит в компетенцию переводчика. Следует обратиться к документации для полной ясности в этих случаях
  • пп — примечание переводчика (некоторые пояснения по тексту)
  • тайм-аут — истекание срока какого-либо ожидаемого события или действия, просроченность
  • content-negotiation — динамическое определение содержимого — выбор одного из многих существующих на сервере вариантов документа, подлежащего выдаче, исходя из разных параметров запроса (или диалога с клиентом)
  • agent, агент — браузер, или другая программа-клиент, пославшая запрос серверу
  • referer — документ (или его URL), по ссылке из которого сделан тот запрос, к которому это значение относится
  • персистентное соединение (persistent connection, keep-alive) — тип виртуального соединения между сервером и клиентом, при котором сервер может обслуживать более одного запроса от одного и того же клиента в рамках одного и того же соединения; т.е. которое не завершается сразу, как только сервер обслужил тот первый запрос клиента, ради которого данное соединение было установлено, а ждет поступления дальнейших запросов по тому же каналу.

Непосредственно перевод

# Основан на конфигурационных файлах сервера NCSA,
# написанных Rob McCool.
#
# Это главный конфиг-файл сервера Apache,
# содержащий директивы, управляющие
# работой сервера. За более подробной информацией об этих директивах,
# обращайтесь по адресу <URL:http://httpd.apache.org/docs-2.0/>
#
# Не стоит читать приведенные здесь команды, не вникая в их суть. Здесь
# они служат лишь в качестве примера или шпаргалки. Если вы не
# уверены - обращайтесь к онлайновой документации. Вы предупреждены.
#
# Конфигурационные директивы сгруппированы в три основные разделы :
#
# 1. Директивы, управляющие серверным процессом Apache в целом
# ("глобальная среда").
#
# 2. Директивы, определяющие параметры "главного"
# или дефолтного сервера,
# который отвечает на запросы, не обрабатываемые каким-либо
# виртуальным хостом. Эти директивы также задают дефолтные
# установки для всех виртуальных хостов.
#
# 3. Установки для виртуальных хостов, позволяющие единым серверным
# процессом Apache обрабатывать веб-запросы, на самом деле
# адресованные различным хостам (по имени хоста или по IP).
#
# Наименования конфиг- и лог-файлов : Если имя файла начинается с "/" (или c
# "диск:/" под Win32) - сервер использует явно указанный путь. Если же имя
# НЕ начинается с "/", то к нему префиксируется значение ServerRoot.
# Т.о., если ServerRoot="/usr/local/apache", то "logs/foo.log" сервер
# интерпретирует как "/usr/local/apache/logs/foo.log"
#
#
# ПРИМЕЧАНИЕ: При определении имен файлов необходимо использовать прямые
# слэши вместо обратных (т.е. "c:/apache" вместо "c:apache").
# Если диск не указан, по умолчанию используется тот, на котором размещен
# Apache.exe. Для однозначности, все же, рекомендуется в абсолютных путях
# всегда четко указывать диск.
#
#
#
### Раздел 1: Глобальная среда
#
# Директивы в этом разделе задают общие параметры работы Apache, такие, как,
# например, максимальное число одновременных запросов или
# месторасположение конфиг файлов.
#
# ServerRoot: Вершина дерева директорий, в которых содержатся конфиг-, лог- и
# error-файлы.
#
# ПРИМЕЧАНИЕ : Если это дерево будет располагаться на томе монтируемой
# файловой системы NFS (или на другом сетевом ресурсе),
# просьба прочесть описание директивы LockFile
# (по адресу <URL:http://httpd.apache.org/docs-2.0/mod/core.html#lockfile>)
# - во избежание массы проблем.
#
# В конце строки добавлять слэш НЕ следует.
#
ServerRoot "E:/Apache2"
#
# ScoreBoardFile: Файл для хранения информации внутреннего процесса сервера.
# Если не указан (по дефолту не указан), то эта информация хранится в
# неименованном разделе общей памяти, и не доступна посторонним программам.
# Если же файл указан, то он должен быть уникальным для каждой отдельной
# инстанции Apache. Этот файл должен располагаться на МЕСТНОМ диске.
#
#ScoreBoardFile logs/apache_runtime_status
#
# Файл записи идентификационного номера процесса (PID) сервера при запуске.
#
PidFile logs/httpd.pid
#
# Timeout: Время ожидания в секундах, прежде чем попытки приема или отправления
# выдают сообщение о тайм-ауте.
#
Timeout 300
#
# KeepAlive: Допускаются ли персистентные соединения (см. примечания).
# Для запрета укажите "Off".
#
KeepAlive On
#
#
# MaxKeepAliveRequests: Максимальное количество запросов при одном
# персистентном соединении. Значение 0 снимает ограничения. Для максимального
# быстродействия рекомендуем высокое значение.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Время ожидания (в секундах) следующего запроса от того же
# клиента в рамках одного персистентного соединения
#
KeepAliveTimeout 15
#
#
# Server-Pool Size Regulation (MPM specific)
#
# Установка размеров серверного пула. Параметры данного подраздела
# меняются в зависимости от конкретного модуля мультизадачного режима
# (MPM - Multi-Processing Module), который, в свою очередь, меняется в
# зависимости от конкретной базовой ОС.
#
# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum number of requests a server process serves
#
# WinNT MPM : Мультизадачный модуль для Win32
# ThreadsPerChild: Постоянное число рабочих нитей (тредов) в серверном(sic)
# процессе
# MaxRequestsPerChild: Максимальное количество запросов, обслуживаемых
# серверным(sic) процессом
#
# (В обоих случаях, речь, на самом деле, идет о дочерних процессах сервера,
# а не о самом серверном процессе. Дело в том, что в случае Win32, который
# как раз здесь рассматривается, запускается один лишь единственный дочерний
# процесс, поэтому для WinNT_MPM эти понятия, в некоторой степени,
# совпадают -пп)
#
<IfModule mpm_winnt. c>
ThreadsPerChild 250
MaxRequestsPerChild 0
</IfModule>
#
# Listen: Позволяет привязать Apache к конкретным адресам IP и/или портам,
# помимо(sic) дефолтных. См. также директиву <VirtualHost>.
#
# Следует поменять это на конкретные адреса IP (как показано ниже), чтобы
# Apache не "прилипал" ко всем привязанным адресам (0.0.0.0)
#
# (Автор здесь немного противоречит себе. Возможно, правильнее второй абзац,
# а первый просто остался по наследству от предыдущих версий. Следует
# отметить, что в отличии от предыдущих версий, директива Listen теперь
# является обязательной - без нее Apache стартовать не будет -пп).
#
#Listen 12.34.56.78:80
Listen 80
#
#
# Поддержка динамических, разделяемых объектов (DSO, Dynamic Shared Object)
#
# Для того, чтобы использовать модули, созданные как DSO, следует поместить
# здесь соответствующие строки с директивой "LoadModule", чтобы команды этого
# модуля были доступны ДО обращения к ним. Статически скомпилированные модули
# (выявляемые по команде "httpd -l") в этом не нуждаются.
#
# Пример:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule access_module modules/mod_access.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_module modules/mod_auth.so
#LoadModule auth_anon_module modules/mod_auth_anon.so
#LoadModule auth_dbm_module modules/mod_auth_dbm.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env. so
#LoadModule expires_module modules/mod_expires.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule headers_module modules/mod_headers.so
LoadModule imap_module modules/mod_imap.so
LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule status_module modules/mod_status.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 vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so
#
# Директива ExtendedStatus определяет, будет ли Apache выдавать подробную
# информацию о состоянии (ExtendedStatus On), или только общую справку
# (ExtendedStatus Off), при обращении к функции "server-status". Значение по
# умолчанию - Off.
#
#ExtendedStatus On
#
#
#
### Раздел 2: Конфигурация "главного" (дефолтного) сервера
#
# Директивы этого раздела устанавливают значения, используемые "главным
# сервером", который отвечает на запросы, не обрабатываемые виртуальными
# хостами. Эти значения также задают дефолты для любых последующих
# контейнеров <VirtualHost> в этом файле.
#
# Любые из этих директив могут быть включены в контейнер <VirtualHost>; в таком
# случае дефолтные установки будут переопределены для этого виртуального хоста.
#
# ServerAdmin: Ваш адрес, по которому следует направлять сообщения о проблемах
# с сервером. Этот адрес появится на некоторых сгенерированных сервером
# страницах, таких, как сообщения об ошибках. Пример: [email protected]
#
ServerAdmin [email protected]
#
# Директива ServerName задает имя и порт, которыми сервер представляется.
# Это часто может быть определено автоматически, но рекомендуется явно задавать
# эти параметры, во избежание проблем при запуске.
#
# Если Servername не указывает на действительное DNS-имя вашего хоста,
# переадресация, сгенерированная сервером, не будет работать. См. также
# директиву UseCanonicalName
#
# Если ваш хост не имеет зарегистрированного DNS-имени, укажите здесь его IP.
# В любом случае вам придется обращаться к нему по адресу, при этом
# переадресация станет разумней.
#
ServerName server:80
#
# UseCanonicalName: Определяет как Apache строит внутренние URL-ссылки и
# значения переменных SERVER_NAME и SERVER_PORT. Когда задано "Off", Apache
# использует имя и порт, данные клиентом. Если же задано "On", то Apache
# использует значение директивы ServerName.
#
UseCanonicalName Off
#
# DocumentRoot: Директория, из которой будут выдаваться ваши документы.
# По умолчанию, все запросы обслуживаются из этой директории, но могут быть
# использованы символические линки (пересылки) и алиасы (псевдонимы) для
# указания других мест.
#
DocumentRoot "E:/Apache2/htdocs"
#
#
# Каждая доступная для Apache директория может быть сконфигурирована в
# отношении действий и сервисов, которые разрешены и/или запрещены в
# этой директории (и ее суб-директориях).
#
# Для начала, мы определяем "дефолт", как весьма ограниченный набор разрешений.
#
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
#
# Заметьте, что в дальнейшем вы должны явно разрешать конкретные действия так
# что, если что-то не работает так, как вы ожидаете, убедитесь, что вы явно
# разрешили это ниже.
#
# Здесь должна быть указана директория, которую вы установили как DocumentRoot.
#
<Directory "E:/Apache2/htdocs">
#
# Опции могут иметь значения "None", "All" или любую комбинацию из :
# "Indexes", "Includes", "FollowSymLinks", "SymLinksifOwnerMatch", "ExecCGI",
# и "Multiviews".
#
# Заметьте, что опция "MultiViews" должна быть ЯВНО указана - т.к.
# "Options All" ее НЕ включает.
#
# Директива Options является и сложной и важной. Для дополнительной информации
# см. "http://httpd.apache.org/docs-2.0/mod/core.html#options"
#
Options Indexes FollowSymLinks
#
# AllowOverride определяет какие директивы могут быть использованы в файлах
# .htaccess. Она может принимать значения "All", "None", или любую
# комбинацию из : "Options", "FileInfo", "AuthConfig", и "Limit"
#
AllowOverride None
#
# Эти директивы определяют, кто может получать материал с этого сервера.
#
Order allow,deny
Allow from all
</Directory>
#
#
# UserDir: Имя директории, которое постфиксируется к имени домашней директории
# пользователя при получении запроса ~user. Будьте особенно внимательны - здесь
# используются прямые слеши.
#
UserDir "My Documents/My Website"
#
# Управляет доступом к директориям UserDir. Приведен пример сайта, где эти
# директории имеют ограничение "read-only" (только чтение).
#
# Исправьте (в следующем) корневой путь, чтобы он соответствовал
# местонахождению директории пользователя в вашей системе, например,
# "C:/WinNT/profiles/*/My Documents/My Website".
#
#<Directory "C:/Documents and Settings/*/My Documents/My Website">
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS PROPFIND>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS PROPFIND>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>
#
#
# DirectoryIndex: Имя файла, выдаваемого Apache в ответ на запрос директории. .ht">
Order allow,deny
Deny from all
</Files>

#
# TypesConfig опеределяет местонахождение файла «mime.type» (или ему
# эквивалентного).
#
TypesConfig conf/mime.types
#
#
# Директива DefaultType — это дефолтный MIME-тип, используемый сервером для
# документов, тип которых не определяем по иным признакам, таким, как
# расширение имени файла. Если ваш сервер содержит в основном текстовые или
# HTML-документы, «text/plain» является подходящим значением. Если большая
# часть представляет собой бинарные файлы, такие, как программы или
# изображения, возможно использование «application/octet-stream», чтобы
# предотвратить попытки браузеров показывать содержимое двоичных файлов как
# текст.
#
DefaultType text/plain
#
#
# Модуль «mod_mime_magic» позволяет серверу использовать различные приемы для
# определения типа файла по его содержанию. Директива MIMEMagicFile указывает
# этому модулю месторасположение (файла с описаниями) этих приемов.
#
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>
#
#
# HostnameLookups определяет, записывать ли имена клиентов, или только их
# IP-адреса, например, «www.apache.org» («On») или «204.62.129.132»(«Off»).
# По дефолту «Off», поскольку в целом для Интернета было бы лучше, если бы
# эта опция включалась сознательно, т.к. ее включение означает, что каждый
# клиентский запрос влечет за собой КАК МИНИМУМ еще один обратный запрос к
# серверу имен.
#
HostnameLookups Off
#
# ErrorLog: Расположение error-файла. Если вы не задаете директиву ErrorLog
# внутри контейнера какого-либо <VirtualHost>, его сообщения об ошибках
# будут записаны здесь. Если же вы определите error-файл для какого-либо
# <VirtualHost>, то его сообщения об ошибках будут записываться там, а не здесь.
#
ErrorLog 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: Определение количества(sic) ошибок, которые записываются в
# error.log. Возможные значения :
# «debug», «info», «notice», «warn», «error», «crit», «alert», и «emerg».
#
LogLevel warn
#
# Следующие директивы присваивают имена некоторым определениям
# форматов записей, для использования в директиве
# CustomLog (см. ниже).
#
LogFormat «%h %l %u %t \»%r\» %>s %b \»%{Referer}i\» \»%{User-Agent}i\»» combined
LogFormat «%h %l %u %t \»%r\» %>s %b» common
LogFormat «%{Referer}i -> %U» referer
LogFormat «%{User-agent}i» agent
# (слово access — здесь как запрос о доступе, а не как доступ — пп)
#
# Расположение и формат лог-файла запросов (в общем формате лог-файлов —
# Common Logfile Format). Если вы не определяете никаких лог-файлов запросов
# внутри контейнера какого-либо <VirtualHost>, сведения будут записываться
# здесь. Если же вы определяете отдельные лог-файлы запросов для каждого(sic)
# <VirtualHost>, то транзакции будут отслеживаться там, а не здесь.
#
# (Наверное, здесь имеется в виду «для отдельных» <VirtualHost>, а не
# «для каждого» -пп)
#
CustomLog logs/access.log common
#
#
# Если вы хотите иметь лог-файлы для отслеживания значений agent и referrer
# (из соответствующих полей поступающих запросов -пп), раскомментируйте
# следующие директивы.
#
#CustomLog logs/referer.log referer
#CustomLog logs/agent.log agent
#
# Если вы предпочитаете единый лог-файл с информацией о запросе, агенте и
# referrer (комбинированный формат лог-файла — Combined Logfile Format),
# вы можете использовать следующую директиву.
#
#CustomLog logs/access.log combined
#
#
# Добавить дополнительную строчку, содержащую версию сервера и имя виртуального
# хоста на страницах, сгенерированных сервером (таких, как сообщения об
# ошибках, FTP листинги директорий, выдачи модулей «mod_status» и «mod_info»
# и т. п.; документы, сгенерированные скриптами CGI, к ним не относятся).
# Установите «EMail», чтобы включить еще и линк «mailto:», направленный
# на ServerAdmin.
# Допустимые значения: On | Off | Email
#
ServerSignature On
#
#
# Алиасы (Псевдонимы): Можно добавлять любое количество алиасов (без
# ограничений). Формат: Alias псевдоним действительное_имя
#
# Обратите внимание, что если вы включаете завершающий слэш в псевдониме, то
# сервер потребует его наличия и в URL. Так, псевдоним «/icons» не определен в
# данном примере, только «/icons/». Если псевдоним закначивается на слеш,
# действительное_имя также должно заканчиваться на слеш, а если псевдоним его
# опускает, то и действительное_имя его должно опустить.
#
# Мы используем алиас «/icons/» для листингов директорий типа FancyIndexed.
# Можно закомментировать эту часть, если вы не используете FancyIndexing.
#
Alias /icons/ «E:/Apache2/icons/»

<Directory «E:/Apache2/icons»>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
#
# Следует поменять это значение на (ваш) ServerRoot/manual/. Данный алиас
# обеспечивает доступ к документации, даже если вы передвините свой
# DocumentRoot. Можно эту часть закомментировать, если документация не нужна.
#
Alias /manual «E:/Apache2/manual»
#
<Directory «E:/Apache2/manual»>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
#
#
# ScriptAlias: Указывает директории, которые содержат серверные скрипты.
# Свойства ScriptAlias-ов в основном такие же, как и у простых Alias-ов,
# кроме того, что при запросе, документы в каталоге «действительное_имя»
# считаются приложениями и выполняются на сервере, а не отправляются
# клиенту. К директиве ScriptAlias применяются те же правила в отношении
# завершающего «/», что и к Alias.
#
ScriptAlias /cgi-bin/ «E:/Apache2/cgi-bin/»
#
# Значение «E:/Apache2/cgi-bin» следует поменять на существующую директорию
# CGI, указанную в ScriptAlias.
#
<Directory «E:/Apache2/cgi-bin»>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
#
# Директива Redirect позволяет сообщить клиенту о документах, ранее
# существовавших в именном пространстве сервера, но теперь не существующих.
# Она позволяет сообщить клиенту новый адрес перемещенного документа.
# Пример:
# «Redirect permanent /foo http://www.example.com/bar»
#
#
# Директивы, управляющие внешним видом листингов директории,
# генерируемых сервером.
#
#
# FancyIndexing задает, хотите ли вы стилизованные листинги директорий или
# же стандартные. VersionSort определяет, будут ли файлы с номерами версий
# сравниваться «естественно», т.е. так, чтобы в листинге файл
# «apache-1.3.9.tar» предшествовал файлу «apache-1.3.12.tar».
#
IndexOptions FancyIndexing VersionSort
#
#
# Директивы AddIcon* указывают серверу, какие иконы показывать для
# различных файлов, или расширений имен файлов. Они показываются только
# для директорий с FancyIndexing.
#
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.

#
# DefaultIcon показывает какую икону показывать для файлов, не имеющих
# явно определенных икон.
#
DefaultIcon /icons/unknown.gif
#
#
# Директива AddDescription позволяет поместить краткое описание после имени
# файла в листингах, сгенерированных сервером. Они показываются только для
# директорий с FancyIndexing.
#
# Формат: AddDescription «описание» имя_файла
#
#AddDescription «GZIP compressed document» .gz
#AddDescription «tar archive» .tar
#AddDescription «GZIP compressed tar archive» .tgz
#
#
# ReadmeName — это дефолтное имя README-файла, который сервер будет искать по
# умолчанию и добавит в конце листингов директорий.
#
# HeaderName — имя файла, который будет добавлен в начале листингов директорий.
#
ReadmeName README.html
HeaderName HEADER.html
#
#
# IndexIgnore — это список файлов, которые должны быть исключены из
# листингов. В именах файлов допускается использование метасимволов замены в
# стиле shell.
#
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
#
#
# AddEncoding позволяет некоторым браузерам (Mosaic/X 2.1+) на ходу
# распаковывать информацию. Замечание: не все браузеры поддерживают это.
# Несмотря на сходство имен, следующие директивы Add* не имеют ничего общего
# с директивами форматирования FancyIndexing, указанными выше.
#
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
#
#
# DefaultLanguage и AddLanguage позволяют указать языки документов. Вы можете
# в последствие использовать динамическое определение содержимого (content
# negotiation) для выдачи браузеру файла на языке понятном пользователю.
#
#
# Установка языка default. Это означает, что вся информация, идущая без
# конкретного языкового тэга (см. ниже), будет идти на дефолтном языке.
# Вероятно, не стоит задавать эту директиву, не будучи твердо уверенным в том,
# что она подходит для всех случаев.
#
#
# * В общем, лучше не указывать определенный язык
# * для страницы, чем задать неправильный язык.
#
# DefaultLanguage nl
#
# Примечание 1: Суффикс не обязательно должен совпадать с
# кодом-идентификатором языка. Те, у кого есть документы
# на польском языке (стандартный буквенный
# код Интернета pl), могут воспользоваться директивой
# «AddLanguage pl .po» во избежание конфликта с распространенным
# суффиксом скриптов на языке Perl.
#
# Примечание 2: Нижеследующие примеры показывают, что в некоторых
# случаях двухбуквенный код языка не совпадает с двухбуквенным
# кодом соответствующей страны.
# Например, Датский (da) и Дания (dk).
#
# Примечание 3: В случае «ltz» мы нарушаем требования RFC, используя
# трехбуквенный код. Ведется работа по устранению несоответствий и
# усовершенствованию «rfc1766».
#
# Danish, датский (da)
# Dutch, голландский, (nl)
# English, английский (en)
# Estonian, эстонский (et)
# French, французский (fr)
# German, немецкий (de)
# Greek-Modern, новогреческий (el)
# Italian, итальянский (it)
# Norwegian, норвежский (no)
# Norwegian Nynorsk (nn)
# Korean, корейский (kr)
# Portugese, португальский (pt)
# Luxembourgeois*, люксембургский (ltz)
# Spanish, испанский (es)
# Swedish, шведский (sv)
# Catalan, каталанский (ca)
# Czech, чешский(cz)
# Polish, польский (pl)
# Brazilian Portuguese, бразильско-португальский (pt-br)
# Japanese, японскский (ja)
# Russian, русский (ru)
# Croatian, хорватский (hr)
#
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .et
AddLanguage fr .fr
AddLanguage de .de
AddLanguage he .he
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
AddLanguage pl .po
AddLanguage kr .kr
AddLanguage pt .pt
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pt-br .pt-br
AddLanguage ltz .ltz
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
AddLanguage ru .ru
AddLanguage tw .tw
AddLanguage zh-tw .tw
AddLanguage hr .hr
#
# LanguagePriority позволяет задать порядок выбора некоторых языков (в случае
# неоднозначности) при динамическом определении содержания (content
# negotiation).
#
# Просто перечислите языки в порядке убывания приоритета. Здесь они даны в
# более-менее алфавитном порядке. Вероятно, вы захотите изменить этот порядок.
#
LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw
#
# ForceLanguagePriority позволяет вам (серверу) выдать конкретную страницу,
# вместо сообщения MULTIPLE CHOICES (задается Prefer), [в случае неоднозначного
# выбора], или сообщения NOT ACCEPTABLE (задается Fallback)[в случае, если
# не один язык не подошел]
#
ForceLanguagePriority Prefer Fallback
#
#
# AddDefaultCharset задает дефолтную таблицу символов (кодировку) для всех
# выдаваемых страниц. Это всегда полезно, и открывает возможность будущей
# мультилингвизации вашего веб сайта. Ее обозначение как дефолтной не
# наносит вреда, т.к. стандарт, в любом случае, определяет, что страница
# использует кодировку iso-8859-1 (latin1), если не указано иначе, т.е. вы
# просто подтверждаете очевидное. Существуют так же соображения о безопасности
# для браузеров, относящиеся к обработке javascript и URL, по которым всегда
# стоит указывать дефолтную кодировку.
#
AddDefaultCharset WINDOWS-1251
#
#
# Часто используемые расширения для обозначения кодировок. Вы, вероятно,
# захотите избежать столкновений с языковыми расширениями, если вы не
# специалист по тщательному тестированию установок после каждого изменения.
# См. «ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets» для
# официального списка кодировок и соответствующих им документов RFC.
#
AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5
#
#
# Для русского языка используется более, чем одна кодировка (в основном,
# зависит от клиента):
#
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8 .utf8
#
#
# Ниже приведенный список не соответствует конкретному (iso) стандарту, но
# работает с довольно широким списком браузеров. Заметьте, что верхний регистр,
# на самом деле, имеет значение (этого не должно происходить, но с некоторыми
# браузерами, тем не менее, происходит).
#
# См. «ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets» для своего
# рода списка (кодировок). Но браузеры поддерживают только некоторые из них.
#
AddCharset GB2312 .gb2312 .gb
AddCharset utf-7 .utf7
AddCharset utf-8 .utf8
AddCharset big5 .big5 .b5
AddCharset EUC-TW .euc-tw
AddCharset EUC-JP .euc-jp
AddCharset EUC-KR .euc-kr
AddCharset shift_jis .sjis
#
# AddType позволяет добавить новые MIME-типы (или переопределить старые из
# конфигурационного файла «mime.types») для определенных типов файлов.
#
AddType application/x-tar .tgz
#
# AddHandler позволяет связать определенные расширения имен файлов с
# обработчиками (handlers), вне зависимости от типа файла.
# Обработчики могут быть либо встроены в сервер, либо добавлены директивой
# Action (см. ниже).
#
# Для использования скриптов CGI вне директорий типа ScriptAliased :
# (Кроме того, вам придется добавить «ExecCGI» к директиве «Options»)
#
#AddHandler cgi-script .cgi
#
# Для файлов, которые включают свои HTTP заголовки:
#
#AddHandler send-as-is asis
#
# Для imagemap файлов, обрабатываемых сервером:
#
#AddHandler imap-file map
#
# Для type-maps (динамически определяемых ресурсов):
# Включено по умолчанию, чтобы допустить распространение страницы
# Apache «It Worked» («Сработало!») на различных языках.
#
AddHandler type-map var
#
#
# Фильтры позволяют обработать содержание до отправки клиенту.
#
# Для обработки .shtml файлов на предмет вставок, производимых сервером
# (server-side includes — SSI):
# (Кроме того, вам придется добавить «Includes» к директиве «Options»)
#
#AddOutputFilter INCLUDES .shtml
#
#
# Action позволяет определить MIME или другие типы (для которых задан
# какой-нибудь handler), при запросе которых выполняется соответствующий
# скрипт. Это устраняет необходимость многократного упоминания URL путей
# часто используемых скриптов CGI.
#
# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location
#
# Формат: Action название_MIME_типа путь/скрипт
# Action назавние_типа_или_обработчика(handler) путь/скрипт
#
#
# Существует три типа настроек для конфигурируемых сообщений об ошибках:
# 1) простой текст 2) местные ссылки 3) внешние пересылки
#
# Некоторые примеры:
#
#ErrorDocument 500 «The server made a boo boo.»
#ErrorDocument 404 /missing.html
#ErrorDocument 404 «/cgi-bin/missing_handler.pl»
#ErrorDocument 402 http://www.example.com/subscription_info.html
#
# Собрав все это воедино, мы можем мультилингвизировать сообщения об ошибках.
#
# Мы используем Alias чтобы перенаправлять сообщения
# «/error/HTTP_<error>.html.var» на наборы сообщений на разных языках
# (собранных по типу ошибки). Мы используем «includes» для вставления
# необходимого текста.
#
# Alias /error/include/ «/your/include/path/»
#
#
# Можно изменить вид сообщения, не меняя никаких дефолтных
# «HTTP_<error>.html.var» файлов, добавив строку;
#
# Alias /error/include/ «/your/include/path/»
#
# которая позволяет вам создать свой набор файлов, начав с файлов
# «E:/Apache2/error/include/» и копируя их в «/your/include/path/»,
# в том числе и для отдельных VirtualHost.
#
#
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
Alias /error/ «E:/Apache2/error/»

<Directory «E:/Apache2/error»>
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en es de fr
ForceLanguagePriority Prefer Fallback
</Directory>

ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
ErrorDocument 410 /error/HTTP_GONE.html.var
ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var
ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.WebDrive» redirect-carefully
#
# Разрешить выдачу сообщений-отчетов о состоянии сервера по запросу на URL
# «http://servername/server-status» . Замените «.admin.admin.com» на имя
# своего домена для включения.
#
#<Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .admin.admin.com
#</Location>
#
#
# Разрешить выдачу сообщений-отчетов о конфигурации удаленного сервера по
# запросу на URL «http://servername/server-info» . Замените «.your-domain.com»
# на имя своего домена для включения.
#
#<Location /server-info>
# SetHandler server-info
# Order deny,allow
# Deny from all
# Allow from .admin.admin.com
#</Location>
#
# Директивы прокси-сервера. Раскомментируйте следующие строки, чтобы включить
# прокси-сервер.
#
#<IfModule mod_proxy.c>
#ProxyRequests On
#
#<Proxy *>
# Order deny,allow
# Deny from all
# Allow from .your-domain.com
#</Proxy>
#
#
# Включить/выключить обработку заголовков «HTTP/1.1» типа «Via:» (через)
# (Опция «Full» добавляет номер версии сервера, «Block» отменяет все исходящие
# заголовки типа «Via:».
# Возможные варианты: Off | On | Full | Block
#
#ProxyVia On
#
# Чтобы включить еще и кэширование, откорректируйте и раскомментируйте
# следующие строки
#
#CacheRoot «E:/Apache2/proxy»
#CacheSize 5
#CacheGcInterval 4
#CacheMaxExpire 24
#CacheLastModifiedFactor 0.1
#CacheDefaultExpire 1
#NoCache a-domain.com another-domain.edu joes.garage-sale.com

#</IfModule>
#
# Конец директив прокси сервера.
#
#
# Включить дополнительные конфиг-файлы для отдельных модулей
#
<IfModule mod_ssl.c>
Include conf/ssl.conf
</IfModule>
#
#
#
###Раздел 3: Виртуальные хосты
#
#
# VirtualHost: Если вы хотите держать множество доменов/хостов на своей машине,
# то задайте для них контейнеры VirtualHost. Большинство конфигураций задает
# только имена виртуальных хостов, с тем, чтобы серверу не требовались
# IP адреса. Данное обстоятельство обозначено звездочками (*) в следующих
# директивах.
#
# См. документацию по адресу <URL:http://httpd.apache.org/docs-2.0/vhosts/>
# для дополнительной информации, прежде чем создавать виртуальные хосты.
#
# Вы можете воспользоваться ключом «-S» для командной строки, чтобы выявить
# конфигурацию ваших виртуальных хостов.
#
#
#
# Использовать виртуальные хосты по их именам.
#
#NameVirtualHost *
#
#
# Пример виртуального хоста.
# Почти любые директивы Apache могут входить в контейнер VirtualHost.
# Первый VirtualHost используется для запросов, направленных на
# неизвестное имя сервера

#<VirtualHost *>
# ServerAdmin [email protected]
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

Спасибо автору

Установка SSL-сертификата: Apache + Mod SSL + OpenSSL

В письме с уведомлением о выпуске SSL-сертификата содержится zip-архив. В архиве содержится 2 файла «domainname.crt» и «domainname.ca-bundle». Первый является сертификатом для вашего домена, а второй содержит корневой и промежуточные сертификаты.

Шаг 1. Скопируйте файлы domainname.crt и domainname.ca-bundle на сервер в ту же директорию, в которой содержится Private Key (приватный ключ).

В данном примере мы используем ‘/etc/ssl/crt/’ . The private key (приватный ключ), используемый в примере, помечен как ‘private.key’ , а public key будет называться ‘yourDOMAINNAME.crt’ .

Примечание : Рекомендуем Вам создавать директорию, содержащую файл private key (приватный ключ), видимой только корневым каталогом.

Совет: рекомендуется выставить права доступа на чтение для директории, содержащей приватный ключ только для пользователя root.

Шаг 2. Установите на сервере корневой и промежуточный сертификаты.

2.1. Откройте в текстовом редакторе конфигурационный файл сервера Apache 2.х httpd.conf. Найдите раздел VirtualHost, относящийся к вашему SSL-сертификату. Убедитесь, что в нем содержатся три следующие строки. Если их нет — их необходимо добавить:

SSLCertificateChainFile /etc/ssl/crt/domainname.ca-bundle
SSLCertificateFile /etc/ssl/crt/domainname.crt
SSLCertificateKeyFile /etc/ssl/crt/private.key

Для Apache 1.x используйте вместо SSLCertificateChainFile директиву SSLCACertificateFile:

SSLCACertificateFile /etc/ssl/crt/domainname.ca-bundle   

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

2.2. Сохраните изменения и закройте текстовый редактор.

2.3. Запустите (или перезапустите) ваш веб-сервер Apache.

Дополнительная информация

Файл httpd.conf должен содержать несколько или все следующие строки (для IP-based сайта). Строки, относящиеся к настройкам SSL выделены жирным шрифтом. Строки, выделенные курсивом используются только для отладки (для выявления проблем при настройке SSL).

 
<VirtualHost 192.168.1.1:443>
DocumentRoot /var/www/html
ServerName 192.168.1.98
ServerAdmin [email protected]
ErrorLog /etc/httpd/logs/ssl_error_log
TransferLog /etc/httpd/logs/ssl_access_log
SSLEngine On
SSLCertificateFile /etc/ssl/crt/domainname.crt
SSLCertificateKeyFile /etc/ssl/crt/domainname.key
SSLCertificateChainFile /etc/ssl/crt/domainname.ca-bundle
SSLSessionCache dbm:/var/cache/httpd/ssl_cache

</VirtualHost>

Узнать больше о настройке веб-сервера Apache можно на сайте http://httpd.apache.org/docs-2.0/mod/mod_ssl.html

Проверить настройки можно используя веб-браузер. Используйте https-протокол (например, https://ваш сервер/) для просмотра кодированных страниц. Иконка браузера с изображением навесного замка отображается в виде закрытого замка, если ваш сертификат установлен корректно и сервер правильно настроен.


Директивы конфигурации веб-сервера Apache | Сетевые технологии

Приведены основные (не все) директивы управления работой веб-сервера Apache2, полное описание доступно на сайте http://httpd.apache.org/.

ServerType
Для этой директивы значением по умолчанию является ServerType standalone. Серверы, работающие в автономном режиме (standalone), запускаются из загрузочных сценариев при запуске системы. Такая установка рекомендуется для улучшения производительности.
В качестве альтернативы режиму standalone можно воспользоваться режимом inetd, который обеспечивается демоном inetd.
Port
В этой директиве задается номер сетевого порта, на котором будет работать ваш сервер, если он запущен в автономном режиме (если используется inetd, то номер порта следует задать в файле /etc/services). Значением по умолчанию для этой директивы является Port 80. Этот порт является стандартным для протокола HTTP (см. порты сетевых сервисов) и рекомендуется для использования на основном сервере вашего Web-узла.
HostnameLookups
Директива HostnameLookups указывает, записывается ли в журнальный файл доменное имя узла или только его IP-адрес. По умолчанию сервер сохраняет имя компьютера, но если ожидаемый объем трафика очень велик, отключение опции HostnameLookups позволит уменьшить нагрузку на сервер. Это делается простым изменением строки на HostnameLookups off.
User и Group
Эти параметры задают действительные идентификаторы пользователя и группы, которые присваиваются серверу, работающему в автономном режиме. По умолчанию в качестве имени пользователя принимается nobody, что является превосходным выбором с точки зрения защиты информации. Ни в коем случае нельзя запускать сервер с привилегиями суперпользователя (root).
В качестве идентификатора группы следует использовать идентификатор какой-нибудь нейтральной группы, имеющейся в системе. Часто используется группа news. Либо можно специально создать для сервера новую группу. Если указанные пользователь и группа не существуют в системе, сервер не будет работать.
ServerAdmin [email protected]
Официальный электронный адрес вебмастера вашего Web-узла.
ServerRoot
В этой директиве задается базовый каталог, в котором будет установлено программное обеспечение HTTP-сервера Apache.
BindAddress
Эта директива используется для компьютеров, имеющих несколько сетевых интерфейсов. С ее помощью можно устанавливать прослушивание сервером еще какого-то из IP-адресов компьютера. По умолчанию эта директива закомментирована, и сервер производит прослушивание всех адресов компьютера.
ErrorLog /usr/local/apache/logs/error_log и CustomLog /usr/local/apache/logs/access_log common
При помощи этих двух директив задается путь к log-файлам, в которых регистрируются ошибки и попытки доступа к серверу соответственно. В файле, указанном в директиве ErrorLog, сервер сохраняет сообщения диагностики, включая сообщения об ошибках, выдаваемые сценариями CGI. В файле, указанном в директиве CustomLog, сервер сохраняет все запросы клиентов. Если включена описанная выше опция HostnameLookups, то вместе с запросами регистрируются имена компьютеров.
ServerName
Директива ServerName позволяет задать имя хоста, возвращаемое клиенту. Имя, которое вы определяете здесь, должно быть зарегистрированным доменным именем вашего хоста. Если сервер не имеет зарегистрированного имени, вы можете указать здесь его адрес IP, но вам придется обращаться к нему по адресу (например, http://192.168.0.1/) и это может сильно осложнить переадресацию ресурсов.
Timeout
Это промежуток времени в секундах (по умолчанию &mdash 300), в течение которого сервер ждет продолжения недополученного запроса или продолжает попытки возобновления приостановленной передачи ответа.
KeepAlive
KeepAlive является свойством протокола HTTP 1.1, позволяющим ускорить обработку запросов путем удержания соединения и выполнения нескольких запросов. В HTTP 1.0 передача Web-страницы с четырьмя встроенными изображениями потребовала бы пять отдельных соединений, а с использованием KeepAlive все последовательные запросы производятся в рамках одного соединения. По умолчанию &mdsh; KeepAlive On
MaxClients
Директива MaxClients устанавливает максимальное число копий сервера, которые могут выполняться одновременно. Когда достигается этот предел (по умолчанию — 150), новые запросы получают отказ. Если вам не хочется отказывать пользователям, не устанавливайте слишком маленькое значение. Медленный ответ все-таки лучше, чем отказ от обслуживания.
Listen
Эта директива позволяет привязать Apache к конкретному адресу IP, и/или порту, в дополнение к порту, определенному по умолчанию.
DocumentRoot
В этой директиве задается каталог, из которого берутся передаваемые клиентам документы. Можно предоставлять клиентам и файлы, находящиеся в других каталогах, — для этого используются символьные ссылки.
UserDir public_html
Название каталога, которое прибавляется к именам пользовательских домашних каталогов при получении запроса ~user (напр.»http://www.example.com/~user»). Если не требуется использовать возможность пользовательских каталогов, следует указать UserDir DISABLED.
DirectoryIndex index.html
Эта директива позволяет задать название документа, возвращаемого по запросу, который не содержит в строке URI названия документа. Если вы указываете несколько имен, разделяйте их пробелами. Пример:
DirectoryIndex index.html index.php index.htm default.html
Сервер будет искать перечисленные файлы в соответствующем порядке.
IndexOptions FancyIndexing
При получении запроса на передачу каталога сервер Apache:
  • находит файл, указанный в директиве DirectoryIndex (если таковой существует), и передает его клиенту;
  • если файл DirectoryIndex не существует, передает клиенту оглавление каталога.

Если выбрана опция Fancylndexing, то в оглавлении используются значки и описания файлов. Если эта опция отключена, сервер представляет оглавление в более простом виде.
AccessFileName
Имя файла, который сервер ищет в каждом каталоге для определения прав доступа. По умолчанию — .htaccess (с точкой в начале).

Чтобы подсказать браузеру, какие файлы ему предстоит обрабатывать, сервер формирует определенный код типа документа, основываясь на спецификации MIME — Multipurpose Internet Mail Extensions — многоцелевые почтовые расширения Internet) и передает этот код в заголовке HTTP-протокола.

DefaultType
Директива DefaultType определяет MIME-тип, который будет использоваться для какого-либо документа, если сервер не сможет определить его по иным признакам, например по расширению. По умолчанию значение DefaultType — text/plain. Если большая часть файлов бинарники (программы, картинки и т.п.) стоит изменить значение на «application/octet-stream», чтобы предотвратить попытку браузера показать содержимое двоичного файла.
AddEncoding x-compress Z и AddEncoding x-gzip gz tgz
Эти директивы позволяют сжимать отдаваемые документы перед отправкой, что экономит трафик и ускоряет загрузку. Браузеры, поддерживающие эту возможность (Mozilla, SeaMonkey, FireFox), распаковывают полученные файлы «на лету».
Redirect
Директива Redirect позволяет переадресовать запрос к ранее существовавшему в именном пространстве сервера документу на его новый адрес. Пример:
Redirect http://example.com/old-location/test.html http://example.com/new-location/test.html
Alias
Директивы Alias дают возможность предоставлять доступ к документам, находящимся не только в корневом каталоге сервера (DocumentRoot) и его подкаталогах, но и в других каталогах. По умолчанию в директиве Alias задан только один псевдоним — /icons, используемый директивами Addlcon и AddIconByType. Обратите внимание, что если вы включаете завершающий слэш в «псевдоним», то сервер потребует его присутствия и в URL. Пример:
Alias /icons/ "/usr/local/apache/icons/"
ScriptAlias
Директива указывает каталог, который содержит серверные скрипты. Свойства ScriptAlias-ов такие же, как и у просто Alias-ов, кроме того, что документы в заданном директивой каталоге считаются приложениями и выполняются на сервере, а не отправляются клиенту. К директиве ScriptAlias применяются те  же правила в отношении завершающего «/», что и к Alias.Разрешается добавлять неограниченное число директив ScriptAlias. Примеры:
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
ScriptAlias /user1/ "/usr/home/user1/public_html/cgi-bin/"
AddType
Директива AddType позволяет добавить описания типов файлов (помимо MIME-types) и порядок их обработки. Примеры:
#файлы с расширением .shtml должны обрабатываться как html файлы
AddType text/html .shtml
#файлы с расширением .php должны запускаться как php файлы
AddType application/x-httpd-php .php
#файлы с расширением .html должны запускаться и как php файлы
AddType application/x-httpd-php .html
#файлы с расширением .pl должны запускаться как cgi файлы
AddType application/x-httpd-cgi .pl
AddHandler
Сервер Apache имеет возможности модификации файлов определенных типов перед отправкой их пользователю. Директива AddHandler ставит в соответствие расширению файла определенное действие. Например:
AddHandler server-parsed .shtml
включает поддержку технологии SSI (Server-side Includes) и Apache выполняет разбор файлов .shtm на предмет поиска в них директив SSI. Если изменить параметр так:
AddHandler server-parsed .html
то Apache будет парсить и .html-файлы.
Функция, указанная в директиве AddHandler, не обязательно должна являться встроенной функцией сервера. Директива Action может ставить в соответствие функции из AddHandler сценарий CGI. Например, следующие строки в файле srm.conf сначала указывают серверу, что функция foo поставлена в соответствие сценарию bar.pl, который всякий раз запускается при обращении к файлам с расширением .ext:
Action foo /user/cgi-bin/bar.pl
AddHandler foo .ext
ErrorDocument
Эта директива позволяет переопределить сообщения об ошибках, сопоставив в соответствие кодам ошибок HTTP-сервера текстовые сообщения и/или адреса URL на том же сервере. Например:
ErrorDocument 404 "Этого файла нет, не было и не будет на сервере!"
Options
Эта директива перечисляет список опций, применяемых к указанному каталогу. Опции могут иметь значения «None», «All» или любую комбинацию из «Indexes», «Includes», «FollowSymLinks», «ExecCGI» или «MultiViews». Например, такая конфигурация определяет порядок отображения индексной страницы, разрешает серверные включения (SSI) и переход по символьным ссылкам:
Options Indexes Includes FollowSymLinks
AllowOverride
С параметром none блокирует использование файла .htaccess, с параметром all — разрешает перекрывать дефолные настройки директивами из .htaccess.
Order
Директива, вместе с директивами Allow и Deny, определяющая порядок обращения к ресурсам в соответствии с правами доступа. Пример:
Order allow,deny
Allow from all

Анатольев А.Г., 06.08.2013

Постоянный адрес этой страницы:

Подключение HTTP-сервера Apache к Azure Sentinel

  • Чтение занимает 2 мин

В этой статье

Важно!

Соединитель HTTP-сервера Apache в настоящее время находится на этапе предварительной версии.The Apache HTTP Server connector is currently in PREVIEW. Ознакомьтесь с дополнительными условиями использования Microsoft Azure предварительных версий для дополнительных юридических условий, которые относятся к функциям Azure, которые доступны в бета-версии, предварительном просмотре или еще не выпущены в общедоступную версию.See the Supplemental Terms of Use for Microsoft Azure Previews for additional legal terms that apply to Azure features that are in beta, preview, or otherwise not yet released into general availability.

В этой статье объясняется, как подключить HTTP-сервер Apache к Azure Sentinel.This article explains how to connect your Apache HTTP Server to Azure Sentinel. Соединитель HTTP-сервера Apache позволяет легко получать журналы HTTP-сервера Apache в Azure Sentinel, чтобы можно было просматривать данные в книгах, запрашивать их для создания пользовательских оповещений и внедрять их для улучшения расследования.The Apache HTTP Server connector allows you to easily ingest your Apache HTTP Server logs to Azure Sentinel, so that you can view the data in workbooks, query it to create custom alerts, and incorporate it to improve investigation. Интеграция между сервером Apache HTTP и Azure Sentinel использует локальную обработку файлов агентом Log Analytics.Integration between Apache HTTP Server and Azure Sentinel makes use of local file processing by the Log Analytics agent.

Примечание

Данные будут храниться в географическом расположении рабочей области, на которой вы используете метку Azure.Data will be stored in the geographic location of the workspace on which you are running Azure Sentinel.

Предварительные условияPrerequisites

  • У вас должно быть разрешение на запись в рабочей области «Sentinel» Azure.You must have write permission on the Azure Sentinel workspace.

Настройка и интеграция журналов HTTP-сервера Apache с помощью агента Log AnalyticsConfigure and integrate Apache HTTP Server logs via Log Analytics agent

Настройте HTTP-сервер Apache для отправки файлов журнала в рабочую область Azure с помощью агента Log Analytics.Configure Apache HTTP Server to send log files to your Azure workspace via the Log Analytics agent. Настройка агента Log Analytics для чтения файлов журнала HTTP-сервера Apache.Configure Log Analytics agent to read Apache HTTP Server log files.

  1. Следуйте инструкциям по https://httpd.apache.org/docs/2.4/logs.html настройке расположения файлов журнала на сервере Apache HTTP.Follow instructions at https://httpd.apache.org/docs/2.4/logs.html to set up log files location in Apache HTTP Server.

  2. В меню навигации меток Azure выберите соединители данных , а затем выберите http-сервер Apache (Предварительная версия).In the Azure Sentinel navigation menu, select Data connectors and then select Apache HTTP Server (Preview).

  3. Выберите открыть страницу соединителя.Select Open connector page.

  4. Следуйте инструкциям на странице HTTP-сервера Apache.Follow the instructions on the Apache HTTP Server page.

Поиск данныхFind your data

После установки успешного подключения данные отображаются в Log Analytics в разделе ApacheHTTPServer_CL.After a successful connection is established, the data appears in Log Analytics under ApacheHTTPServer_CL.

Проверка подключенияValidate connectivity

После того, как журналы начнут отображаться в Log Analytics, может пройти до 20 минут.It may take up to 20 minutes until your logs start to appear in Log Analytics.

Дальнейшие действияNext steps

В этом документе вы узнали, как подключить HTTP-сервер Apache к Azure Sentinel.In this document, you learned how to connect Apache HTTP Server to Azure Sentinel. Ознакомьтесь с дополнительными сведениями об Azure Sentinel в соответствующих статьях.To learn more about Azure Sentinel, see the following articles:

Главный файл настроек Apache. httpd.conf.

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

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

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

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

Это самый главный настроечный файл в Apache (есть и другие настроечные файлы).

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

Где же найти этот файл?

Есть несколько вариантов, как это можно сделать. 

Один из вариантов обратиться по этому адресу:

https://wiki.apache.org/httpd/DistrosDefaultLayout

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

Можете перейти по ссылке, которая соответствует вашей операционной системе и посмотрите на путь, где находится файл httpd.conf.

 

Другой способ узнать положение файла httpd.conf — это воспользоваться вот такой командой, которую нужно ввести в командную строку в вашей операционной системе: 

httpd -V

В результатах выполнения этой команды самым последним параметром вы можете увидеть положение файла httpd.conf.

Файл httpd.conf — это обычный текстовый файл и мы можем его открыть и редактировать в любом текстовом редакторе или консольном текстовом редакторе.

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

И один важный момент.

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

Имейте в виду этот момент. 

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

httpd — сервер протокола передачи гипертекста Apache

См. Также

httpd [- d serverroot ] [- f config ] [- C директива ] [- c директива ] [- D параметр ] [- e уровень ] [- E файл ] [ -k start | restart | graceful | stop | graceful-stop] [- ч ] [- l ] [- L ] [- S ] [- t ] [- v ] [- V ] [- X ] [- M ] [- T ]

В системах Windows доступны следующие дополнительные аргументы:

httpd [- к установить | config | удалить] [- n имя ] [- w ]

-d serverroot
Установите начальное значение для директивы ServerRoot на serverroot .Это может быть отменено ServerRoot директива в файле конфигурации. По умолчанию / usr / local / apache2 .
-f конфигурация
Использует директивы из файла config при запуске. Если config не начинается с /, тогда он считается путь относительно ServerRoot . По умолчанию конф. / Httpd.conf .
-k start | restart | graceful | stop | graceful-stop
Сигналы httpd для запуска, перезапуска или остановки.См. Дополнительную информацию в разделе «Остановка Apache httpd».
-C директива
Обработать конфигурацию , директива перед чтением конфигурационные файлы.
-c Директива
Обработать конфигурацию , директива после чтения config файлы.
-D параметр
Устанавливает параметр конфигурации , который может использоваться с разделов в файлах конфигурации для условного пропуска или обработки команд при запуске и перезапуске сервера.Также может использоваться для установки определенных менее распространенные параметры запуска, включая -DNO_DETACH (предотвратить разветвление родителя) и -DFOREGROUND (запретить родителю вызывать setsid () и др.).
-e уровень
Устанавливает LogLevel на уровень при запуске сервера. Это полезно для временно увеличивая подробность сообщений об ошибках, чтобы найти проблемы при запуске.
-E файл
Отправлять сообщения об ошибках при запуске сервера в файл .
-h
Вывести краткую сводку доступных параметров командной строки.
-l
Вывести список модулей, скомпилированных на сервере. Это будет , а не список динамически загружаемых модулей, включенных с помощью директива LoadModule .
-L
Вывести список директив, предоставляемых статическими модулями, вместе с ожидаемыми аргументами и места, где действует директива. Директивы, предоставляемые общими модулями, не перечислены.
Дамп списка загруженных статических и общих модулей.
-S
Показать настройки, проанализированные из файла конфигурации (в настоящее время только показывает настройки виртуального хоста).
-T (доступно в 2.3.8 и более поздних версиях)
Пропустить проверку корня документа при запуске / перезапуске.
Запускать синтаксические тесты только для файлов конфигурации. Программа немедленно завершает работу после этих тестов синтаксического анализа с кодом возврата 0 (синтаксис ОК) или код возврата не равен 0 (синтаксическая ошибка).Если -D DUMP _ VHOSTS также установлен, детали виртуального хоста конфигурация будет напечатана. Если -D СБРОС _ МОДУЛИ установлен, все загруженные модули будут напечатаны.
-v
Распечатайте версию httpd и выйдите.
Распечатайте версию и параметры сборки httpd и затем выйдите.
-X
Запустите httpd в режиме отладки.Будет запущен только один рабочий, и сервер не отключается от консоли.

Следующие аргументы доступны только на платформе Windows:

-k установить | config | удалить
Установите Apache httpd как службу Windows NT; изменить параметры запуска для служба Apache httpd; и удалите службу Apache httpd.
наименование
Имя службы Apache httpd для передачи сигналов.
-w
Не закрывайте окно консоли при ошибке, чтобы сообщение об ошибке могло быть прочитанным.

Модули Apache httpd — Проект HTTP-сервера Apache

На следующей странице выделены некоторые модули, которые HTTP-сервер Apache Поддержки проекта, которые не включены в основной дистрибутив. Для подробный список сторонних модулей см. modules.apache.org.

Неужели ваша CGI-производительность оставляет желать лучшего? Mod_perl просто слишком много усилия для размещения ваших сценариев CGI? Вы хотите запустить PHP приложения вне процессов вашего веб-сервера? FastCGI — это решение для тебя!

mod_fcgid — это реализация FastCGI для Apache HTTP Server 2.0 и позже, который направляет запросы к процессам приложения FastCGI, которые он управляет.

Когда HTTP-сервер Apache не является http: сервером? Когда он обслуживает то же самое веб-контент через запрос протокола ftp:!

Этот код в настоящее время выпущен в виде бета-версии. Волонтеры особенно востребованы для проверки функциональности IPv6 (поддержка EPRT и EPSV).

Устали синхронизировать записи DNS и конфигурационные IP-адреса и CNAME-адреса Apache? Позвольте Apache обслуживать ваш DNS на основе вашего httpd.conf! Проверять mod_domain .

Этот экспериментальный код имеет , а не , но он доступен вам. из репозитория разработки Subversion.

Хотите создавать почтовые архивы с помощью Apache HTTPd 2.x? Проверять mod_mbox .

Этот экспериментальный код имеет , а не , но он доступен вам. из репозитория разработки Subversion. В настоящее время он используется ASF для предоставления наших архивов электронной почты браузер.

Хотите узнать, как Apache httpd-2.0 может обрабатывать различные протоколы? Играйте с mod_pop3 .

Этот экспериментальный код имеет , а не , но он доступен вам. из репозитория разработки Subversion.

Инструментальное устройство HTTP-сервера Apache для ARM4 API

Этот экспериментальный код имеет , а не , но он доступен вам. из репозитория разработки Subversion.

Этот экспериментальный код имеет , а не , но он доступен вам. из репозитория разработки Subversion.

Обслуживайте SMTP на Apache с помощью mod_smtpd .

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

Модуль mod_aspdotnet удален проектом httpd. Каждый ASF проект требует нескольких разработчиков, а в этом проекте не хватало участвующие разработчики остаются под эгидой ASF.Развитие был возобновлен первоначальными авторами в своем новом доме, mod-aspdotnet Проект SourceForge. Примечание НИКАКОЙ дополнительной поддержки или усилий по этому модулю со стороны httpd по всем вопросам обращайтесь к пользователю проекта SourceForge и списки развития.

Проект Quetzalcoatl mod_python был удален на чердак. Примечание НИКАКОЙ дополнительной поддержки или усилий по этому модулю со стороны httpd см. дополнительную информацию на странице с информацией о чердаке ниже.Ты может также пожелать исследовать mod_wsgi , еще одну попытку за пределами ASF.

apache / httpd: зеркало HTTP-сервера Apache. Выпуски: http://issues.apache.org

                          HTTP-сервер Apache

  Что это?
  -----------

  HTTP-сервер Apache - это мощный и гибкий, совместимый с HTTP / 1.1.
  веб сервер. Первоначально разработан как замена NCSA HTTP
  Server, он стал самым популярным веб-сервером на
  Интернет.В рамках проекта Apache Software Foundation
  разработчики стремятся совместно разрабатывать и поддерживать надежную,
  коммерческий, стандартный сервер со свободно доступным
  исходный код.

  Последняя версия
  ------------------

  Подробную информацию о последней версии можно найти в Apache HTTP.
  страницу серверного проекта по адресу http://httpd.apache.org/.

  Документация
  -------------

  Документация, доступная на дату выпуска этого выпуска:
  включены в формате HTML в каталог docs / manual /.Большинство
  актуальную документацию можно найти на
  http://httpd.apache.org/docs/trunk/.

  Монтаж
  ------------

  См. Файл под названием INSTALL. Примечания к платформе могут быть
  можно найти в README.platforms.

  Лицензирование
  ---------

  См. Файл LICENSE.

  Уведомление о криптографическом программном обеспечении
  -----------------------------

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

  Министерство торговли США, Промышленное бюро и
  Security (BIS) классифицировал это программное обеспечение как Export Commodity.
  Контрольный номер (ECCN) 5D002.C.1, который включает информационную безопасность
  программное обеспечение, использующее или выполняющее криптографические функции с асимметричным
  алгоритмы.Форма и характер этого Apache Software Foundation
  распространение дает право на экспорт в соответствии с Исключением из лицензии
  Исключение для неограниченного программного обеспечения ENC Technology (TSU) (см. BIS
  Правила экспортного контроля, раздел 740.13) для обоих объектов
  код и исходный код.

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

    Apache httpd 2.0 и более поздние версии включают модуль mod_ssl в
       модули / ssl /
    для настройки и прослушивания соединений через зашифрованный SSL
    сетевые сокеты, выполняя вызовы универсального шифрования
    библиотека, такая как OpenSSL или зависящая от платформы ОС
    Возможности SSL.Кроме того, некоторые версии apr-util предоставляют абстрактный интерфейс.
    для симметричных криптографических функций, которые используют
    универсальная библиотека шифрования, такая как OpenSSL, NSS или
    средства операционной системы, зависящие от платформы. Этот интерфейс
    известный как интерфейс apr_crypto, с реализацией ниже
    / криптографический каталог. Интерфейс apr_crypto используется
    модуль mod_session_crypto доступен в
      модулей / сеанс
    для дополнительного шифрования информации о сеансе.Некоторые дистрибутивы объектного кода Apache httpd, обозначенные
    слово «крипто» в названии пакета может включать объектный код для
    Библиотека шифрования OpenSSL, распространяемая в форме с открытым исходным кодом от
    .

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

     o Если вы хотите получать информацию о новых выпусках кода, исправлениях ошибок,
       исправления безопасности, общие новости и информация о сервере Apache
       подпишитесь на список рассылки apache-announce, как описано в разделе
       

     o Если вам нужна бесплатная поддержка для запуска Apache, см.
       ресурсы на 

     o Если у вас есть конкретный отчет об ошибке для Apache, см. инструкции
       для сообщений об ошибках на 

     o Если вы хотите участвовать в активной разработке Apache, пожалуйста,
       подпишитесь на список рассылки `[email protected] ', как описано на
       

 

Страница руководства: httpd — HTTP-сервер Apache

Страница руководства: httpd — HTTP-сервер Apache
  НАЗВАНИЕ 
     httpd - сервер протокола передачи гипертекста Apache

  ОБЗОР 
       httpd  [-  X ] [-  R   libexecdir ] [-  d   serverroot ] [-  f   config 
     ] [-  C   директива ] [-  c   директива ] [-  D   параметр ]

       httpd  [-  h ] [-  l ] [-  L ] [-  v ] [-  V ] [-  S ] [-  t ] [-  T 
     ]

  ОПИСАНИЕ 
       httpd  - это протокол передачи гипертекста Apache (HTTP)
     серверная программа.Он предназначен для работы в автономном режиме.
     демон процесс. При таком использовании он создаст пул
     дочерние процессы для обработки запросов. Чтобы остановить это, отправьте СРОК
     сигнал исходному (родительскому) процессу. PID этого про-
     cess записывается в файл, как указано в конфигурации
     файл. В качестве альтернативы  httpd  может быть вызван через Интернет.
     демон inetd (8) каждый раз при подключении к службе HTTP
     сделан.

     На этой странице руководства перечислены только аргументы командной строки.Для
     подробности о директивах, необходимых для настройки  httpd , см.
     руководство по Apache, которое является частью дистрибутива Apache
     или его можно найти на http://www.apache.org/. Пути в этом
     Руководство может не отражать те, которые скомпилированы в  httpd. 

  ОПЦИИ 
     -  R   libexecdir 
                 Эта опция доступна, только если Apache был
                 построенный с включенным правилом  SHARED  _  CORE , которое
                 принудительно помещает основной код Apache в
                 файл динамического общего объекта (DSO).Этот файл
                 поиск по жестко заданному пути в ServerRoot
                 по умолчанию. Используйте эту опцию, если хотите
                 переопределить это.

     -  d   serverroot 
                 Установите начальное значение для директории ServerRoot.
                 tive на  serverroot . Это может быть отменено
                 команда ServerRoot в конфигурации
                 файл. По умолчанию -  / usr / local / apache .-  f   config  Выполнить команды из файла  config  on
                 запускать. Если конфигурация   не начинается с /, тогда
                 считается, что это путь относительно Сервера -
                 Корень. По умолчанию  conf / httpd.conf .

     -  C   директива 
                 Обработайте конфигурацию , директиву  перед чтением.
                 ing файлы конфигурации.

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

     -  h  Вывести краткую сводку доступной командной строки
                 параметры.

     -  l  Вывести список модулей, скомпилированных в
                 сервер.-  L  Вывести список директив вместе с
                 ожидаемые аргументы и места, где
                 тив действителен.

     -  S  Показать настройки, проанализированные из файла конфигурации
                 (в настоящее время показывает только настройки виртуального хоста).

     -  t  Запускать синтаксические тесты только для файлов конфигурации.
                 Программа немедленно завершает работу после этого синтаксиса
                 синтаксический анализ с кодом возврата 0 (синтаксис
                 ОК) или код возврата не равен 0 (Синтаксис
                 Ошибка).-  T  То же, что опция -  t , но не проверяет конфигурацию
                 основные корни документов.

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

     -  v  Распечатайте версию  httpd  и выйдите.

     -  V  Распечатать версию и параметры сборки  httpd 
                 , а затем выйдите. ФАЙЛОВ 
       /usr/local/apache/conf/httpd.conf 
       /usr/local/apache/conf/srm.conf 
       /usr/local/apache/conf/access.conf 
       /usr/local/apache/conf/mime.types 
       / usr / местный / apache / conf / magic 
       / usr / локальный / apache / журналы / error_log 
       / usr / локальный / apache / журналы / access_log 
       /usr/local/apache/logs/httpd.pid 

  СМОТРИ ТАКЖЕ 
       инетд  (8).

 

Как установить веб-сервер Apache на CentOS 7

Не используете CentOS 7?

Выберите другую версию или дистрибутив. CentOS 7

Введение

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

В этом руководстве вы установите веб-сервер Apache с виртуальными хостами на свой сервер CentOS 7.

Предварительные требования

Для выполнения этого руководства вам понадобится следующее:

Шаг 1. Установка Apache

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

Как пользователь sudo без полномочий root, настроенный в предварительных условиях, обновите локальный индекс пакета Apache httpd , чтобы отразить последние изменения восходящего потока:

  

После обновления пакетов установите пакет Apache:

  

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

Если вы выполнили дополнительные рекомендуемые действия для новых серверов CentOS 7, упомянутые в разделе предварительных требований, у вас будет установлен firewalld на вашем сервере, и вам нужно будет открыть порт 80 , чтобы Apache мог обслуживать запросы через HTTP. .Если вы еще этого не сделали, вы можете сделать это, включив службу http firewalld с помощью следующей команды:

  
  • sudo firewall-cmd --permanent --add-service = http

Если вы планируете настроить Apache для обслуживания контента через HTTPS, вы также захотите открыть порт 443 , включив службу https :

  
  • sudo firewall-cmd --permanent --add-service = https

Затем перезагрузите брандмауэр, чтобы новые правила вступили в силу:

  
  • sudo firewall-cmd --reload

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

Шаг 2. Проверка вашего веб-сервера

Apache не запускается автоматически в CentOS после завершения установки. Вам нужно будет запустить процесс Apache вручную:

  
  • sudo systemctl start httpd

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

  
  • sudo systemctl статус httpd

Вы увидите активный статус , когда служба запущена:

  

Вывод

Перенаправление в / bin / systemctl status httpd.услуга ● httpd.service - HTTP-сервер Apache. Загружено: загружено (/usr/lib/systemd/system/httpd.service; включено; предустановка поставщика: отключено) Активен: активен (работает) с 20.02.2019 01:29:08 UTC; 5с назад Документы: мужчина: httpd (8) мужчина: apachectl (8) Основной PID: 1290 (httpd) Статус: «Обработка запросов ...» CGroup: /system.slice/httpd.service ├─1290 / usr / sbin / httpd -DFOREGROUND ├─1291 / usr / sbin / httpd -DFOREGROUND ├─1292 / usr / sbin / httpd -DFOREGROUND ├─1293 / usr / sbin / httpd -DFOREGROUND ├─1294 / usr / sbin / httpd -DFOREGROUND └─1295 / usr / sbin / httpd -DFOREGROUND ...

Как видно из этих выходных данных, служба, похоже, была запущена успешно. Однако лучший способ проверить это — запросить страницу у Apache.

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

Введите в командной строке вашего сервера:

  

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

В качестве альтернативы вы можете использовать curl для запроса вашего IP-адреса с icanhazip.com , который предоставит вам ваш общедоступный IPv4-адрес, видимый из другого места в Интернете:

  

Когда у вас есть IP-адрес вашего сервера, введите его в адресную строку браузера:

  http: // ваш_сервер_ip
  

Вы увидите веб-страницу CentOS 7 Apache по умолчанию:

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

Шаг 3. Управление процессом Apache

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

Чтобы остановить ваш веб-сервер, введите:

  
  • sudo systemctl остановить httpd

Чтобы запустить веб-сервер, когда он остановлен, введите:

  
  • sudo systemctl start httpd

Чтобы остановить, а затем снова запустить службу, введите:

  
  • sudo systemctl перезапустить httpd

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

  
  • sudo systemctl перезагрузить httpd

По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если это не то, что вам нужно, отключите это поведение, набрав:

  
  • sudo systemctl отключить httpd

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

  
  • sudo systemctl включить httpd

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

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

Шаг 4. Настройка виртуальных хостов (рекомендуется)

При использовании веб-сервера Apache вы можете использовать виртуальных хостов (аналогично серверным блокам в Nginx) для инкапсуляции деталей конфигурации и размещения более одного домена с одного сервера.На этом этапе вы создадите домен с именем example.com , но вам следует заменить его своим собственным доменным именем. Чтобы узнать больше о настройке доменного имени с помощью DigitalOcean, см. Наше Введение в DigitalOcean DNS.

В

Apache на CentOS 7 по умолчанию включен один серверный блок, настроенный для обслуживания документов из каталога / var / www / html . Хотя это хорошо работает для одного сайта, это может стать громоздким, если вы размещаете несколько сайтов. Вместо изменения / var / www / html вы создадите структуру каталогов в пределах / var / www для примера .com , оставив / var / www / html в качестве каталога по умолчанию, который будет обслуживаться, если запрос клиента не соответствует другим сайтам.

Создайте каталог html для example.com следующим образом, используя флаг -p для создания любых необходимых родительских каталогов:

  
  • sudo mkdir -p /var/www/example.com/html

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

  
  • sudo mkdir -p / var / www / example.com / log

Затем назначьте владельца каталога html с помощью переменной среды $ USER :

  
  • sudo chown -R $ USER: $ USER /var/www/example.com/html

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

  
  • sudo chmod -R 755 / var / www

Затем создайте образец страницы index.html , используя vi или свой любимый редактор:

  
  • sudo vi / var / www / example.ru / html / index.html

Нажмите i , чтобы переключиться в режим INSERT и добавьте в файл следующий образец HTML:

/var/www/example.com/html/index.html

  
  
     Добро пожаловать на Example.com! 
  
  
     

Успех! Виртуальный хост example.com работает!

Сохраните и закройте файл, нажав ESC , набрав : wq и нажав ENTER .

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

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

  
  • sudo mkdir / etc / httpd / sites-available / etc / httpd / sites-enabled

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

  
  • sudo vi / etc / httpd / conf / httpd.конф

Добавьте эту строку в конец файла:

  IncludeOptional sites-enabled / *. Conf
  

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

Начните с создания нового файла в каталоге sites-available :

  
  • sudo vi /etc/httpd/sites-available/example.com.conf

Добавьте следующий блок конфигурации и измените пример .com на ваше доменное имя:

/etc/httpd/sites-available/example.com.conf

  
    ServerName www.example.com
    ServerAlias ​​example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog /var/www/example.com/log/error.log
    CustomLog /var/www/example.com/log/requests.log в сочетании

  

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

Сохраните и закройте файл, когда закончите.

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

  
  • sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

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

Шаг 5. Настройка разрешений SELinux для виртуальных хостов (рекомендуется)

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

Существуют разные способы установки политик в зависимости от потребностей вашей среды, поскольку SELinux позволяет вам настраивать уровень безопасности. На этом шаге будут рассмотрены два метода настройки политик Apache: универсальный и для определенного каталога. Настройка политик для каталогов более безопасна и поэтому является рекомендуемым подходом.

Универсальная настройка политик Apache

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

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

  
  • sudo setsebool -P httpd_unified 1

Команда setsebool изменяет логические значения SELinux. Флаг -P обновит значение времени загрузки, сохраняя это изменение при перезагрузках. httpd_unified - это логическое значение, которое сообщает SELinux обрабатывать все процессы Apache как один и тот же тип, поэтому вы включили его со значением 1 .

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

Индивидуальная установка разрешений SELinux для каталога /var/www/example.com/log даст вам больше контроля над политиками Apache, но может также потребовать дополнительного обслуживания. Поскольку этот параметр не является универсальной настройкой политик, вам нужно будет вручную установить тип контекста для любых новых каталогов журналов, указанных в конфигурациях вашего виртуального хоста.

Сначала проверьте тип контекста, который SELinux дал / var / www / example.com / log , каталог:

  
  • sudo ls -dZ /var/www/example.com/log/

Эта команда выводит список и выводит на печать контекст SELinux каталога. Вы увидите результат, подобный следующему:

  

Выход

drwxr-xr-x. корень root unlimited_u: object_r: httpd_sys_content_t: s0 /var/www/example.com/log/

Текущий контекст - httpd_sys_content_t , который сообщает SELinux, что процесс Apache может читать только файлы, созданные в этом каталоге.В этом руководстве вы измените тип контекста каталога /var/www/example.com/log на httpd_log_t . Этот тип позволит Apache создавать и добавлять в файлы журнала веб-приложений:

  
  • sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"

Затем используйте команду restorecon , чтобы применить эти изменения и сохранить их при перезагрузках:

  
  • sudo restorecon -R -v / var / www / example.com / log

Флаг -R запускает эту команду рекурсивно, что означает, что он обновит все существующие файлы для использования нового контекста. Флаг -v напечатает изменения контекста, выполненные командой. Вы увидите следующий вывод, подтверждающий изменения:

  

Выходные данные

restorecon reset /var/www/example.com/log context unlimited_u: object_r: httpd_sys_content_t: s0-> unlimited_u: object_r: httpd_log_t: s0

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

  
  • sudo ls -dZ / var / www / example.com / log /

Выходные данные отражают обновленный тип контекста:

  

Выход

drwxr-xr-x. корень root unlimited_u: object_r: httpd_log_t: s0 /var/www/example.com/log

Теперь, когда в каталоге /var/www/example.com/log используется тип httpd_log_t , вы готовы протестировать конфигурацию виртуального хоста.

Шаг 6. Тестирование виртуального хоста (рекомендуется)

После обновления контекста SELinux любым методом Apache сможет писать в / var / www / example.com / log каталог. Теперь вы можете успешно перезапустить службу Apache:

  
  • sudo systemctl перезапустить httpd

Перечислите содержимое каталога /var/www/example.com/log , чтобы узнать, создал ли Apache файлы журнала:

  
  • ls -lZ /var/www/example.com/log

Вы увидите, что Apache смог создать файлы error.log и requests.log , указанные в конфигурации виртуального хоста:

  

Выход

-rw-r - r--.1 корень корень 0 26 февраля 22:54 error.log -rw-r - r--. 1 корень root 0 26 февраля 22:54 requests.log

Теперь, когда у вас настроен виртуальный хост и обновлены разрешения SELinux, Apache будет обслуживать ваше доменное имя. Вы можете проверить это, перейдя на http://example.com , где вы должны увидеть что-то вроде этого:

Это подтверждает, что ваш виртуальный хост успешно настроен и обслуживает контент. Повторите шаги 4 и 5, чтобы создать новые виртуальные хосты с разрешениями SELinux для дополнительных доменов.

Заключение

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

Если вы хотите создать более полный стек приложений, вы можете прочитать в этой статье о том, как настроить стек LAMP в CentOS 7.

Страница не найдена | MIT

Перейти к содержанию ↓
  • Образование
  • Исследовать
  • Инновации
  • Прием + помощь
  • Студенческая жизнь
  • Новости
  • Выпускников
  • О MIT
  • Подробнее ↓
    • Прием + помощь
    • Студенческая жизнь
    • Новости
    • Выпускников
    • О MIT
Меню ↓ Поиск Меню Ой, похоже, мы не смогли найти то, что вы искали!
Попробуйте поискать что-нибудь еще! Что вы ищете? Увидеть больше результатов

Предложения или отзывы?

Веб-сервер Apache HTTPD - Подробная информация и установка

Автор Jithin 23 декабря, 2016

Apache HTTPD - один из наиболее часто используемых веб-серверов в Интернете.HTTP-сервер Apache - это бесплатное программное обеспечение / веб-сервер с открытым исходным кодом для Unix-подобных систем и других операционных систем. Веб-сервер - это демон, который использует протокол http (s), текстовый протокол для отправки и получения объектов через сетевое соединение. Протокол http передается по сети в виде открытого текста, по умолчанию используется порт 80 / TCP (хотя могут использоваться и другие порты). Существует также версия протокола с шифрованием TLS / SSL, называемая https, которая по умолчанию использует порт 443 / TCP. Базовый http-обмен имеет клиентское соединение с сервером.Затем он запрашивает ресурс с помощью команды GET. Существуют и другие команды, такие как HEAD и POST, позволяющие клиентам запрашивать только метаданные для ресурса или отправлять серверу дополнительную информацию.
Apache имеет настраиваемые сообщения об ошибках, базы данных аутентификации на основе СУБД и согласование содержимого. Он также поддерживается несколькими графическими пользовательскими интерфейсами (GUI), которые позволяют более простую и интуитивно понятную настройку сервера. В процессе обмена http клиент начинает с запроса ресурса (команда GET), а затем выполняет некоторые дополнительные заголовки, сообщая серверу, какие типы кодирования он может принимать, какой язык он предпочитает и т. Д.Запрос заканчивается пустой строкой. Затем сервер отвечает кодом состояния, за которым следует список заголовков. Заголовок Content-Type является обязательным, сообщая клиенту, какой тип содержимого отправляется. После завершения заголовков сервер отправляет пустую строку, за которой следует запрошенный контент. Длина этого содержимого должна соответствовать длине, указанной в заголовке Content-Length.

В то время как протокол http поначалу кажется простым, реализация всего протокола вместе с мерами безопасности, поддержка клиентов, не полностью соблюдающих стандарт, и поддержка динамически генерируемых страниц - непростая задача.Вот почему большинство разработчиков приложений не пишут свои собственные веб-серверы, а вместо этого пишут свои приложения для запуска за веб-сервером, таким как Apache HTTPD, реализуя полностью настраиваемый и расширяемый веб-сервер с полной поддержкой HTTP. Функциональность httpd можно расширить с помощью модулей, небольших фрагментов кода, которые подключаются к основной структуре веб-сервера и расширяют ее функциональность. Зависимостью пакета http по умолчанию является пакет httpd-tools. Этот пакет включает инструменты для управления картами паролей и базами данных, инструменты для преобразования IP-адресов в файлах журнала в имена хостов, а также инструмент для эталонного тестирования и стресс-тестирования веб-серверов.

Установить службу Apache / httpd под Linux

1) Чтобы установить сервер Apache в Fedora / RHEL / Cent OS Linux, используйте следующую команду.

$ yum установить httpd

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

$ chkconfig httpd на
$ /etc/init.d/httpd start

2) Чтобы установить сервер apache в Red Hat Enterprise Linux, используйте следующую команду.

$ yum установить httpd

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

$ chkconfig httpd на
$ /etc/init.d/httpd start

3) Чтобы установить сервер Apache в Debian Linux, используйте следующую команду.

$ apt-get install apache2
$ /etc/init.d/apache2 start

Задача: Хранить файлы / загружать файлы для вашего веб-сайта

1) Вам необходимо загрузить файлы в / var / www / html в операционной системе RHEL / CentOS / Fedora Linux.

2) Вам необходимо загрузить файлы в / var / www / в операционной системе Debian или Ubuntu Linux.

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

После установки группы пакетов веб-сервера или пакета http конфигурация по умолчанию записывается в /etc/httpd/conf/httpd.conf (RHEL / Cent OS / Fedora Core Linux) или /etc/apache2/httpd.conf ( Debian / Ubuntu Linux).

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

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