====== 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 Приведите его содержимое к следующему виду: # Запретить переход по IP адресу ServerName Ваш IP адрес сервера Redirect 403 / ServerName mysite.ru ServerAlias www.mysite.ru ServerAdmin admin@localhost DocumentRoot /var/www/mysite/public_html AllowOverride All Require all granted Redirect permanent / https://mysite.ru/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined Далее включите сайт следующей командой: sudo a2ensite mysite И перезапустите Apache: sudo systemctl restart apache2 На этом этапе настройка виртуального хоста завершена. Для того, чтобы проверить корректность его работы, создаём индексный файл сайта: sudo nano /var/www/mysite/public_html/index.html Вносим в него любой HTML-код для проверки и сохраните документ: Например: Удалось!

Виртуальный хост работает!

Выключить сайт можно следующей командой: sudo a2dissite mysite Перезапустите Apache: sudo systemctl restart apache2