Это старая версия документа!
Содержание
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
