Что такое Apache и зачем нужен
Apache по сути - программное обеспечение, которое служит своего рода посредником, между сервером на котором хранятся файлы и браузером пользователя. Пользователь через браузер посылает запрос на сервер, Apache обрабатывает этот запрос и выдает требуемые файлы. При помощи Apache мы видим страницы в интернете.
Установка Apache
Apache доступен в репозиториях Debian по умолчанию, и поэтому его можно установить с помощью стандартных инструментов управления пакетами.
sudo apt update
sudo apt upgrade -y
sudo apt install apache2 -y
Открытие портов для веб-сервера Apache
Если установлен и активирован брандмауэр UFW, а он должен быть активным. Нужно добавить правила, чтобы была связь с Apache. Проверим открыты ли порты 80 и 443
sudo ufw status verbose
Если нет, то откроем
sudo ufw allow "WWW Full"
Дополнительная защита веб-сервера Apache
Если не установлен Fail2ban устанавливаем, включаем джайлы для Apache.
По умолчанию джайлы для Apache разделены на несколько частей, находятся под общим закомментированым названием HTTP servers, сделаем файл в каталоге
sudo nano /etc/fail2ban/jail.d/apache.conf
и включим некоторые из джайлов для сервера Apache.
# выявляем неудачные попытки ввода пароля
[apache-auth]
enabled = true
port = http,https
logpath = %(apache_error_log)s
maxretry = 3
bantime = 24h
# выявляем потенциальные сканирования для применения эксплойтов и php уязвимостей
[apache-noscript]
enabled = true
port = http,https
logpath = %(apache_error_log)s
maxretry = 3
bantime = 24h
# выявляем попытки переполнения Apache
[apache-overflows]
enabled = true
port = http,https
logpath = %(apache_error_log)s
maxretry = 2
bantime = 24h
# выявляем неудачные попытки в поиске домашней директории на сервере
[apache-nohome]
enabled = true
port = http,https
logpath = %(apache_error_log)s
maxretry = 2
bantime = 24h
Сохранить файл Ctrl+O Enter, закрыть Ctrl+X
Закомментировал правило [apache-auth] потому что оно меня блокирует, когда редактирую страницы в вордпресс. Причины выясняю. Можно не комментировать, а добавить строчку в этом джайле ignoreip = мой_айпи. Но это не вариант, потому что у меня динамический айпи, каждый раз сюда бегать и править не вариант.
В плагине WP-Security- Файрвол убрал галку Полностью блокировать доступ к XMLRPC и все заработало, точнее меня файл2бан перестал банить.
Проверка конфигурации и перезапуск Fail2ban
После любых изменений в конфигурации необходимо ее проверить командой:
sudo fail2ban-client -d
Перезапустить Fail2ban , что бы изменения вступили в силу.
sudo systemctl restart fail2ban
Проверка работы сервера Apache
Чтобы узнать запущена ли служба Apache выполнить простую команду
sudo systemctl status apache2
Увидим зелененькую точку, значит сервис запущен. А так же ошибку AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message Ничего страшного в этом нет, но чтоб не мозолило глаза исправим. Всего то нужно нужно добавить ServerName директиву для конфигурации Apache.
sudo nano /etc/apache2/apache2.conf
Добавить строчку в конце ServerName 127.0.0.1 или ServerName localhost
Сохраняем файл Ctrl+O , Enter, и закрываем Ctrl+X
Проверка синтаксиса Apache
sudo apachectl configtest
Перезапуск сервера Apache
После чего поднять первый тост за локалхост и рестартануть Apache именно рестарт, с релоадом почему то новые настройки не проглотились.
sudo systemctl restart apache2
Страница веб-сервера по умолчанию
Теперь можно посмотреть, что по умолчанию видно в браузере, если обратиться к серверу по его айпи адресу. Если не знаем ip сервера смотрим командой hostname -I. Набираем в браузере высветившийся ip и наслаждаемся первой страницей вашего сервера.
Команды управления Apache
Посмотреть все активные виртуальные хосты
sudo apache2ctl -S
Или
ls /etc/apache2/sites-enabled/
Активировать или деактивировать сайт/виртуальный хост
sudo a2ensite
, sudo a2dissite
Активировать или деактивировать файл конфигурации
sudo a2enconf
, sudo a2disconf
Активировать или деактивировать модуль
sudo a2enmod
, sudo a2dismod
Остановка веб-сервера
sudo systemctl stop apache2
Запуск вебсервера
sudo systemctl start apache2
Остановка и запуск
sudo systemctl restart apache2
Перезагрузка apache2
sudo systemctl reload apache2
После любых изменений в конфигурации воспользоваться такой командой.
Restart останавливает службу и заново запускает. Reload даёт команду службе перечитать файлы конфигурации без остановки работы.
Выключение автозапуска
По умолчанию Apache автоматически загружается при старте системы, можно выключить автозапуск.
sudo systemctl disable apache2
Включение автозапуска
sudo systemctl enable apache2
Справочник по файлам Apache
Размещение содержимого сайтов
По умолчанию контент размещается в каталоге /var/www/html. Лучше создать другой каталог, например разместить сайты в каталоге пользователя /home/user/www создав директорию
mkdir ~/www
Потом в при создании виртуального хоста укажем новую директорию, где будет размещен контент.
Файлы конфигурации
/etc/apache2: каталог конфигурации Apache. Здесь хранятся все файлы конфигурации Apache.
/etc/apache2/apache2conf: главный файл конфигурации Apache. Его можно изменить для внесения изменений в глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов в каталоге конфигурации.
/etc/apache2/ports.conf: этот файл задает порты, которые будет прослушивать Apache. По умолчанию Apache прослушивает порта 80, а если активирован модуль с функциями SSL, он также прослушивает порт 443.
/etc/apache2/sites-available/: каталог, где можно хранить виртуальные хосты для каждого сайта. Apache не будет использовать файлы конфигурации из этого каталога, если они не будут связаны с каталогом sites-enabled. Обычно все изменения конфигурации серверных блоков выполняются в этом каталоге, а затем активируются посредством ссылки на другой каталог с помощью команды a2ensite.
/etc/apache2/sites-enabled/: каталог, где хранятся активные виртуальные хосты для каждого сайта. Обычно они создаются посредством создания ссылок на файлы конфигурации из каталога sites-available с помощью команды a2ensite. Apache считывает файлы конфигурации и ссылки из этого каталога при запуске или перезагрузке, когда компилируется полная конфигурация.
/etc/apache2/conf-available/, /etc/apache2/conf-enabled/: эти каталоги имеют те же отношения, что и каталоги sites-available и sites-enabled, но используются для хранения фрагментов конфигурации, которые не принадлежат виртуальному хосту. Файлы из каталога conf-available можно активировать с помощью команды a2enconf и отключить с помощью команды a2disconf.
/etc/apache2/mods-available/, /etc/apache2/mods-enabled/: эти каталоги содержат доступные и активированные модули соответственно. Файлы с расширением .load содержат фрагменты для загрузки определенных модулей, а файлы с расширением .conf содержат конфигурации этих модулей. Модули можно активировать и отключать с помощью команд a2enmod и a2dismod.
Журналы сервера
/var/log/apache2/access.log: по умолчанию каждый запрос веб-сервера регистрируется в этом файле журнала, если Apache не настроен по другому.
/var/log/apache2/error.log: по умолчанию все ошибки регистрируются в этом файле. Директива LogLevel в конфигурации Apache указывает, насколько детальные записи регистрируются в журналах ошибок.
Комментарии