KirMol Wiki

Добро пожаловать в KirMol Wiki

Инструменты пользователя

Инструменты сайта


linux:servers:apache

Это старая версия документа!


Apache HTTP Server


О Apache

Apache HTTP Server - Веб-сервер с открытым исходным кодом. Является кроссплатформенным ПО и поддерживает операционные системы Linux, BSD, macOS, Windows, Novell NetWare, BeOS.

Установка Apache

Устанавливаем Apache:

sudo apt install apache2

Добавляем Apache в автозагрузку:

sudo systemctl enable apache2

Запускаем Веб-сервер Apache:

sudo systemctl start apache2

Смотрим статус:

sudo systemctl status apache2

Разрешаем порты Http Https в UFW:

sudo ufw allow 80,443/tcp

Настройка Apache

Проверяем синтаксис:

sudo apachectl configtest

Вывод в терминале:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using fe80::b049:8eff:febe:8027%eth0. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Для исправления ошибки с кодом AH00558 добавляем в конфигурационный файл /etc/apache2/apache2.conf следующую строку:

ServerName 127.0.0.1

Редактируем файл /etc/apache2/apache2.conf:

sudo nano /etc/apache2/apache2.conf

Сохраняем файл.

Перезапустите Apache:

sudo systemctl restart apache2

Снова проверяем синтаксис:

sudo apachectl configtest

Вывод в терминале:

Syntax OK

Скрытие конфиденциальной информации о Apache

Скрытие конфиденциальной информации о Apache у пользователя. Такой как:

  • Имя сервера
  • Версия Apache
  • Операционная система

О директивах

ServerSignature - Эта директива позволяет добавить строку нижнего колонтитула, которая отображает имя сервера и номер версии в сгенерированных сервером документах, таких как сообщения об ошибках, списки каталогов mod_proxy ftp, вывод mod_info и многом другом.

У ServerSignature есть три значения:

  • On - Позволяет добавлять строку нижнего колонтитула в сгенерированные сервером документы
  • Off - Отключает нижний колонтитул
  • EMail - Создает ссылку «mailto:» которая отправляет письмо на ServerAdmin указанного документа

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

ServerTokens имеет следующие значения:

ServerTokens Информация, которая показывается у клиента
Full (or not specified) Apache/2.4.2 (Unix) PHP/4.2.2 MyMod/1.2
Prod [uctOnly] Apache
Major Apache/2
Minor Apache/2.4
Min Apache/2.4.2
OS Apache/2.4.2 (Unix)

Чтобы скрыть номер версии веб-сервера, сведения об операционной системе сервера, установленных модулях Apache и т.д.

Открываем файл конфигурации веб-сервера Apache /etc/apache2/apache2.conf:

sudo nano /etc/apache2/apache2.conf

И добавляем/изменяем строки приведённые ниже:

ServerTokens Prod
ServerSignature Off

После чего сохраняем файл
Сохранить файл Ctrl+O
Выход из редактора Ctrl+X

Настройка хоста Apache

Установите права доступа на директорию www:

sudo chmod -R 775 /var/www
sudo chown -R $USER:$USER /var/www

Добавляем нашего пользователя в группу www-data:

sudo usermod -aG www-data $USER

Добавляем пользователя www-data в группу нашего пользователя:

sudo usermod -aG $USER www-data

Создаём новую директорию сайта (в примере используется mysite, укажите вместо него удобное вам имя сайта / директории):

sudo mkdir /var/www/mysite
sudo mkdir /var/www/mysite/public_html

Загружаем файлы нашего сайта в директорию public_html:

Даём им права владельца www-data:

sudo chown -R www-data:www-data /var/www/mysite/public_html

Включаем хост

По умолчанию Apache содержит стандартный файл конфигурации 000-default.conf, который хранится в директории /etc/apache2/sites-available. Файлы новых виртуальных хостов будут храниться здесь же.

Сначала отключите стандартный файл конфигурации командой:

sudo a2dissite 000-default

После чего создайте конфигурационный файл нового хоста:

sudo nano /etc/apache2/sites-available/mysite.conf

Приведите его содержимое к следующему виду:

<VirtualHost *:80>
ServerName mysite.ru
ServerAlias www.mysite.ru
ServerAdmin admin@localhost
 
DocumentRoot /var/www/mysite/public_html
<Directory /var/www/mysite/public_html>
AllowOverride All
Require all granted
Redirect permanent / https://mysite.ru/
</Directory>
 
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Далее включите сайт следующей командой:

sudo a2ensite mysite

И перезапустите Apache:

sudo systemctl restart apache2

На этом этапе настройка виртуального хоста завершена.

Для того, чтобы проверить корректность его работы, создаём индексный файл сайта:

sudo nano /var/www/mysite/public_html/index.html

Вносим в него любой HTML-код для проверки и сохраните документ:

Например:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Удалось!</title>
</head>
<body>
<h1>Виртуальный хост работает!</h1>
</body>
</html>

Выключить сайт можно следующей командой:

sudo a2dissite mysite

Перезапустите Apache:

sudo systemctl restart apache2
linux/servers/apache.1782133867.txt.gz · Последнее изменение: Кирилл М