Содержание:
Для администрирования своего сайта на локальном сервере требуется установка множества дополнительных компонентов, которые и организуют единую систему, функционирующую слажено и без каких-либо ошибок. Одной из главных составляющих такой структуры можно считать веб-сервер. Пользователи чаще всего предпочитают задействовать именно 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
. - При открытии текстового редактора появится уведомление о том, что это новый файл. Не переживайте, ведь так и должно быть. Мы специально создаем его, выставляя соответствующую конфигурацию.
- Вставьте туда приведенный ниже код, заменив стандартное приветствие на произвольный текст. Если хотите, можете полностью переделать структуру, создав подходящую для себя страницу.
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com virtual host is working!</h1>
</body>
</html></code>
- Сохраните изменения, нажав на 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 combined
- Остается только активировать файл, создав символическую ссылку через
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 unconfined_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 unconfined_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 root root error.log -rw-r--r--. 1 root root 0 requests.log
, значит, все предыдущие настройки были выполнены правильно.
Вы были ознакомлены с процедурой инсталляции и общей настройки веб-сервера Apache в CentOS 7. Как видите, сама установка не займет много времени, а все сложности связаны только с конфигурацией. Если представленного руководства по изменению параметров и управлению Apache вам оказалось мало, советуем изучить официальную документацию, воспользовавшись ссылкой ниже.
Перейти на официальный сайт документации Apache
Наш Telegram каналТолько полезная информация
Спасибо большое за подсказку