Быстрая установка веб-сервера Apache

Обсуждение, отзывы, пожелания к статьям в разделе Сервер
Только администрация может создавать темы.
Сообщения могут писать все посетители.
Ответить
Admin
Администратор
Администратор
Сообщения: 18
Зарегистрирован: 25 апр 2022, 16:14

Быстрая установка веб-сервера Apache

Сообщение Admin »

Обсуждение статьи Apache веб-сервер Debian

Быстрая установка веб-сервера Apache

Что такое 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 systemctl stop apache2
Запуск вебсервера

Код: Выделить всё

sudo systemctl start apache2
Остановка и запуск

Код: Выделить всё

sudo systemctl restart apache2
Выключение автозапуска

По умолчанию 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 указывает, насколько детальные записи регистрируются в журналах ошибок.
Ответить