Чтобы управлять своим сайтом на локальном сервере, вам необходимо установить множество надстроек, которые организуют единую систему, которая работает бесперебойно и без ошибок. Одним из основных компонентов этой структуры можно считать веб-сервер. Пользователи чаще всего предпочитают использовать Apache из-за его простоты и гибкости настройки, а также возможности подключения внешних модулей. Однако базовая установка и настройка — это не быстрый процесс, а для некоторых даже сложный, поэтому мы хотели бы поговорить об этом более подробно на примере дистрибутива CentOS 7.
Устанавливаем Apache в CentOS 7
Структура сегодняшней статьи будет поэтапной, чтобы даже самый начинающий пользователь понимал, как именно происходит установка и подготовка рассматриваемого веб-сервера. Давайте проясним, что мы не предоставляем руководств по подробной настройке Apache, поскольку это зависит от личных предпочтений пользователя и остальных доступных важных компонентов. Для получения этой информации мы всегда рекомендуем вам обращаться к официальной документации.
Шаг 1: Подготовка и инсталляция
Начнем немедленно с установки компонентов Apache и добавления всех служб поддержки. Мы предлагаем использовать для этого репозиторий дистрибутива, так как в него всегда загружается последняя стабильная версия программного обеспечения, а сам процесс установки не занимает много времени.
- Запустите «Терминал», например, через иконку в разделе «Избранное».
- Если вы ранее устанавливали Apache на свой компьютер или случайно удалили один из его компонентов, просто используйте команду sudo yum update httpd, активировав ее нажатием клавиши Enter.
- Это действие выполняется от имени суперпользователя, а это значит, что вам нужно будет подтвердить его, указав пароль для этой учетной записи.
- Если обновления установлены, вы получите уведомление, а если пакет отсутствует, появится другое сообщение соответствующего характера.
- Теперь поговорим об установке Apache с нуля. Как мы уже говорили, мы будем использовать для этого официальные репозитории, поэтому вам нужно ввести команду sudo yum install httpd.
- Когда появится уведомление об установке пакета, подтвердите его, выбрав опцию y.
- Дождитесь завершения установки, при этом не закрывайте текущий сеанс терминала, чтобы не прерывать процесс.
- По завершении рекомендуется немедленно запустить веб-сервер, что можно сделать с помощью sudo systemctl start httpd.
- Проверьте текущий статус через sudo systemctl status httpd.
- Уведомление «Active: active (running)» означает, что Apache теперь работает правильно, и вы можете продолжить настройку.
Это все, что нужно было знать об основной процедуре установки веб-сервера. Как видите, ничего сложного в этом нет. Далее мы хотим поговорить о взаимодействии с основными службами и установке базовой конфигурации, и вам просто нужно решить, изучать ли эти инструкции или у вас уже есть знания о настройке и управлении.
Шаг 2: Управление службой Apache
Веб-сервер в CentOS, как и другие дистрибутивы, работает в фоновом режиме как служба. По умолчанию он добавляется при запуске, и мы уже говорили об активации и проверке статуса ранее. Если есть желание управлять этим инструментом, то делается это так:
- Введите sudo systemctl stop httpd, чтобы полностью остановить Apache.
- Эта и все последующие команды будут выполняться от имени суперпользователя, поэтому вам нужно будет подтвердить это, введя соответствующий пароль.
- Перезагрузка происходит с помощью команды sudo systemctl restart httpd. Эта команда актуальна в тех ситуациях, когда происходит сбой сервера или его необходимо перезапустить из-за особенностей взаимодействия с другими компонентами.
- Используйте sudo systemctl reload httpd, если вы хотите, чтобы все изменения конфигурации публикации вступили в силу без разрыва каких-либо соединений.
- Sudo systemctl disable httpd удаляет Apache из загрузки, а sudo systemctl enable httpd возвращается к значениям по умолчанию. Также, когда эта опция включена, вы будете уведомлены о создании новой символической ссылки, отвечающей за этот параметр.
Как видите, самые стандартные команды проверяют статус сервиса. Запомнить их не составит труда, если вам придется часто прибегать к подобным мерам при администрировании сети, отдельного сайта или любого приложения.
Шаг 3: Базовая конфигурация
Базовая конфигурация включает настройку виртуального хоста, что полезно для изоляции настроек и размещения разных доменов на одном сервере. Стандартного виртуального хоста достаточно, если вы имеете дело только с одним сайтом, однако при регистрации других доменов вам придется прибегнуть к созданию дополнительных параметров. Теперь мы возьмем стандартный виртуальный хост в качестве примера и при необходимости изменим его адрес.
- Начнем с создания каталога, в котором будут храниться все дочерние файлы виртуального хоста. Это делается с помощью команды sudo mkdir -p /var/www/example.com/html.
- также необходима дополнительная папка, в которой будут автоматически сохраняться журналы событий. Чтобы добавить его, введите sudo mkdir -p /var/www/example.com/log.
- Установите разрешения по умолчанию для каталога с помощью sudo chown -R $ USER: $ USER /var/www/example.com/html.
- Кроме того, установите привилегии для каждого пользователя, введя sudo chmod -R 755 / var / www.
- Приступим к созданию образца главной страницы, которая появится во время проверки целостности хоста. Создайте новый текстовый файл с помощью удобного редактора, например с помощью nano, введите sudo nano /var/www/example.com/html/index.html.
- Когда вы откроете текстовый редактор, вы получите уведомление о том, что это новый файл. Не волнуйтесь, так и должно быть. Мы создаем его специально, задав соответствующую конфигурацию.
- Вставьте приведенный ниже код, заменив стандартное приветствие любым текстом. При желании вы можете полностью изменить структуру, создав страницу, которая вам подходит.
добро пожаловать на Example.com>
успех! Виртуальный хост example.com работает>
- Сохраните изменения, нажав Ctrl + O, затем выйдите из текстового редактора, нажав Ctrl + X.
- Это были лишь предварительные настройки. Теперь перейдем к самому виртуальному хосту: для начала нужно указать папки для его хранения. Для этого введите sudo mkdir / etc / httpd / sites-available / etc / httpd / sites-enabled.
- Затем он сообщает веб-серверу, что теперь ему также необходимо взаимодействовать с другими компонентами. Эта задача выполняется путем изменения основного файла конфигурации. Запустите его через текстовый редактор с помощью sudo nano /etc/httpd/conf/httpd.conf.
- Прокрутите список до конца и вставьте строку IncludeOptional sites-enabled / * .Conf.
- Не забудьте сохранить все изменения перед выходом из текстового редактора.
- Для создания самого виртуального хоста вам понадобится другой файл конфигурации. Создайте его с помощью sudo nano /etc/httpd/sites-available/example.com.conf.
- Вставьте туда следующий контент, заменив нужные строки своими собственными.
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/example.com/html
ErrorLog /var/www/example.com/log/error.log
CustomLog /var/www/example.com/log/requests.log вместе - Осталось только активировать файл, создав символическую ссылку через sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf.
Шаг 4: Настройка контроля доступа
Если говорить о настройке глобальных параметров, то необходимо обеспечить контроль доступа, указав количество пользователей, которые смогут вносить изменения в рассмотренные выше каталоги. Эта процедура выполняется с помощью стандартного инструмента SELinux, отвечающего за управление уровнями доступа.
- Установите глобальную опцию безопасности с помощью sudo setsebool -P httpd_unified 1. Это гарантирует, что все типы процессов обрабатываются как один.
- Затем рекомендуется проверить текущие параметры SELinux, которые были предоставлены автоматически. Для этого введите sudo ls -dZ /var/www/example.com/log/.
- В результате вы увидите содержимое drwxr-xr-x root root unlimited_u: object_r: httpd_sys_content_t: s0 /var/www/example.com/log/. Это означает, что теперь Apache может читать только те файлы, которые были созданы в установленной папке, соответственно вам придется изменить конфигурацию.
- Эта задача выполняется с помощью sudo semanage fcontext -a -t httpd_log_t «/var/www/example.com/log(/.*)?».
- Сохраните изменения и вступите в силу после перезапуска сервера, введя sudo restorecon -R -v /var/www/example.com/log.
- Теперь дважды проверьте изменения с помощью sudo ls -dZ /var/www/example.com/log/.
- Как видите, результат имеет вид drwxr-xr-x root root unlimited_u: object_r: httpd_log_t: s0 /var/www/example.com/log, поэтому все сделано правильно.
- Осталось только протестировать все изменения. Для этого введите sudo systemctl restart httpd и нажмите Enter.
- Подтвердите действие паролем суперпользователя.
- Снова запросите каталог, набрав ls -lZ /var/www/example.com/log. Если отображаемый контент имеет формат -rw-r — r—. 1 корневая ошибка корня. Log -rw-r — r—. 1 root root 0 request.log, поэтому все предыдущие настройки были выполнены правильно.
Знаете ли вы процедуру установки и общую настройку веб-сервера Apache на CentOS 7. Как видите, сама установка не займет много времени и все сложности связаны только с настройкой. Если представленного руководства по изменению параметров и управлению Apache вам было недостаточно, рекомендуем изучить официальную документацию по ссылке ниже.
Перейдите на официальный сайт документации Apache