Настройка Apache Centos 7

Обновлено: 24.11.2024

Веб-сервер Apache — один из самых популярных и мощных веб-серверов в мире. Это также один из самых безопасных веб-серверов. В этом руководстве объясняется, как установить и настроить базовый и безопасный веб-сервер Apache в CentOS 7.

Требования

  • Сервер под управлением CentOS версии 7.
  • Настольный компьютер под управлением Linux
  • Статический IP-адрес для вашего сервера

В этом разделе описан процесс подготовки вашего сервера для Apache, настройки Apache и тестирования установки.

Обновите репозиторий пакетов

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

Отключить SELinux

По умолчанию SELinux включен в CentOS 7. Рекомендуется сначала отключить его.

Вы можете отключить SELinux, отредактировав файл /etc/selinux/config:

Измените строку с SELINUX=enforcing на SELINUX=disabled

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

Разрешить Apache через брандмауэр

Это можно сделать, выполнив следующие команды:

Перезагрузите службу брандмауэра, чтобы изменения вступили в силу.

Создайте тестовую страницу

В CentOS7 путь Apache DocumentRoot по умолчанию — /var/www/html/ . Однако в этом каталоге нет файла index.html. Вам нужно будет создать его.

Добавьте следующее содержимое:

Перезапустите службу Apache, чтобы изменения вступили в силу:

Вы можете настроить запуск службы Apache при загрузке, выполнив следующую команду:

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

Установить SSL

Для защиты Apache необходимо сначала установить SSL.

Вы можете установить SSL с помощью следующей команды:

Создать самозаверяющий сертификат

Затем сгенерируйте запрос на подпись сертификата cs.csr с помощью следующей команды.

Вам будет предложено ввести информацию о сертификате.

Наконец, создайте самозаверяющий сертификат ca.crt типа X509, действительный для ключей 365.

После создания сертификата необходимо скопировать все файлы сертификата в необходимые каталоги.

Это можно сделать, выполнив следующие команды:

Настройте сертификаты

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

Это можно сделать, отредактировав файл конфигурации SSL:

Затем найдите строки SSLCertificateFile и SSLCertificateKeyFile и укажите в них новое расположение сертификатов.

После внесения этих изменений перезапустите службу Apache, чтобы изменения вступили в силу.

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

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

В этом руководстве вы установите веб-сервер Apache с виртуальными хостами на свой сервер CentOS 7.

Предпосылки

Для выполнения этого руководства вам потребуется следующее:

  • Пользователь без полномочий root с привилегиями sudo, настроенный на вашем сервере, настроенный в соответствии с руководством по начальной настройке сервера для CentOS 7.
  • Доменное имя, настроенное так, чтобы оно указывало на ваш сервер. Вы можете узнать, как указать домены для дроплетов DigitalOcean, следуя руководству «Как настроить имя хоста с помощью DigitalOcean».
  • Базовый брандмауэр, настроенный в соответствии с дополнительными рекомендуемыми действиями для новых серверов CentOS 7.

Шаг 1 — Установка Apache

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

После обновления пакетов установите пакет Apache:

После подтверждения установки yum установит Apache и все необходимые зависимости.

Затем перезагрузите брандмауэр, чтобы новые правила вступили в силу:

После перезагрузки брандмауэра вы готовы запустить службу и проверить веб-сервер.

Шаг 2. Проверка веб-сервера

Apache не запускается автоматически в CentOS после завершения установки. Вам нужно будет запустить процесс Apache вручную:

Убедитесь, что служба запущена, с помощью следующей команды:

Вы увидите активный статус, когда служба запущена:

Как видно из этого вывода, служба запущена успешно. Однако лучший способ проверить это — запросить страницу у Apache.

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

Введите это в командной строке вашего сервера:

Эта команда отобразит все сетевые адреса хоста, поэтому вы получите несколько IP-адресов, разделенных пробелами. Вы можете попробовать каждый из них в своем веб-браузере, чтобы убедиться, что они работают.

Когда у вас есть IP-адрес вашего сервера, введите его в адресную строку браузера:

Вы увидите веб-страницу Apache CentOS 7 по умолчанию:

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

Шаг 3 — Управление процессом Apache

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

Чтобы остановить веб-сервер, введите:

Чтобы запустить веб-сервер, когда он остановлен, введите:

Чтобы остановить и снова запустить службу, введите:

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

По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если это не то, что вам нужно, отключите это поведение, набрав:

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

Apache теперь будет запускаться автоматически при повторной загрузке сервера.

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

Шаг 4. Настройка виртуальных хостов (рекомендуется)

При использовании веб-сервера Apache вы можете использовать виртуальные хосты (аналогично блокам сервера в Nginx), чтобы инкапсулировать детали конфигурации и размещать более одного домена с одного сервера. На этом шаге вы настроите домен, который называется your_domain , но вы должны заменить его своим собственным доменным именем. Чтобы узнать больше о настройке доменного имени в DigitalOcean, ознакомьтесь с нашим введением в DigitalOcean DNS.

Apache в CentOS 7 имеет один включенный по умолчанию серверный блок, настроенный для обслуживания документов из каталога /var/www/html. Хотя это хорошо работает для одного сайта, это может стать громоздким, если вы размещаете несколько сайтов. Вместо изменения /var/www/html вы создадите структуру каталогов в /var/www для сайта your_domain, оставив /var/www/html в качестве каталога по умолчанию, который будет обслуживаться, если запрос клиента не соответствует любые другие сайты.

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

Создайте дополнительный каталог для хранения файлов журналов сайта:

Затем назначьте владельца каталога html с помощью переменной окружения $USER:

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

Затем создайте образец страницы index.html с помощью vi или вашего любимого редактора:

Нажмите i, чтобы переключиться в режим ВСТАВКИ, и добавьте в файл следующий образец HTML:

Сохраните и закройте файл, нажав ESC , введя :wq и нажав ENTER .

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

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

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

Добавьте эту строку в конец файла:

Сохраните и закройте файл, когда закончите добавлять эту строку. Теперь, когда у вас есть каталоги виртуальных хостов, вы создадите файл виртуального хоста.

Начните с создания нового файла в каталоге, доступном для сайтов:

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

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

Сохраните и закройте файл, когда закончите.

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

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

Шаг 5. Настройка разрешений SELinux для виртуальных хостов (рекомендуется)

SELinux настроен для работы с конфигурацией Apache по умолчанию. Поскольку вы настроили собственный каталог журналов в файле конфигурации виртуальных хостов, вы получите сообщение об ошибке, если попытаетесь запустить службу Apache. Чтобы решить эту проблему, вам нужно обновить политики SELinux, чтобы разрешить Apache писать в необходимые файлы. SELinux обеспечивает повышенную безопасность вашей среды CentOS 7, поэтому не рекомендуется полностью отключать модуль ядра.

Существуют разные способы установки политик в зависимости от потребностей вашей среды, так как SELinux позволяет настроить уровень безопасности. Этот шаг охватывает два метода настройки политик Apache: универсальный и для определенного каталога. Настройка политик для каталогов более безопасна и поэтому является рекомендуемым подходом.

Универсальная настройка политик Apache

Выполните следующую команду, чтобы установить универсальную политику Apache:

Настройка политик Apache в каталоге

Индивидуальная установка разрешений SELinux для каталога /var/www/ваш_домен/log даст вам больший контроль над политиками Apache, но может также потребовать дополнительного обслуживания. Поскольку этот параметр не является универсальной настройкой политик, вам потребуется вручную задать тип контекста для любых новых каталогов журналов, указанных в конфигурации вашего виртуального хоста.

Сначала проверьте тип контекста, который SELinux присвоил каталогу /var/www/ваш_домен/log:

Эта команда выводит список и печатает контекст каталога SELinux. Вы увидите вывод, подобный следующему:

Затем используйте команду restorecon, чтобы применить эти изменения и сохранить их после перезагрузки:

Флаг -R запускает эту команду рекурсивно, то есть она обновит все существующие файлы для использования нового контекста. Флаг -v будет печатать изменения контекста, сделанные командой. Вы увидите следующий вывод, подтверждающий изменения:

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

Вывод отражает обновленный тип контекста:

Шаг 6. Тестирование виртуального хоста (рекомендуется)

После того как контекст SELinux будет обновлен любым способом, Apache сможет записывать в каталог /var/www/ваш_домен/log. Теперь вы можете успешно перезапустить службу Apache:

Выведите список содержимого каталога /var/www/ваш_домен/log, чтобы узнать, создал ли Apache файлы журнала:

Вы увидите, что Apache смог создать файлы error.log и request.log, указанные в конфигурации виртуального хоста:

Это подтверждает, что ваш виртуальный хост успешно настроен и предоставляет контент. Повторите шаги 4 и 5, чтобы создать новые виртуальные хосты с разрешениями SELinux для дополнительных доменов.

Заключение

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

Если вы хотите создать более полный стек приложений, ознакомьтесь с этой статьей о том, как настроить стек LAMP в CentOS 7.

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

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

Это подробное руководство посвящено только установке Apache. Если вы искали точечный учебник по стеку LAMP, у нас есть это руководство по установке Linux, Apache, MySQL, PHP (LAMP) на CentOS 7, которое вы можете проверить. А теперь приступим!

Предпосылки

Поскольку это практическое руководство, у вас должно быть следующее:

  • Сервер под управлением CentOS 7. Вы можете создать его в CloudSigma, выполнив несколько простых шагов по этой ссылке . на вашем сервере.Затем войдите под этим пользователем.
  • Настройте базовый брандмауэр, следуя инструкциям из нашего руководства по настройке брандмауэра с помощью FirewallD в CentOS 7.

После обновления пакетов введите следующую команду для установки Apache:

Подтвердите установку и подождите, пока yum установит Apache и его необходимые зависимости.

Наконец, вы должны перезагрузить firewalld, чтобы изменения вступили в силу. Вот команда для перезагрузки:

Шаг 2. Подтверждение того, что веб-сервер Apache запущен

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

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

Если служба запущена, вы должны увидеть результат, аналогичный показанному на снимке экрана ниже. Обратите внимание на активный статус:

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

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

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

Ваш браузер должен загрузить веб-страницу CentOS 7 Apache по умолчанию:

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

Шаг 3. Управление службой Apache

В этом разделе мы покажем вам некоторые основные команды управления Apache. Вот команда, которая останавливает веб-сервер:

Вот команда для запуска веб-сервера:

Далее это команда для перезапуска веб-сервера (остановка и запуск):

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

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

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

Шаг 4. Настройка виртуальных хостов Apache

По умолчанию Apache настроен для размещения и обслуживания одного веб-сайта. В большинстве случаев вам понадобится, чтобы ваш веб-сервер обслуживал и размещал несколько веб-сайтов. Например, у вас могут быть поддомены или вы можете настроить страницу блога для основного веб-сайта вашей компании/организации. Вот где вступают в игру виртуальные хосты Apache. Виртуальные хосты Apache позволяют настроить веб-сервер для обслуживания нескольких веб-сайтов. Виртуальные хосты Apache — это эквивалент серверных блоков на сервере Nginx.

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

Apache — это приложение Linux для запуска веб-серверов. Это часть стека LAMP — пакета приложений, которые составляют основу большинства веб-технологий. LAMP означает Linux, Apache, MyPHP и PHP.

В этом руководстве показано, как установить и настроить веб-сервер Apache в CentOS 7.

  • Учетная запись пользователя с правами sudo
  • Доступ к терминалу командной строки (меню > приложение > утилиты > терминал)
  • Диспетчер пакетов yum, установленный по умолчанию

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

Шаг 1. Обновите список версий программного обеспечения

Убедитесь, что вы используете последние версии программного обеспечения. В окне терминала введите команду:

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

Шаг 2. Установите Apache

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

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

Шаг 3. Активируйте Apache

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

<р>1. Введите следующую команду в окне терминала:

Это запустит службу Apache.

<р>2. Затем настройте запуск службы Apache при загрузке системы:

Шаг 4. Проверка службы Apache

Отобразите информацию об Apache и убедитесь, что он работает в данный момент:

Шаг 5. Настройте firewalld для разрешения трафика Apache

При стандартной установке CentOS 7 запрещает трафик на Apache.

<р>1. Измените брандмауэр, чтобы разрешить подключения через эти порты, используя следующие команды:

<р>2. После успешного завершения перезагрузите брандмауэр, чтобы применить изменения с помощью команды:

Шаг 6. Настройте виртуальные хосты в CentOS 7 (необязательно)

Виртуальные хосты — это разные веб-сайты, которые вы запускаете с одного сервера. Каждому веб-сайту нужен собственный файл конфигурации.

Есть несколько рекомендаций, которые можно использовать при настройке разных веб-сайтов на одном сервере:

<р>1. Чтобы создать файл конфигурации виртуального хоста, введите в окне терминала следующее:

<р>2. В редакторе введите следующий текст:

Сохраните файл и выйдите.

<р>3. Затем введите следующую команду, чтобы создать каталог для хранения файлов вашего веб-сайта:

<р>4. Перезапустите службу Apache, чтобы применить изменения, введя:

Каталоги и файлы Apache

Вы можете расширить функциональные возможности Apache, загрузив дополнительные модули.

Команды для управления службой Apache

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

Остановить службу Apache:

Предотвратите или отключите запуск Apache при загрузке системы:

Повторно включить Apache при загрузке:

Перезапустите Apache и примените все сделанные вами изменения:

Отличная работа, вы установили Apache на свой сервер CentOS 7. Базовая установка и управление службой Apache просты.

Готовы создать стек приложений? Прочтите наше руководство по установке MySQL на CentOS.

Читайте также: