Быстрая установка веб-сервера Apache
Что такое Apache и зачем нужен
Apache по сути - программное обеспечение, которое служит своего рода посредником, между сервером на котором хранятся файлы и браузером пользователя. Пользователь через браузер посылает запрос на сервер, Apache обрабатывает этот запрос и выдает требуемые файлы. При помощи Apache мы видим страницы в интернете.
Установка Apache
Apache доступен в репозиториях Debian по умолчанию, и поэтому его можно установить с помощью стандартных инструментов управления пакетами.
Код: Выделить всё
sudo apt update
sudo apt upgrade -y
sudo apt install apache2 -y
Если установлен и активирован брандмауэр UFW, а он должен быть активным. Нужно добавить правила, чтобы была связь с Apache. Проверим открыты ли порты 80 и 443
Код: Выделить всё
sudo ufw status verbose
Код: Выделить всё
sudo ufw allow "WWW Full"
Если не установлен Fail2ban устанавливаем, включаем джайлы для Apache.
По умолчанию джайлы для Apache разделены на несколько частей, находятся под общим закомментированым названием HTTP servers, сделаем файл в каталоге
Код: Выделить всё
sudo nano /etc/fail2ban/jail.d/apache.conf
Код: Выделить всё
# выявляем неудачные попытки ввода пароля
[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
Закомментировал правило [apache-auth] потому что оно меня блокирует, когда редактирую страницы в вордпресс. Причины выясняю. Можно не комментировать, а добавить строчку в этом джайле ignoreip = мой_айпи. Но это не вариант, потому что у меня динамический айпи, каждый раз сюда бегать и править не вариант.
В плагине WP-Security- Файрвол убрал галку Полностью блокировать доступ к XMLRPC и все заработало, точнее меня файл2бан перестал банить.
Проверка конфигурации и перезапуск Fail2ban
После любых изменений в конфигурации необходимо ее проверить командой:
Код: Выделить всё
sudo fail2ban-client -d
Код: Выделить всё
sudo systemctl restart fail2ban
Чтобы узнать запущена ли служба Apache выполнить простую команду
Код: Выделить всё
sudo systemctl status apache2
Код: Выделить всё
sudo nano /etc/apache2/apache2.conf
Сохраняем файл Ctrl+O , Enter, и закрываем Ctrl+X
Проверка синтаксиса Apache
Код: Выделить всё
sudo apachectl configtest
После чего поднять первый тост за локалхост и рестартануть Apache именно рестарт, с релоадом почему то новые настройки не проглотились.
Код: Выделить всё
sudo systemctl restart apache2
Теперь можно посмотреть, что по умолчанию видно в браузере, если обратиться к серверу по его айпи адресу. Если не знаем ip сервера смотрим командой hostname -I. Набираем в браузере высветившийся ip и наслаждаемся первой страницей вашего сервера.
Команды управления Apache
Остановка веб-сервера
Код: Выделить всё
sudo systemctl stop apache2
Код: Выделить всё
sudo systemctl start apache2
Код: Выделить всё
sudo systemctl restart apache2
По умолчанию Apache автоматически загружается при старте системы, можно выключить автозапуск.
Код: Выделить всё
sudo systemctl disable apache2
Код: Выделить всё
sudo systemctl enable apache2
Размещение содержимого сайтов
По умолчанию контент размещается в каталоге /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 указывает, насколько детальные записи регистрируются в журналах ошибок.