📄 Apache2
1. Описание
Apache HTTP Server (или просто Apache) — это мощный, гибкий и широко используемый веб-сервер с открытым исходным кодом. В данном документе описаны основные шаги по установке, настройке и управлению Apache2 на операционной системе Ubuntu/Debian.
2. Установка Apache2
2.1 Обновление системы
sudo apt update && sudo apt upgrade -y
2.2 Установка Apache2
sudo apt install apache2 -y
2.3 Проверка статуса
sudo systemctl status apache2
Если сервис работает, вы увидите статус active (running)
.
3. Базовая настройка
3.1 Структура директорий Apache2
- /var/www/html — корневая директория сайта по умолчанию.
- /etc/apache2/apache2.conf — главный конфигурационный файл.
- /etc/apache2/sites-available/ — конфигурации виртуальных хостов.
- /etc/apache2/sites-enabled/ — активированные сайты.
- /etc/apache2/mods-available/ — доступные модули.
- /etc/apache2/mods-enabled/ — активные модули.
- /var/log/apache2/ — логи сервера (
access.log
,error.log
).
3.2 Перезагрузка и перезапуск
sudo systemctl reload apache2
sudo systemctl restart apache2
4. Настройка виртуального хоста
4.1 Создание директории сайта
sudo mkdir -p /var/www/example.com/public_html
4.2 Создание конфигурации
Создайте файл:
sudo nano /etc/apache2/sites-available/example.com.conf
Пример содержимого:
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
4.3 Активация сайта
sudo a2ensite example.com.conf
sudo systemctl reload apache2
5. Работа с модулями
Apache поддерживает модульную архитектуру. Некоторые популярные модули:
mod_rewrite
— ЧПУmod_ssl
— HTTPSmod_headers
,mod_expires
— кэшированиеmod_deflate
— сжатие
5.1 Включение/отключение модулей
sudo a2enmod rewrite headers deflate ssl
sudo a2dismod ssl
sudo systemctl restart apache2
6. Настройка брандмауэра (UFW)
Разрешить доступ через порты 80 и 443:
sudo ufw allow 'Apache Full'
Проверить:
sudo ufw status
7. Настройка SSL/TLS с Let’s Encrypt
7.1 Установка Certbot
sudo apt install certbot python3-certbot-apache
7.2 Получение сертификата
sudo certbot --apache -d example.com -d www.example.com
Certbot автоматически обновит конфигурацию Apache для HTTPS.
7.3 Автоматическое обновление сертификатов
sudo systemctl status certbot.timer
8. Логирование и диагностика
8.1 Логи
- Access log:
/var/log/apache2/access.log
- Error log:
/var/log/apache2/error.log
8.2 Анализ ошибок
tail -f /var/log/apache2/error.log
9. Полезные команды
Команда | Описание |
---|---|
sudo systemctl status apache2 |
Проверка статуса сервера |
sudo apachectl configtest |
Проверка конфигурации |
sudo a2ensite example.com |
Активировать сайт |
sudo a2dissite example.com |
Деактивировать сайт |
sudo a2enmod ssl |
Включить модуль |
sudo a2dismod ssl |
Выключить модуль |
10. Безопасность
- Отключите тестовую страницу Apache:
bash sudo rm /var/www/html/index.html
- Используйте
.htaccess
для защиты каталогов паролем:bash sudo htpasswd -c /path/.htpasswd username
Пример использования в .htaccess
:
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /path/.htpasswd
Require valid-user