Как установить Apache (HTTPD) в CentOS Stream

centos Applications

Apache HTTP Server, широко известный как Apache, - ведущий веб-сервер, разработанный компанией Apache Software Foundation. Он является ключевой частью инфраструктуры Интернета и широко используется для размещения веб-сайтов. В данном руководстве рассматривается установка Apache на CentOS Stream 9 или более старую корпоративную версию CentOS Stream 8.

Table of Contents

Почему стоит выбрать Apache для CentOS Stream?

  • Стабильность и надежность: Apache известен своей высокой производительностью, что делает его надежным выбором для хостинга веб-сайтов и приложений.
  • Гибкость: Apache предлагает ряд возможностей по настройке, что позволяет адаптировать сервер под конкретные нужды.
  • Безопасность: Благодаря различным модулям и функциям, предназначенным для повышения безопасности, Apache помогает защитить ваши веб-ресурсы.
  • Поддержка сообщества: Будучи открытым исходным кодом, Apache имеет сильное сообщество разработчиков и пользователей, которые вносят свой вклад в его постоянное совершенствование.

В следующих разделах мы приведем пошаговые инструкции по установке Apache на CentOS Stream 9 и CentOS Stream 8. Независимо от того, являетесь ли вы системным администратором или разработчиком, данное руководство поможет вам эффективно настроить Apache на вашей системе CentOS.

Установка Apache на CentOS Stream 9 или 8

Шаг 1: Обеспечение полного обновления системы CentOS Stream перед установкой Apache

Перед установкой рекомендуется установить репозиторий raven-release

Прежде чем приступить к установке Apache на машину CentOS Stream, необходимо убедиться, что система полностью обновлена. Это не просто мера предосторожности. Обновление системы позволяет исключить возможные проблемы совместимости и значительно повысить стабильность, безопасность и производительность системы.

Чтобы выполнить эту операцию, выполните в терминале следующую команду:

Эта команда запускает механизм обновления, обеспечивающий получение и установку последних обновлений программного обеспечения и исправлений системы безопасности. Очень важно дать процессу обновления полностью завершиться, прежде чем переходить к установке Apache. Это позволит убедиться в том, что система находится в идеальном состоянии, оптимально настроена и готова к работе Apache без каких-либо проблем с совместимостью.

Шаг 2. Установка Apache (HTTPD) на CentOS Stream 9 или 8

Вторым шагом является установка Apache, или HTTPD, на систему CentOS Stream. Это несложный процесс, который выполняется с помощью мощного менеджера пакетов DNF. Менеджер пакетов DNF, или Dandified Yum, упрощает установку, обновление и управление пакетами программного обеспечения.

Начните установку Apache (HTTPD), выполнив в терминале следующую команду:

Эта команда запускает механизм установки, получая и устанавливая все необходимые компоненты для работы Apache (HTTPD) на вашей системе. Весь процесс должен занять несколько минут, и по его завершении Apache (HTTPD) будет полностью установлен и готов к работе.

Шаг 3. Активация и настройка Apache (HTTPD) на запуск при загрузке системы

После успешной установки Apache (HTTPD) на систему CentOS Stream необходимо активировать службу и настроить ее на автоматический запуск при загрузке системы. Apache (HTTPD) всегда активен и готов обслуживать веб-запросы при включении системы.

Если служба Apache (HTTPD) не активирована или не настроена на запуск по умолчанию, то для ее запуска и включения при загрузке системы можно воспользоваться следующими командами в терминале:

Первая команда, sudo systemctl start httpd, запускает службу Apache (HTTPD), а вторая команда, sudo systemctl enable httpd, устанавливает автоматический запуск службы при загрузке системы. Выполнение этих двух команд гарантирует, что Apache (HTTPD) будет постоянно доступен и активен, готов удовлетворять веб-запросы при каждом включении системы.

В качестве альтернативы можно свести два предыдущих шага к одной команде:

Опция --now в команде sudo systemctl enable httpd --now одновременно запускает службу Apache (HTTPD) и настраивает ее на автоматический запуск при загрузке системы. Эта команда объединяет две отдельные команды из предыдущих шагов, делая процесс более упорядоченным и эффективным.

Шаг 4. Проверка правильности функционирования Apache (HTTPD) на CentOS Stream

Наконец, необходимо проверить успешность внедрения и функционирования Apache (HTTPD) с помощью следующей команды systemctl:

На скриншоте показан статус systemctl, подтверждающий корректную работу Apache и systemd на CentOS Stream 9 или 8.

Снимок статуса systemctl демонстрирует, что Apache и systemd функционируют на CentOS Stream в соответствии с ожиданиями.
Эта команда позволяет в режиме реального времени получить информацию о состоянии службы Apache (HTTPD), включая возможные ошибки и сообщения. Внимательно изучив статус службы, можно убедиться, что Apache (HTTPD) работает без сбоев.

Настройка правил FirewallD для Apache в CentOS Stream

Шаг 1. Осознание отсутствия правил брандмауэра по умолчанию на CentOS

При установке Apache (HTTPD) на CentOS Stream можно заметить отсутствие предварительно настроенных правил брандмауэра для стандартных портов 80 и 443. Очень важно, чтобы эти правила были настроены до того, как мы продолжим работу. Такая настройка повышает уровень безопасности вашего веб-приложения.

Правила брандмауэра задаются с помощью инструмента firewall-cmd, стандартной утилиты управления брандмауэром CentOS Stream. Точные правила зависят от того, какие именно порты вы планируете использовать. Однако все основные параметры перечислены в следующих шагах.

Шаг 2: Открытие портов 80 и 443

Первые две команды, которые мы выполним, будут посвящены открытию портов 80 и 443. Эти порты отвечают за обработку входящего HTTP- и HTTPS-трафика соответственно.

Чтобы открыть порт 80 или HTTP, выполните следующую команду:

Далее откройте порт 443, или HTTPS, с помощью следующей команды:

Шаг 3: Применение изменений

После того как мы указали порты, которые необходимо открыть, нам нужно попросить брандмауэр ввести эти изменения в действие. Для этого нужно перезагрузить правила брандмауэра с помощью следующей команды:

Шаг 4: Понимание последствий

Очень важно понимать последствия для безопасности, связанные с открытием портов в вашей системе. Выборочное открытие только необходимых портов позволяет усилить защиту веб-приложения от несанкционированного доступа и потенциальных угроз безопасности. Поэтому очень важно правильно настроить правила брандмауэра для Apache (HTTPD), установленного на CentOS Stream.

Шаг 5: Проверка доступа к Apache (HTTPD)

После тщательной настройки FirewallD необходимо убедиться, что доступ к целевой странице Apache (HTTPD) возможен через веб-браузер. Для этого запустите браузер и перейдите по адресу http://localhost или http://your_server_ip.

Для доступа через IP-адрес вашего сервера:

http://your_server_ip

Для доступа через localhost:

http://localhost

Если все настройки выполнены точно, то перед вами должна появиться стандартная целевая страница Apache (HTTPD), на которой будет показано сообщение о том, что сервер функционирует должным образом. Эта страница будет выглядеть примерно так:

Скриншот тестовой страницы Apache, успешно загруженной в браузере CentOS Stream 9 или 8.

Создание и настройка виртуального хоста с помощью Apache в CentOS Stream

В этом разделе мы рассмотрим практический аспект создания виртуального хоста с помощью Apache (HTTPD) - гибкого веб-сервера, известного своей возможностью размещения нескольких доменов на одном сервере. Эта утилита аналогична атрибуту "блоки сервера" в Nginx. В следующем уроке мы покажем, как создать виртуальный хост для заданного домена, представленного в виде "example-domain.com". Естественно, вы замените этот примерный домен своим конкретным доменным именем.

Создание виртуальных хостов позволяет независимо управлять конфигурациями каждого домена. Это позволяет контролировать различные аспекты среды веб-сервера, включая безопасность, производительность и пользовательские настройки. Это может быть особенно удобно, если вы планируете разместить на одном сервере несколько сайтов или поддерживать отдельные настройки для разных разделов вашего сайта. С помощью Apache (HTTPD) можно легко создавать виртуальные хосты, отвечающие этим требованиям.

Шаг 1: Создание и настройка каталогов для Apache на CentOS Stream

Для начала настройки виртуального хоста необходимо создать новый каталог, который будет служить корневой папкой виртуального хоста. Имя этого каталога обычно совпадает с именем домена.

Например, если ваше доменное имя "example.com", то вы создадите новый каталог командой:

В этой команде необходимо заменить "example.com" на ваше доменное имя. Таким образом, в каталоге будут храниться файлы и активы, связанные с виртуальными хостами, включая HTML-файлы, изображения, скрипты и другие ресурсы.

Создание отдельных каталогов для каждого виртуального хоста позволяет разделить задачи, что имеет большое значение в контексте безопасности и устранения неполадок.

Для доступа Apache (HTTPD) к новому каталогу могут потребоваться соответствующие права собственности и разрешения. Следующие команды устанавливают нужные права собственности и разрешения:

После того как новый каталог создан, можно приступать к настройке виртуального хоста.

Шаг 2: Создание файла index.html

В текстовом редакторе создается файл index.html для виртуального хоста. В нашем учебном пособии мы будем использовать текстовый редактор nano, хотя вы можете выбрать любой удобный для вас текстовый редактор.

Выполните следующую команду для создания файла index.html:

В текстовом редакторе начните создавать содержимое файла index.html. Этот файл обычно служит первой точкой контакта для пользователя, посещающего ваш сайт.

Приведем простой пример:

После завершения работы над содержимым файла index.html сохраните его и выйдите из текстового редактора. В случае с nano это делается нажатием клавиш Ctrl + X, затем Y и Enter.

Шаг 3: Настройка каталогов виртуальных хостов

Правильная настройка каталогов для веб-сервера Apache гарантирует бесперебойную и организованную работу конфигурации. В частности, каталогов "sites-available" и "sites-enabled". Эта конфигурация повторяет принятую в Nginx и способствует созданию организованных и доступных конфигураций.

Чтобы создать эти каталоги, выполните следующую команду:

После этого укажите Apache искать файлы виртуальных хостов в каталоге "/etc/httpd/sites-available":

В открывшемся конфигурационном файле добавьте в конец строку "IncludeOptional sites-enabled/*.conf". Эта строка предписывает Apache включить все файлы конфигурации виртуальных хостов в каталог "sites-enabled".

Как вариант, можно закомментировать "IncludeOptional conf.d/*.conf", отключив папку по умолчанию, в которой Apache ищет файлы виртуальных хостов. Это поможет предотвратить возможную путаницу.

Пример:

На этом рисунке показана секция конфигурационного файла Apache, определяющая порядок включения дополнительных каталогов, предназначенная для систем CentOS Stream.

Конфигурация Apache для включения каталогов в CentOS Stream

Для сохранения файла и выхода из программы используйте комбинацию клавиш CTRL + O, а затем CTRL + X.

Шаг 4. Создание файла конфигурации виртуального хоста для Apache на CentOS Stream

Далее, используя текстовый редактор, создадим файл конфигурации виртуального хоста по адресу /etc/httpd/sites-available/example.com.conf.

Заполните информацию placeholder в следующем блоке конфигурации своими ServerName, ServerAlias и Document Root, а затем скопируйте их в файл конфигурации виртуального хоста, расположенный по адресу /etc/httpd/sites-available/example.com.conf.

Убедитесь, что директивы Server настроены в соответствии с вашими специфическими требованиями.

Шаг 5: Изменение прав доступа

Чтобы разрешить публичный доступ к серверу, необходимо изменить разрешения доступа для службы Apache в конфигурационном файле /etc/httpd/conf/httpd.conf. По умолчанию установлен запрет на доступ, и пропуск этого шага может привести к ошибкам HTTP 403 при доступе к Вашему сайту.

Добавьте в файл следующий блок, обязательно изменив корневой каталог на свой собственный.

Фрагмент конфигурации для разрешения виртуальных хостов в Apache на CentOS Stream 9 или 8.

Для сохранения изменений используйте комбинацию клавиш CTRL+O и выйдите из текстового редактора с помощью CTRL+X.

Шаг 6: Включение виртуального хоста для Apache

Последним шагом в настройке виртуального хоста является его активация. Для этого необходимо создать символическую ссылку из каталога sites-available в каталог sites-enabled с помощью следующей команды.

Для завершения процесса активации необходимо перезапустить службу Apache.

После перезапуска службы Apache откройте веб-браузер и перейдите к своему доменному имени "HTTP://example_domain". Если домен еще не зарегистрирован, можно попробовать зайти на свой сайт по IP-адресу (локальному или удаленному). Если все настроено правильно, то вас должна встретить целевая страница, созданная в файле index.html.

Скриншот рабочей тестовой индексной страницы, обслуживаемой Apache с включенным виртуальным хостом на CentOS Stream 9 или 8.

Дополнительные команды и советы по работе с Apache на CentOS Stream 9 или 8

Защита каталогов и файлов для Apache на CentOS Stream 9 или 8

Важно отметить, что многие пользователи совершают распространенную ошибку, предоставляя чрезмерно высокие разрешения, например, полный доступ на чтение, запись и выполнение. Чтобы избежать этого, рекомендуется устанавливать безопасные разрешения для всех файлов и каталогов. Используйте следующую команду для поиска всех файлов и папок и установки наиболее часто используемых безопасных разрешений. Однако помните, что некоторые приложения, например phpBB, могут требовать для определенных папок разрешения 777. Поэтому при необходимости установите соответствующие разрешения для всех файлов и каталогов.

Убедиться в том, что для файлов и каталогов установлены правильные разрешения, очень важно. Одной из распространенных ошибок является предоставление полного доступа на чтение, запись и выполнение. Чтобы избежать этого, используйте следующую команду для поиска всех папок и файлов и установки безопасных разрешений. Обязательно замените "/var/www/example.com/" на расположение вашего корневого каталога.

Этот процесс не гарантирует полной безопасности сервера Apache. Тем не менее, он снизит риск использования хакерами важных файлов сайта, поскольку разрешение 777 обычно не рекомендуется.

Защита Apache с помощью бесплатного SSL-сертификата Let’s Encrypt на CentOS Stream 9 или 8

Для повышения безопасности веб-сервера Apache и обеспечения безопасного соединения между клиентом и сервером рекомендуется использовать протокол HTTPS с SSL-сертификатом. Одним из наиболее удобных способов получения сертификата является Let's Encrypt - бесплатный, автоматизированный и открытый центр сертификации, управляемый некоммерческой организацией Internet Security Research Group (ISRG).

Одним из наиболее удобных способов установки SSL-сертификатов Let's Encrypt является использование программы Snapcraft, которая обеспечивает простой и стабильный подход для всех дистрибутивов на базе RHEL. Вам потребуется включить репозиторий EPEL для CentOS Stream в свою установку. Точный способ зависит от версии дистрибутива, но для этого достаточно выполнить одну из следующих команд.

Импорт EPEL для CentOS Stream 9

Прежде чем продолжить, убедитесь, что репозиторий CRB включен.

Далее установите репозиторий EPEL, выполнив следующую команду терминала (dnf).

Импорт EPEL для CentOS Stream 8

Далее можно установить EPEL на CentOS Stream 8, выполнив следующую команду в терминале с помощью менеджера пакетов dnf.

Сначала установите пакет "mod_ssl".

После активации EPEL на дистрибутиве CentOS Stream можно установить Snap.

После установки убедитесь, что Snap включен и при запуске системы.

Следующим шагом будет установка ядра snap, которое позаботится обо всех зависимостях, необходимых для запуска пакетов snap.

Создайте символическую ссылку для каталога snapd.

Для установки пакета Certbot snap используйте следующую команду терминала.

Наконец, создайте еще одну символическую ссылку для пакета Certbot snap.

Выполните в терминале следующую команду для генерации SSL-сертификата с помощью Certbot.

Для тех, кто впервые знакомится с Let's Encrypt, можно обратиться за дополнительной информацией к аббревиатуре в команде.

  • Опция "-dry-run" используется для выполнения тестового запуска процесса генерации сертификатов без внесения каких-либо изменений в систему. Это полезно для целей тестирования.
  • Опция "-apache" используется для указания того, что сертификат будет генерироваться для веб-сервера Apache.
  • Опция "-agree-tos" используется для согласия с условиями обслуживания Let's Encrypt, центра сертификации, предоставляющего SSL-сертификат.
  • Опция "-redirect" автоматически перенаправляет весь HTTP-трафик на HTTPS.
  • Опция "-hsts" включает функцию HTTP Strict Transport Security (HSTS). Эта функция позволяет защититься от атак с понижением протокола и перехвата файлов cookie, указывая браузерам, что доступ к вашему сайту можно получить только через защищенное HTTPS-соединение.
  • Опция "-staple-ocsp" позволяет использовать протокол Online Certificate Status Protocol (OCSP), который проверяет статус отзыва SSL-сертификата без обращения в центр сертификации.
  • Опция "-email" используется для указания адреса электронной почты, который будет ассоциирован с сертификатом.
  • Опция "-d" используется для указания доменного имени, для которого будет сгенерирован сертификат. В данном примере доменное имя - "www.example.com".

В качестве альтернативы можно использовать следующую команду и следовать пошаговым подсказкам для более доступной работы.

Выполнив команду с указанными параметрами, вы направите certbot на создание SSL-сертификата для вашего домена "www.example.com", включив при этом такие необходимые функции безопасности, как принудительное 301-е перенаправление HTTPS, заголовок Strict-Transport-Security и OCSP Stapling. Важно отметить, что в команде необходимо заменить адрес электронной почты на свой собственный, а также обязательно заменить доменное имя "www.example.com" на желаемое доменное имя.

После получения SSL-сертификата следующим шагом будет настройка нашего веб-сервера на его использование. Это можно сделать автоматически с помощью подсказок CertBot, но может потребоваться и ручная настройка в Apache.

С помощью следующей команды откройте файл ssl.conf.

В конфигурационном файле добавьте следующие строки: замените "example.com" на ваше доменное имя.

Сохраните изменения и перезапустите Apache, чтобы конфигурация вступила в силу.

После создания и настройки сертификата URL вашего сайта изменится с "HTTP://www.example.com" на "HTTPS://www.example.com". Вся связь между браузером пользователя и вашим сайтом будет зашифрована и защищена.

Для большего удобства и безопасности можно настроить задание cron для автоматического обновления сертификатов. Certbot предоставляет для этого скрипт, но перед его установкой рекомендуется выполнить пробный запуск скрипта, чтобы убедиться, что все работает так, как нужно.

Проверьте таймеры с помощью команды systemctl list-timers и убедитесь в наличии "snap.certbot.renew.timer".

Для получения списка активных и неактивных таймеров в системе можно воспользоваться следующей командой: "systemctl list-timers -all". Это позволит получить обзор всех таймеров, включая "snap.certbot.renew.timer", что обеспечит автоматическую проверку и обновление сертификата до истечения срока его действия. Таким образом, вам не придется беспокоиться о процессе обновления.

Управление службой Apache (HTTPD)

После того как Apache успешно установлен на вашем сервере, необходимо запомнить некоторые важные моменты для его эффективного управления.

Журналы сервера Apache

Журналы сервера Apache хранятся в каталоге /var/log/httpd/. Имена файлов по умолчанию для журналов доступа и ошибок - access.log и error.log соответственно. Однако возможно изменение этих имен в конфигурационном файле виртуального хоста.

Приведем пример изменения журналов сервера Apache в файле конфигурации виртуального хоста.

В этом примере журналы доступа и ошибок изменяются на custom-access.log и custom-error.log соответственно. Вы можете изменить имена файлов журналов на любые другие и обновить соответствующий путь в файле конфигурации виртуального хоста.

Команды Apache

Ниже приведены некоторые часто используемые команды при управлении Apache:

Остановить веб-сервер Apache:

Запустить веб-сервер Apache:

Перезапустить веб-сервер Apache:

Перезагрузить веб-сервер Apache:

Отключить Apache при загрузке сервера:

Включить Apache при загрузке сервера:

Как обновить Apache (HTTPD)

Чтобы поддерживать Apache в актуальном состоянии, выполните команду, которую вы обычно используете для проверки актуальности системы.

Важно делать резервные копии или создавать образы системы перед выполнением любых обновлений, поскольку иногда могут возникать ошибки. Следующая команда обновит все системные пакеты, включая Apache, и предложит выполнить обновление.

Как удалить (деинсталлировать) Apache из CentOS Stream 9 или 8

Чтобы удалить Apache из системы, выполните следующую команду.

Теперь используйте следующую команду для полного удаления Apache.

Оставшиеся файлы могут сохраниться в главном каталоге /etc/httpd, поэтому давайте удалим этот каталог.

Заключение

Установка Apache (HTTPD) на CentOS Stream - это простой и понятный процесс, который можно выполнить всего за несколько шагов. Независимо от того, являетесь ли вы новичком или опытным пользователем, данное руководство поможет вам быстро начать работу с Apache (HTTPD) на CentOS Stream. Не забудьте настроить Apache (HTTPD) в соответствии с вашими потребностями и обеспечить безопасность установки для защиты вашего сайта и данных.

Avatar for Gnostis
Gnostis
Добавить комментарий