Apache2

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
Примечание: Страница еще не завершена! Она может содержать неточности и ошибки.
Apache Http Server
Altenter-menu-apache.png
Появился в: 1995
Оф. сайт: httpd.apache.org
Репозиторий ALT Linux apache2
Лицензия: Apache License 2.0

Apache Httpd - свободный веб-сервер.

Установка

Apache2 можно установить как отдельно:

# apt-get install apache2

Так и в наборе LAMP:

# apt-get install lamp-server

В данном случае будут установлены:

  • Apache2
  • PHP
  • MariaDB

Включаем и запускаем службы Apache и MySQL:

# systemctl enable --now httpd2
# systemctl enable --now mysqld

Настройка

Файлы конфигурации Apache хранятся в /etc/httpd2/conf/.

Основной файл конфигурации /etc/httpd2/conf/httpd2.conf включает в себя различные другие файлы настроек и конфигураций.

Опции

httpd2.conf

Пользователь и группа

Данный параметр задается в файле /etc/httpd2/conf/httpd2.conf

User apache2
Group apache2

По соображениям безопасности, как только Apache запускается под root (напрямую или через сценарии запуска), он переключается на эти UID и GID. Пользователь по умолчанию — apache2 создается автоматически во время установки.

Уровень логов

Данный параметр задается в файле /etc/httpd2/conf/httpd2.conf

LogLevel warn

Существуют следующие уровни логирования:

  • emerg: критическая ситуация, аварийный сбой, система находится в нерабочем состоянии.
  • alert: сложная предаварийная ситуация, необходимо срочно принять меры.
  • crit: критические проблемы, которые необходимо решить.
  • error: произошла ошибка.
  • warn: предупреждение; в системе что-то произошло, но причин для беспокойства нет.
  • notice: система в норме, но стоит обратить внимание на её состояние.
  • info: важная информация, которую следует принять к сведению.
  • Debug: информация для отладки, которая может помочь определить проблему.
  • trace[1-8]: Трассировка информации различных уровней детализации.

ports-enabled

Порт

Данный параметр задается в файле /etc/httpd2/conf/ports-enabled/http.conf

Listen 80

Этим параметром задается порт, который будет слушать Apache. Для доступа в Интернет через роутер необходимо перенаправлять порт.

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

Listen 127.0.0.1:80.

sites-available

Администратор

Данный параметр задается в файле /etc/httpd2/conf/sites-available/default.conf

ServerAdmin you@example.com

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

Корневой каталог

Данный параметр задается в файле /etc/httpd2/conf/sites-available/default.conf

По-умолчанию сайт хранится в /var/www/html/. Но этот путь можно заменить на свой.

Откройте в текстовом редакторе от суперпользователя файл /etc/httpd2/conf/sites-available/default.conf.

Замените в строке DocumentRoot "/var/www/html/" путь на свой.

extra-available

Timeout

Данный параметр задается в файле /etc/httpd2/conf/extra-available/httpd-default.conf

Timeout 300

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

Передача нескольких файлов за соединение

Данные параметры задаются в файле /etc/httpd2/conf/extra-available/httpd-default.conf


KeepAlive On

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


MaxKeepAliveRequests 100

Данный параметр указывает максимальное количество запросов за одно соединение (обычно чем больше, тем лучше).


KeepAliveTimeout 5

В данном параметре указывается таймаут соединения. Обычно для загрузки страницы достаточно 5-10 секунд.

IP вместо доменных имен в логах

Данный параметр задается в файле /etc/httpd2/conf/extra-available/httpd-default.conf

HostnameLookups On

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

Виртуальный хостинг

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

Например, DNS-имена:

  • host1.petr.ru
  • site1.petr.ru

посылают на 10.4.4.41, а Apache сам решает в какой каталог одного сервера направлять эти запросы.

Шаг 1: Регистрируем домены на один IP адрес

На AD/DNS-сервере

Для внешнего сайта необходимо зарегистрировать домен на регистраторе, для внутреннего на Bind.

Если домен на Samba, то командой:

# samba-tool dns add 10.4.4.173 petr.ru site1 A 10.4.4.41

Где:

  • 10.4.4.173 - адрес контроллера домена
  • petr.ru - адрес домена
  • host1 - имя хоста
  • A - тип записи
  • 10.4.4.41 - адрес хоста

По аналогии:

# samba-tool dns add 10.4.4.173 petr.ru host1 A 10.4.4.41

Адреса host1.petr.ru и site1.petr.ru будут отображать страницу index сервера Apache или приветственную страницу ALT Linux, в зависимости от того, что у вас установлено.

Примечание: В приведенных примерах необходимо заменить host1.petr.ru на имя вашего реального домена. Только в этом случае файл будет указывать веб-серверу, где найти корневой каталог сайта и куда необходимо сохранять журналы ошибок и обращений к сайту.


На Apache-сервере

Потом прописываем на сервере адреса в hosts:

# mcedit /etc/hosts
10.4.4.41   host1.petr.ru
10.4.4.41   site1.petr.ru

Выполняем:

/etc/chroot.d/resolv.all

Тестируем с клиентского компьютера от имени простого пользователя:

$ ping host1.petr.ru
$ ping site1.petr.ru

Пинг должен попадать на IP-адрес сервера.

Шаг 2: Разрешаем загружать виртуальные сайты

В файле /etc/httpd2/conf/sites-start.d/000-default.conf:

ports_all=yes
default=yes
vhosts=no

Необходимо изменить последнюю строку:

vhosts=yes

Для применения изменений запустить:

# a2chkconfig

Шаг 3: Прописываем виртуальные хосты

Примечание: Обратите внимание! В директиве ServerName нужно указать полное доменное имя сайта


В файле /etc/httpd2/conf/sites-available/vhosts.conf дописываем

 <VirtualHost *:80>
 #ServerAdmin webmaster@dummy-host.example.com
 DocumentRoot /var/www/vhosts/host1
 ServerName host1.petr.ru
 ErrorLog /var/log/httpd2/host1-error_log
 CustomLog /var/log/httpd2/host1-access_log common
 </VirtualHost>
 #
 <VirtualHost *:80>
 #ServerAdmin webmaster@dummy-host.example.com
 DocumentRoot /var/www/vhosts/site1
 ServerName site1.petr.ru
 ErrorLog /var/log/httpd2/site1-error_log
 CustomLog /var/log/httpd2/site1-access_log common
 </VirtualHost>

Шаг 4: Создаем домашние каталоги виртуальных хостов

В /var/www/vhosts создаем два каталога host1 и site1, в которых размещаем разные тестовые веб-страницы.

# mkdir -p /var/www/vhosts/host1
# mkdir -p /var/www/vhosts/site1

Назначаем права:

# chmod 755 -R /var/www/vhosts/host1
# chmod 755 -R /var/www/vhosts/site1

Заходим со своего рабочего настольного компьютера

и в каждом видим свою тестовую страницу.

Удаление