====== Apache HTTP Server ====== ---- ===== О Apache ===== Apache HTTP Server - Веб-сервер с открытым исходным кодом. Является кроссплатформенным ПО и поддерживает операционные системы Linux, BSD, macOS, Windows, Novell NetWare, BeOS. ===== Установка Apache ===== Устанавливаем Apache: sudo apt install apache2 Проверьте статус Apache: sudo systemctl status apache2 Вывод в терминале: ● apache2.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; preset: enabled) Active: active (running) since Sat 2026-10-17 16:35:23 MSK; 2 days ago Invocation: ddd9e7e69be84ec99f52d55f98d241bf Docs: https://httpd.apache.org/docs/2.4/ Process: 69229 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCE> Main PID: 41357 (apache2) Tasks: 11 (limit: 2301) Memory: 421.3M (peak: 547.8M) CPU: 17min 45.759s CGroup: /system.slice/apache2.service ├─41357 /usr/sbin/apache2 -k start ├─72467 /usr/sbin/apache2 -k start ├─72476 /usr/sbin/apache2 -k start ├─72477 /usr/sbin/apache2 -k start ├─72503 /usr/sbin/apache2 -k start ├─72504 /usr/sbin/apache2 -k start ├─72505 /usr/sbin/apache2 -k start ├─72506 /usr/sbin/apache2 -k start ├─72507 /usr/sbin/apache2 -k start ├─72508 /usr/sbin/apache2 -k start └─72509 /usr/sbin/apache2 -k start окт 17 16:48:05 WebHosting systemd[1]: Reloading apache2.service - The Apache HTTP Serv> окт 17 16:48:05 WebHosting systemd[1]: Reloaded apache2.service - The Apache HTTP Serve> lines 1-33/33 (END) Добавить Apache в автозагрузку: sudo systemctl enable apache2 Удалить Apache из автозагрузки: sudo systemctl disable apache2 Запуск Apache: sudo systemctl start apache2 Перезапуск Apache: sudo systemctl restart apache2 Остановить Apache: sudo systemctl stop 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