Установка Apache в CentOS 8

CentOS 8 — в настоящий момент последняя версия CentOS Linux, основанная на исходных кодах Red Hat Enterprise Linux 8. Apache HTTP-сервер — свободный кроссплатформенный веб-сервер, поддерживающий такие операционные системы, как Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.

Основными достоинствами веб-сервера Apache считаются его надёжность и гибкость конфигурации, позволяющие подключать к нему внешние модули предоставления данных, использовать СУБД, производящие аутентификацию пользователей, анализировать сообщения об ошибках и многое другое. В Apache HTTP-сервер реализована поддержка протокола IPv6. В нашей статье мы  расскажем вам как выполнить Apache на CentOS 8 или RHEL 8 с дополнительной конфигурацией и настройкой SSL.

Установка Apache на CentOS 8

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

sudo su

Установка Apache в CentOS 8

Шаг 1. Установка пакетов

Установка Apache CentOS 8 выполняется с помощью команды приведенной ниже. Она позволит установить не только сам сервер, но и дополнительные пакеты, необходимые для его работы в вашей системе:

dnf install httpd

Установка Apache в CentOS 8

Установка Apache в CentOS 8

Шаг 2. Настройка службы Apache

 Управление службой Apache выполняется при помощи команды systemctl. По окончании установки используйте команду systemctl для добавления службы Apache в автозагрузку и её запуска:

sudo systemctl enable httpd.service

Установка Apache в CentOS 8

sudo systemctl start httpd.service

Установка Apache в CentOS 8

Если вы хотите перезапустить apache CentOS 8, то можете использовать команду:

systemctl restart httpd.service

Перезапуск Apache без завершения активных соединений можно выполнить командой reload:

systemctl reload httpd.service

Шаг 3. Настройка фаервола

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

firewall-cmd --zone=public --permanent --add-service=http

firewall-cmd --zone=public --permanent --add-service=https

firewall-cmd --reload

Установка Apache в CentOS 8

Шаг 4. Проверка работы Apache

Теперь вы можете получить информацию об установленной версии Apache на вашем сервере, используя следующую команду:

httpd -v

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

Установка Apache в CentOS 8

Создайте тестовую html-страницу в корневом каталоге веб-сервера по умолчанию (/var/www/html).

echo "Hello Losst.ru" > /var/www/html/index.html

Установка Apache в CentOS 8

Теперь откройте ваш любимый браузер и, используя IP-адрес сервера или домен, указывающий на IP-адрес вашего сервера, перейдите на только что созданную тестовую страницу:

Установка Apache в CentOS 8

Если вы видите текст, который ранее записали в тестовый файл, значит установка apache centos прошла успешно.

Шаг 5. Создание виртуальных хостов

Виртуальный хост — специальный раздел, используемый в конфигурации веб-сервера, выполняющий сопоставление доступных на сервере IP-адресов, доменов и директорий сервера, а также управляющий сайтами, созданными на веб-сервере. Давайте разберемся как создать виртуальный хост Apache Apache CentOS на примере сайта example.com. Создайте пример индексного файла в каталоге /var/www/example.com:

mkdir -p /var/www/example.com

Установка Apache в CentOS 8

echo "hello example.com" | sudo tee /var/www/example.com/index.html

Установка Apache в CentOS 8

Далее создайте файл конфигурации виртуального хоста и отредактируйте его, добавив следующее содержимое: можно изменить доменное имя в соответствии с вашим доменом:

Установка Apache в CentOS 8

sudo nano /etc/httpd/conf.d/example.com.conf

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/example.com
ServerName example.com
ServerAlias www.example.com
<Directory /var/www/example.com>
AllowOverride all
</Directory>
ErrorLog logs/example.com_error.log
CustomLog logs/example.com_access.log combined
</VirtualHost>

Рассмотрим структуру файла example.com.conf. Вот основные директивы, которые там используются:

  • FollowSymLinks -при использовании этой директивы сервер будет следовать символическим ссылкам в указанном каталоге. Настройка директивы всегда остаётся заданной по умолчанию. Параметр FollowSymLinks работает только в разделах <Directory> или файлах .htaccess.
  • AllowOverride — найдя файл .htaccess, сервер должен знать, какие директивы, объявленные в этом файле, могут переопределить более ранние директивы конфигурации. Директива AllowOverride допустима к использованию только в разделах <Directory>, указанных без регулярных выражений, но не в разделах <Location>, <DirectoryMatch> или <Files>. Если директива AllowOverride принимает значение None, то файлы .htaccess полностью игнорируются. В этом случае сервер даже не будет пытаться читать файл .htaccess в файловой системе. Если эта директива принимает значение Allow, то любая директива, имеющая свои  htaccess-разрешения может переопределить более ранние директивы конфигурации.
  • Order —  наряду с директивами Allow (разрешено) и Deny (запрещено), управляет трёхпроходной системой контроля доступа. Первый проход обрабатывает либо все разрешающие, либо все запрещающие директивы, как указано в директиве Order. Второй проход анализирует остальные директивы (запретить или разрешить). Третий проход применяется ко всем запросам, не соответствующим ни одному из первых двух. Обратите внимание, что все директивы Allow и Deny обрабатываются иначе, чем обычный брандмауэр, использующий только первое значение правила. Кроме того, порядок, в котором строки появляются в файлах конфигурации, не имеет значения — все разрешающие строки обрабатываются как одна группа, все запрещающие строки рассматриваются как другая группа, а состояние по умолчанию рассматривается само по себе. Директива Order всегда принимает одно из двух значений: Allow или Deny.
  • Директивы Allow и Deny. Вариант Allow, Deny подразумевает, что сперва оцениваются все директивы Allow. По крайней мере одна из них должна совпадать, иначе запрос отклоняется. Затем оцениваются все директивы Deny. В случае совпадения запрос отклоняется. Наконец, любые запросы, не соответствующие директиве Allow или Deny, по умолчанию отклоняются. В случае использования Deny, Allow оцениваются все директивы Deny. Если они совпадают, запрос отклоняется. Любые запросы, не соответствующие директивам Allow или Deny, разрешены.
Сейчас читают:  Создание в Фотошопе векторного изображения

Установка Apache в CentOS 8

Чтобы изменения вступили в силу надо перезапустить службу. Перезагрузка Apache выполняется командой:

systemctl reload httpd.service

Установка Apache в CentOS 8

Настройка виртуальных хостов Apache CentOS завершена.

Шаг 4. Настройка SSL

Если вы не собираетесь использовать  SSL в работе вашего сайта, то можете смело пропускать этот шаг. Однако, безопасность всегда является главной задачей для любого веб-сайта. Для того, чтобы использовать SSL в связке с Apache, требуется  установить пакет mod_ssl в вашей системе. Для этого выполните команду:

dnf install mod_ssl

Установка Apache в CentOS 8

Установка Apache в CentOS 8

По окончании установки пакета создайте директорию, в которой будет хранится наш
SSL-сертификат:

mkdir -p /etc/pki/tls/certs

Установка Apache в CentOS 8

Перейдите в него, выполнив команду:

cd /etc/pki/tls/certs

Установка Apache в CentOS 8

Теперь создайте SSL-сертификат, который будет использоваться при настройке виртуального хоста. Для этого выполните команду:

openssl req -x509 -nodes -newkey rsa:2048 -keyout example.com.key -out example.com.crt

Установка Apache в CentOS 8

Эта команда создаст закрытый ключ и сертификат в необходимой директории.

Вы можете использовать файл конфигурации /etc/httpd/conf/ssl.conf для настройки SSL вашего виртуального хоста или же можете создать отдельный файл конфигурации виртуального хоста для вашего домена, например, /etc/httpd/conf.d/example.com.conf. Добавьте в него следующее содержимое:

nano /etc/httpd/conf.d/example.com.conf

<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot /var/www/example.com
ServerName example.com
ServerAlias www.example.com
<Directory /var/www/example.com>
#AllowOverride all
</Directory>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/example.com.crt
SSLCertificateKeyFile /etc/pki/tls/certs/example.com.key
ErrorLog logs/example.com_ssl-error.log
CustomLog logs/example.com_ssl-access.log combined
</VirtualHost>

Установка Apache в CentOS 8

В файле example.com.conf используются три директивы для включения поддержки ssl apache centos виртуальным хостом. Давайте рассмотрим их подробнее.

  • SSLEngine — эта директива переключает использование механизма протокола SSL/TLS. Это обычно используется внутри <VirtualHost> для  включения поддержки SSL /TLS конкретным виртуальным хостом. По умолчанию механизм протокола SSL/TLS отключён как для основного сервера, так и для всех настроенных виртуальных хостов. В Apache 2.1 и более поздних версиях SSLEngine устанавливается опционально. Эта директива может принимать два значения: on или off, что означает включено либо выключено.
  • SSLCertifacateFile — эта директива создаёт файл типа «всё в одном», в котором можно собрать сертификаты центров сертификации (ЦС), с клиентами которых вы имеете дело. Они используются для аутентификации клиента. Такой файл — просто объединение различных файлов сертификатов, закодированных в PEM, в порядке предпочтения. Это может быть использовано в качестве альтернативы или дополнительно к SSLCACertificatePath.
  • SSLCertificateKeyFile —  указывает на PEM-кодированный файл закрытого ключа для сервера. Если содержащийся закрытый ключ зашифрован, диалог парольной фразы принудительно запускается во время запуска. Директиву можно использовать несколько раз (ссылаясь на разные имена файлов) для поддержки нескольких алгоритмов аутентификации сервера. Для каждой директивы SSLCertificateKeyFile должна быть соответствующая директива SSLCertificateFile.

Закрытый ключ также может быть объединён с сертификатом в файле, предоставленном SSLCertificateFile, но эта практика крайне нежелательна. Если он используется, то файлы сертификатов, использующие такой встроенный ключ, должны быть настроены после сертификатов, использующих отдельный файл ключей.

Теперь, создав и настроив конфигурационный файл, сохраните изменения в файле виртуального хоста и перезагрузите службу Apache, используя следующую команду:

systemctl reload httpd.service

Установка Apache в CentOS 8

Выводы

В этой статье мы разобрали как выполняется установка Apache в CentOS 8. Выполнив указанные в нашей статье действия, вы сможете установить и настроить веб сервер Apache на вашем сервере CentOS 8.

Источник: winzen.ru