linux:servers:apache
Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| linux:servers:apache [2026/10/03 10:49] – создано Кирилл Молчанов | linux:servers:apache [2026/10/20 12:54] (текущий) – Кирилл Молчанов | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== Apache HTTP Server ====== | ||
| + | ---- | ||
| + | |||
| + | ===== О Apache ===== | ||
| + | |||
| + | Apache HTTP Server - Веб-сервер с открытым исходным кодом. Является кроссплатформенным ПО и поддерживает операционные системы Linux, BSD, macOS, Windows, Novell NetWare, BeOS. | ||
| + | |||
| + | ===== Установка Apache ===== | ||
| + | |||
| + | Устанавливаем Apache: | ||
| + | <code bash> | ||
| + | sudo apt install apache2 | ||
| + | </ | ||
| + | |||
| + | Проверьте статус Apache: | ||
| + | <code bash> | ||
| + | sudo systemctl status apache2 | ||
| + | </ | ||
| + | |||
| + | Вывод в терминале: | ||
| + | < | ||
| + | ● apache2.service - The Apache HTTP Server | ||
| + | | ||
| + | | ||
| + | | ||
| + | Docs: https:// | ||
| + | Process: 69229 ExecReload=/ | ||
| + | Main PID: 41357 (apache2) | ||
| + | Tasks: 11 (limit: 2301) | ||
| + | | ||
| + | CPU: 17min 45.759s | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | окт 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 в автозагрузку: | ||
| + | <code bash> | ||
| + | sudo systemctl enable apache2 | ||
| + | </ | ||
| + | |||
| + | Удалить Apache из автозагрузки: | ||
| + | <code bash> | ||
| + | sudo systemctl disable apache2 | ||
| + | </ | ||
| + | |||
| + | Запуск Apache: | ||
| + | <code bash> | ||
| + | sudo systemctl start apache2 | ||
| + | </ | ||
| + | |||
| + | Перезапуск Apache: | ||
| + | <code bash> | ||
| + | sudo systemctl restart apache2 | ||
| + | </ | ||
| + | |||
| + | Остановить Apache: | ||
| + | <code bash> | ||
| + | sudo systemctl stop apache2 | ||
| + | </ | ||
| + | |||
| + | Откройте порты Http Https в межсетевом экране UFW: | ||
| + | <code bash> | ||
| + | sudo ufw allow 80,443/tcp | ||
| + | </ | ||
| + | |||
| + | ===== Настройка Apache ===== | ||
| + | |||
| + | Проверить синтаксис: | ||
| + | <code bash> | ||
| + | sudo apachectl configtest | ||
| + | </ | ||
| + | |||
| + | Вывод в терминале: | ||
| + | < | ||
| + | AH00558: apache2: Could not reliably determine the server' | ||
| + | Syntax OK | ||
| + | </ | ||
| + | |||
| + | Для исправления ошибки с кодом **AH00558** добавляем в конфигурационный файл **/ | ||
| + | |||
| + | < | ||
| + | ServerName 127.0.0.1 | ||
| + | </ | ||
| + | |||
| + | Редактируем файл **/ | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | Сохраняем файл. | ||
| + | |||
| + | Перезапустите Apache: | ||
| + | <code bash> | ||
| + | sudo systemctl restart apache2 | ||
| + | </ | ||
| + | |||
| + | Снова проверяем синтаксис: | ||
| + | <code bash> | ||
| + | sudo apachectl configtest | ||
| + | </ | ||
| + | |||
| + | Вывод в терминале: | ||
| + | < | ||
| + | Syntax OK | ||
| + | </ | ||
| + | |||
| + | ===== Скрытие конфиденциальной информации о Apache ===== | ||
| + | |||
| + | Скрытие конфиденциальной информации о Apache у пользователя. Такой как: | ||
| + | |||
| + | * Имя сервера | ||
| + | * Версия Apache | ||
| + | * Операционная система | ||
| + | |||
| + | ==== О директивах ==== | ||
| + | |||
| + | ServerSignature - Эта директива позволяет добавить строку нижнего колонтитула, | ||
| + | |||
| + | У ServerSignature есть три значения: | ||
| + | |||
| + | * **On** - Позволяет добавлять строку нижнего колонтитула в сгенерированные сервером документы | ||
| + | * **Off** - Отключает нижний колонтитул | ||
| + | * **EMail** - Создает ссылку «mailto:» которая отправляет письмо на ServerAdmin указанного документа | ||
| + | |||
| + | ServerTokens - Эта директива определяет, | ||
| + | |||
| + | ServerTokens имеет следующие значения: | ||
| + | |||
| + | ^ ServerTokens | ||
| + | | **Full** (or not specified) | Apache/ | ||
| + | | **Prod** [uctOnly] | Apache | | ||
| + | | **Major** | Apache/2 | | ||
| + | | **Minor** | Apache/2.4 | | ||
| + | | **Min** | Apache/ | ||
| + | | **OS** | Apache/ | ||
| + | |||
| + | Чтобы скрыть номер версии веб-сервера, | ||
| + | |||
| + | Открываем файл конфигурации веб-сервера Apache **/ | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | И добавляем/ | ||
| + | <code bash> | ||
| + | ServerTokens Prod | ||
| + | ServerSignature Off | ||
| + | </ | ||
| + | |||
| + | После чего сохраняем файл \\ | ||
| + | Сохранить файл **Ctrl+O** \\ | ||
| + | Выход из редактора **Ctrl+X** | ||
| + | |||
| + | ===== Настройка хоста Apache ===== | ||
| + | |||
| + | Установите права доступа на директорию **www**: | ||
| + | <code bash> | ||
| + | sudo chmod -R 775 /var/www | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | sudo chown -R $USER:$USER /var/www | ||
| + | </ | ||
| + | |||
| + | Добавляем нашего пользователя в группу **www-data**: | ||
| + | <code bash> | ||
| + | sudo usermod -aG www-data $USER | ||
| + | </ | ||
| + | |||
| + | Добавляем пользователя **www-data** в группу нашего пользователя: | ||
| + | <code bash> | ||
| + | sudo usermod -aG $USER www-data | ||
| + | </ | ||
| + | |||
| + | Создаём новую директорию сайта (в примере используется mysite, укажите вместо него удобное вам имя сайта / директории): | ||
| + | <code bash> | ||
| + | sudo mkdir / | ||
| + | </ | ||
| + | <code bash> | ||
| + | sudo mkdir / | ||
| + | </ | ||
| + | |||
| + | Загружаем файлы нашего сайта в директорию public_html: | ||
| + | |||
| + | Даём им права владельца **www-data**: | ||
| + | <code bash> | ||
| + | sudo chown -R www-data: | ||
| + | </ | ||
| + | |||
| + | ===== Включаем хост ===== | ||
| + | |||
| + | По умолчанию Apache содержит стандартный файл конфигурации 000-default.conf, | ||
| + | |||
| + | Сначала отключите стандартный файл конфигурации командой: | ||
| + | <code bash> | ||
| + | sudo a2dissite 000-default | ||
| + | </ | ||
| + | |||
| + | После чего создайте конфигурационный файл нового хоста: | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | Приведите его содержимое к следующему виду: | ||
| + | |||
| + | <code apache> | ||
| + | # Запретить переход по IP адресу | ||
| + | < | ||
| + | ServerName Ваш IP адрес сервера | ||
| + | Redirect 403 / | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | ServerName mysite.ru | ||
| + | ServerAlias www.mysite.ru | ||
| + | ServerAdmin admin@localhost | ||
| + | |||
| + | DocumentRoot / | ||
| + | < | ||
| + | AllowOverride All | ||
| + | Require all granted | ||
| + | Redirect permanent / https:// | ||
| + | </ | ||
| + | |||
| + | ErrorLog ${APACHE_LOG_DIR}/ | ||
| + | CustomLog ${APACHE_LOG_DIR}/ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Далее включите сайт следующей командой: | ||
| + | <code bash> | ||
| + | sudo a2ensite mysite | ||
| + | </ | ||
| + | |||
| + | И перезапустите Apache: | ||
| + | <code bash> | ||
| + | sudo systemctl restart apache2 | ||
| + | </ | ||
| + | |||
| + | На этом этапе настройка виртуального хоста завершена. | ||
| + | |||
| + | Для того, чтобы проверить корректность его работы, | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | Вносим в него любой HTML-код для проверки и сохраните документ: | ||
| + | |||
| + | Например: | ||
| + | |||
| + | <code html> | ||
| + | < | ||
| + | < | ||
| + | <meta http-equiv=" | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Выключить сайт можно следующей командой: | ||
| + | <code bash> | ||
| + | sudo a2dissite mysite | ||
| + | </ | ||
| + | |||
| + | Перезапустите Apache: | ||
| + | <code bash> | ||
| + | sudo systemctl restart apache2 | ||
| + | </ | ||
