Apache2

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

apache2 (Apache HTTP Server) – веб-сервер, который представляет собой программное обеспечение с открытым исходным кодом. Он используется для размещения веб-сайтов и доступа к ним.

Благодаря модульной структуре Apache обладает гибкостью и расширяемостью, а также надёжностью и стабильностью работы. Apache поддерживается многими операционными системами, в том числе ОС ALT Linux.

Установка сервера в ALT Linux

Установка

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

# apt-get install apache2

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

# apt-get install lamp-server

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

  • Apache2
  • PHP
  • MariaDB

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

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

Управление службой

Команды
Запуск # systemctl start httpd2 # apachectl start
Остановка # systemctl stop httpd2 # apachectl stop
Перезапуск # systemctl restart httpd2 # apachectl restart
Отключение автозагрузки # systemctl disable httpd2
Включение автозагрузки # systemctl enable httpd2
Перезапуск службы без сброса соединений # systemctl reload httpd2
Состояние службы # systemctl status httpd2
Версия Apache # httpd2 -v
Содержимое юнита $ systemctl cat httpd2

Более подробную информацию об apachectl можно посмотреть командой man apachectl.

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

Настройка

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

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

Опции

Структура файлов

Основные файлы Apache в ALT Linux лежат в /etc/httpd2/.

# ls /etc/httpd2/ -l
итого 4
drwxr-xr-x 18 root root 4096 янв 15 11:20 conf
lrwxrwxrwx  1 root root   21 июл 29 14:51 lock -> ../../var/lock/httpd2
lrwxrwxrwx  1 root root   20 июл 29 14:51 logs -> ../../var/log/httpd2
lrwxrwxrwx  1 root root   31 июл 29 14:51 modules -> ../../usr/lib64/apache2/modules
lrwxrwxrwx  1 root root   20 июл 29 14:51 run -> ../../var/run/httpd2
lrwxrwxrwx  1 root root   31 июл 29 14:51 uploads -> ../../var/spool/apache2/uploads

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

# ls /etc/httpd2/conf/
addon.d          httpd2.conf  mods-available  ports-available  sites-enabled
extra-available  include      mods-enabled    ports-enabled    sites-start.d
extra-enabled    magic        mods-start.d    ports-start.d    ssl.crt
extra-start.d    mime.types   original        sites-available  ssl.key

Основными компонентами конфигурации являются:

  • модули (mods)
  • дополнительная конфигурация (extra)
  • порты (ports)
  • сайты (sites).

Они же в свою очередь делятся на:

  • включенные (enabled)
  • доступные (available)
  • стартовые (start.d).

Стартовые компоненты хранятся в /etc/httpd2/conf/{mods,sites,port,extra}-start.d/*.conf.

Включенные и стартовые компоненты являются символическими ссылками из available.

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 - адрес домена
  • site1 - имя хоста
  • 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

Создаем файл:

# mcedit /var/www/vhosts/host1/index.html
<!DOCTYPE html>
<html>
	<head>
		<title>Тестовая страница Host1</title>
	</head>
<body>
	<header>
		<h1>Тестовая страница Host1</h1>
	</header>
	<h2>Привет HTML и JavaScript</h2>
	<p>После этой строки будем писать контент и вставлять тестируемый код</p>
	
</body>
</html>
# mcedit /var/www/vhosts/site1/index.html
<!DOCTYPE html>
<html>
	<head>
		<title>Тестовая страница Site1</title>
	</head>
<body>
	<header>
		<h1>Тестовая страница Site1</h1>
	</header>
	<h2>Привет HTML и JavaScript</h2>
	<p>После этой строки будем писать контент и вставлять тестируемый код</p>
	
</body>
</html>

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

# chmod 755 -R /var/www/vhosts/host1
# chmod 755 -R /var/www/vhosts/site1
Примечание: Обратите внимание, в данном примере должен быть адрес с http, без s!


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

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

Удаление