Centos 7 web server: Установка LAMP (apache+php+mysql) в CentOS 7
Содержание
Установка веб-сервера Apache в CentOS 7
23 марта, 2019 12:26 пп
19 480 views
| Комментариев нет
Centos, LAMP Stack | Amber
| Комментировать запись
HTTP-сервер Apache – самый популярный веб-сервер. Он предоставляет множество производительных функций, включая динамическую загрузку модулей, надежную поддержку мультимедиа и широкую интеграцию с другим популярным программным обеспечением.
В этом мануале вы узнаете, как установить веб-сервер Apache на сервер CentOS 7.
Требования
- Сервер CentOS 7.
- Пользователь с доступом к sudo (все действия нужно выполнить в сессии этого пользователя). Инструкции можно найти в мануале по начальной настройке сервера.
- Базовый брандмауэр (читайте мануал Дополнительные рекомендации по настройке сервера CentOS 7).
1: Установка Apache
Пакет Apache есть в стандартном репозитории CentOS, потому его можно установить с помощью стандартного пакетного менеджера yum.
Как пользователь с правами sudo, обновите индекс локальных пакетов:
sudo yum update httpd
Затем введите команду:
sudo yum install httpd
Команда установит Apache и его зависимости. Теперь можно запустить сервис.
2: Проверка веб-сервера
В CentOS веб-сервер Apache не запускается автоматически после завершения установки. Вам нужно запустить Apache вручную:
sudo systemctl start httpd
Убедитесь, что сервер запущен:
sudo systemctl status httpd
Redirecting to /bin/systemctl status httpd.service
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-02-20 01:29:08 UTC; 5s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 1290 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
├─1290 /usr/sbin/httpd -DFOREGROUND
├─1291 /usr/sbin/httpd -DFOREGROUND
├─1292 /usr/sbin/httpd -DFOREGROUND
├─1293 /usr/sbin/httpd -DFOREGROUND
├─1294 /usr/sbin/httpd -DFOREGROUND
└─1295 /usr/sbin/httpd -DFOREGROUND
. ..
В выводе должен быть статус active.
Согласно выводу сервис работает правильно. Но лучше также запросить страницу Apache, чтобы подтвердить работу веб-сервера.
Чтобы открыть стандартную посадочную страницу Apache, укажите свое доменное имя или IP сервера.
Если у вас нет домена, укажите внешний IP-адрес своего сервера. Если вы не знаете свой IP-адрес, вы можете узнать его с помощью командной строки. Введите:
hostname -I
Вы получите список адресов, разделенных пробелами. Проверьте каждый адрес в браузере.
Также вы можете узнать свой IP, запросив его с помощью команды curl:
curl -4 icanhazip.com
Узнав свой внешний адрес, введите в браузер:
http://your_server_ip
Вы увидите стандартную страницу Apache для CentOS 7.
Эта страница позволяет убедиться, что Apache работает правильно; также она содержит базовую информацию о важных файлах и каталогах Apache.
3: Управление процессами Apache
Чтобы остановить сервер, введите:
sudo systemctl stop httpd
Запустить сервер может команда:
sudo systemctl start httpd
Для перезапуска используйте:
sudo systemctl restart httpd
Во время настройки Apache можно часто перезагружать, не сбрасывая соединений. Для этого вы можете использовать команду:
sudo systemctl reload httpd
По умолчанию Apache запускается автоматически вместе с сервером. Чтобы удалить Apache из автозагрузки, отключите сервис:
sudo systemctl disable httpd
Чтобы добавить Apache в автозагрузку, используйте команду:
sudo systemctl enable httpd
Стандартная настройка Apache позволяет вам разместить один сайт. Если вы хотите обслуживать больше сайтов, нужно настроить виртуальные хосты.
5: Настройка виртуального хоста (рекомендуется)
На веб-сервере Apache вы можете использовать виртуальные хосты (аналогичные блокам server в Nginx) для изоляции настроек и размещения нескольких доменов на одном сервере. Здесь используется условный домен example.com, но вы должны заменить его собственным доменом.
Apache в CentOS 7 по умолчанию предоставляет один включенный виртуальный хост, который обслуживает каталог /var/www/html. Этого хватит для обслуживания одного сайта, но если вы хотите разместить несколько сайтов, вам нужно создать новые виртуальные хосты. Создайте структуру каталогов в /var/www для сайта example.com, а /var/www/html оставьте как каталог по умолчанию, который будет обслуживаться, если запрос клиента не соответствует другим сайтам.
Создайте каталог example.com, используя флаг -p для создания всех необходимых родительских каталогов:
sudo mkdir -p /var/www/example.com/html
Создайте дополнительный каталог для хранения логов нового сайта:
sudo mkdir -p /var/www/example.com/log
Затем определите права на каталог с помощью переменной $USER:
sudo chown -R $USER:$USER /var/www/example.com/html
Установите привилегии:
sudo chmod -R 755 /var/www
Затем создайте образец страницы index.html с помощью любого редактора:
sudo vi /var/www/example.com/html/index.html
Нажмите i, чтоб перейти в режим INSERT, и вставьте в файл:
<html>
<head>
<title>Welcome to Example. com!</title>
</head>
<body>
<h2>Success! The example.com virtual host is working!</h2>
</body>
</html>
Сохраните и закройте файл (Esc, :wq, Enter).
Вы почти готовы создать файл виртуального хоста. Файлы виртуальных хостов задают конфигурацию отдельных сайтов и сообщают веб-серверу Apache, как реагировать на запросы к разным доменам.
Прежде чем создавать виртуальные хосты, вам нужно создать каталог sites-available, в котором они будут храниться, а также каталог sites-enabled, который сообщит Apache, что виртуальный хост готов обслуживать посетителей. Каталог sites-enabled будет содержать симлинки на виртуальные хосты, которые нужно включить в работу. Создайте оба каталога с помощью следующей команды:
sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled
Теперь настройте Apache для поиска виртуальных хостов в каталоге sites-enabled. Для этого отредактируйте главный конфигурационный файл:
sudo vi /etc/httpd/conf/httpd. conf
В конец файла добавьте строку:
IncludeOptional sites-enabled/*.conf
Сохраните и закройте файл. Теперь можно создать сам виртуальный хост.
sudo vi /etc/httpd/sites-available/example.com.conf
Вставьте в файл следующие конфигурации. Замените example.com своим доменом:
<VirtualHost *:80>
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
</VirtualHost>
Теперь Apache знает, где найти корневой каталог проекта, в котором хранятся все доступные веб-документы. Также Apache знает, где хранить логи ошибок и запросов этого сайта.
Сохраните и закройте файл.
Включите файл, создав символьную ссылку на этот виртуальный хост в каталоге sites-enabled (так Apache будет понимать, что этот сайт нужно обслуживать):
sudo ln -s /etc/httpd/sites-available/example. com.conf /etc/httpd/sites-enabled/example.com.conf
Ваш виртуальный хост настроен и готов к обслуживанию контента. Прежде чем перезапустить сервис Apache, убедитесь, что политики SELinux для виртуальных хостов установлены правильно.
5: Настройка прав SELinux для виртуального хоста
SELinux поддерживает стандартные параметры Apache. Поскольку в файле виртуального хоста вы настроили пользовательский каталог логов, вы получите сообщение об ошибке, если попытаетесь запустить сервис Apache. Чтобы решить эту проблему, вам нужно обновить политики SELinux и позволить Apache изменять некоторые файлы. SELinux повышает безопасность среды CentOS 7, поэтому полностью отключать модуль ядра не рекомендуется.
Существуют различные способы установки политик в зависимости от потребностей вашей среды (SELinux позволяет настраивать уровень безопасности). Этот раздел продемонстрирует два метода настройки политик Apache: глобальный и в определенном каталоге. Корректировка политик для отдельного каталога более безопасна и поэтому является рекомендуемым подходом.
Глобальное изменение политик Apache
При глобальной настройке политики Apache SELinux будет одинаково обрабатывать все процессы Apache, применяя логическое значение httpd_unified. Этот подход более удобен, но он менее гибкий и безопасный.
Выполните следующую команду, чтобы установить универсальную политику Apache:
sudo setsebool -P httpd_unified 1
Команда setsebool изменяет логические значения SELinux. Флаг -P обновит значение времени загрузки, сохраняя это изменение при перезагрузках. httpd_unified – это логическое значение, благодаря которому SELinux будет обрабатывать все процессы Apache как один и тот же тип. Значение 1 включает его.
Изменение политики по каталогам
Индивидуальная настройка привилегий SELinux для каталога /var/www/example.com/log дает больший контроль над политиками Apache, но также может потребовать дополнительного обслуживания. Поскольку это не глобальная настройка, вам нужно будет вручную установить тип контекста для всех каталогов с логами, указанных в конфигурациях виртуального хоста.
Сначала проверьте тип контекста, который SELinux предоставил каталогу /var/www/example.com/log:
sudo ls -dZ /var/www/example.com/log/
Эта команда выводит список всех контекстов SELinux для каталогов:
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/example.com/log/
Текущий контекст – httpd_sys_content_t, который говорит SELinux, что процесс Apache может только читать файлы, созданные в этом каталоге. Нам нужно изменить тип контекста каталога /var/www/example.com/log на httpd_log_t. Этот тип позволит Apache создавать и добавлять файлы логов веб-приложений:
sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"
Затем используйте команду restorecon, чтобы применить эти изменения и сохранить их при перезагрузке:
sudo restorecon -R -v /var/www/example.com/log
Флаг -R запускает эту команду рекурсивно, то есть она обновит все существующие файлы и они тоже будут использовать новый контекст. Флаг -v выведет изменения контекста, которые выполнила команда. Вы увидите следующий вывод, подтверждающий изменения:
restorecon reset /var/www/example.com/log context unconfined_u:object_r:httpd_sys_content_t:s0->unconfined_u:object_r:httpd_log_t:s0
Снова запросите список контекстов:
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
Теперь, когда каталог /var/www/example.com/log использует тип httpd_log_t, вы можете протестировать конфигурацию виртуального хоста.
6: Тестирование виртуального хоста (рекомендуется)
Как только вы обновите контекст SELinux (любым из методов), Apache сможет записывать и изменять файлы в каталоге /var/www/example.com/log. Теперь вы можете перезапустить Apache:
sudo systemctl restart httpd
Запросите содержимое каталога /var/www/example.com/log, чтобы увидеть, создал ли Apache файлы логов:
ls -lZ /var/www/example. com/log
Вы увидите, что Apache смог создать файлы error.log и requests.log, указанные в конфигурации виртуального хоста:
-rw-r--r--. 1 root root 0 Feb 26 22:54 error.log
-rw-r--r--. 1 root root 0 Feb 26 22:54 requests.log
Теперь, когда виртуальный хост и привилегии SELinux настроены, Apache будет обслуживать ваш домен. Вы можете проверить его работу, перейдя по ссылке http://example.com, где вы должны увидеть строку:
Success! The example.com virtual host is working!
Если страница открылась, значит виртуальный хост успешно настроен и обслуживает контент. Повторите разделы 4 и 5, чтобы создать новые виртуальные хосты и обновить привилегии SELinux.
Заключение
В этом мануале вы научились устанавливать и управлять веб-сервером Apache. Теперь у вас есть много вариантов: вы можете выбрать тип контента, который хотите обслуживать, и внедрить дополнительные технологии для создания более сложного сайта.
Если вы хотите установить полный стек приложений, читайте Установка LAMP stack на CentOS 7.
Tags: Apache, CentOS 7, LAMP stack
Как установить Apache на CentOS 7
19.12.20202020-12-19T17:36:19+03:002021-01-14T14:21:19+03:00
CentOS, Linux
Комментариев нет
HTTP-сервер Apache — самый популярный веб-сервер в мире. Это бесплатный кроссплатформенный HTTP-сервер с открытым исходным кодом, обеспечивающий мощные функции, которые можно расширить с помощью самых разных модулей. Следующие инструкции описывают, как установить и управлять веб-сервером Apache на вашем компьютере CentOS 7.
Содержание
Подготовка
Перед тем, как начать работу с руководством, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .
Установка Apache
Apache доступен в репозиториях CentOS по умолчанию, и установка довольно проста.
В CentOS и RHEL пакет Apache и служба называются httpd
. Чтобы установить пакет, выполните следующую команду:
sudo yum install httpd
После завершения установки включите и запустите службу Apache:
sudo systemctl enable httpdsudo systemctl start httpd
Настройка брандмауэра
Если ваш сервер защищен брандмауэром, вам необходимо открыть порты HTTP и HTTPS, 80
и 443
. Используйте следующие команды, чтобы открыть необходимые порты:
sudo firewall-cmd --permanent --zone=public --add-service=httpsudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Проверка установки Apache
Теперь, когда у нас установлен и запущен Apache на нашем сервере CentOS 7, мы можем проверить статус и версию службы Apache с помощью:
sudo systemctl status httpd
● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-04-26 07:13:07 UTC; 11s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 3049 (httpd) ...
sudo httpd -v
Server version: Apache/2.4.6 (CentOS) Server built: Oct 19 2017 20:39:16
Наконец, чтобы убедиться, что все работает правильно, откройте IP-адрес своего сервера http://YOUR_IP
в выбранном браузере, и вы увидите страницу приветствия CentOS 7 Apache по умолчанию, как показано ниже:
Управление службой Apache
Вы можете управлять службой Apache так же, как и любым другим модулем systemd.
Чтобы остановить службу Apache, запустите:
sudo systemctl stop httpd
Чтобы запустить его снова, введите:
sudo systemctl start httpd
Чтобы перезапустить службу Apache:
sudo systemctl restart httpd
Чтобы перезагрузить службу Apache после внесения некоторых изменений в конфигурацию:
sudo systemctl reload httpd
Если вы хотите отключить запуск службы Apache при загрузке:
sudo systemctl disable httpd
И чтобы снова включить его:
sudo systemctl enable httpd
Структура файла конфигурации Apache и передовые методы
- Все файлы конфигурации Apache находятся в каталоге
/etc/httpd
. - Основной файл конфигурации Apache — это
/etc/httpd/conf/httpd.conf
. - Все файлы конфигурации с
.conf
расположенные в каталоге/etc/httpd/conf.d
, включены в основной файл конфигурации Apache. - Файлы конфигурации, отвечающие за загрузку различных модулей Apache, находятся в каталоге
/etc/httpd/conf. modules.d
. - Для удобства обслуживания рекомендуется создавать отдельный файл конфигурации (vhost) для каждого домена.
- Новые файлы vhost Apache должны оканчиваться на
.conf
и храниться в каталоге/etc/httpd/conf.d
. Вы можете иметь столько хостов, сколько вам нужно. - Рекомендуется следовать стандартному соглашению об именах, например, если ваше доменное имя —
mydomain.com
тогда файл конфигурации должен называться/etc/httpd/conf.d/mydomain.com.conf
- Файлы журнала Apache (
access_log
иerror_log
) находятся в каталоге/var/log/httpd/
. Рекомендуется иметь разные файлыaccess
и журналовerror
для каждого виртуального хоста. - Вы можете установить корневой каталог документов домена в любое место. Наиболее распространенные места для webroot:
/home/<user_name>/<site_name>
/var/www/<site_name>
/var/www/html/<site_name>
/opt/<site_name>
Выводы
Вы успешно установили Apache на свой сервер CentOS 7. Теперь вы готовы начать развертывание своих приложений и использовать Apache в качестве веб-сервера или прокси-сервера.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Этот пост является частью серии Install LAMP Stack on CentOS 7. Другие сообщения из этой серии:
- Установите MySQL на CentOS 7
- Как настроить виртуальные хосты Apache на CentOS 7
- Защитите Apache с помощью Let’s Encrypt на CentOS 7
Установка HTTP-сервера Apache на CentOS 7 | by Jennelle Cosby
Tutorial
В этом руководстве рассматривается установка Apache, бесплатного и чрезвычайно популярного веб-сервера с открытым исходным кодом для CentOS 7. Эта установка позволит протестировать веб-страницы, обслуживаемые через Apache веб сервер.
Предварительные условия :
- Настройка пользователя без полномочий root с привилегиями sudo в CentOS 7
- Обновление сервера CentOS 7
- Настройка базового брандмауэра на CentOS 7
Чтобы запустить обновления на сервере CentOS, введите следующую команду:
$ sudo yum update
Эта команда гарантирует, что все программное обеспечение обновлено и использует последние версии. Процесс должен занять пару минут. Обновления будут завершены, когда в терминале появится этот вывод:
Этот шаг позволяет Apache запускать трафик через Интернет. Введите команду ниже, чтобы установить брандмауэр.
$ sudo yum install firewalld
После ввода этой команды и нажатия «Enter» пользователю будет предложено ввести пароль и разрешение на установку необходимых пакетов.
После завершения установки на экране появится сообщение «Завершено!» Затем выполните команду enable брандмауэра:
$ sudo systemctl enable firewalld
Запустите брандмауэр, выполнив эту команду:
$ sudo systemctl start firewalld
Чтобы убедиться, что брандмауэр работает правильно, выполните проверку состояния с помощью этой команды:
$ sudo systemctl status firewalld
В выводе должно быть указано, что брандмауэр « активен (работает) ».
Сначала введите следующую команду для установки веб-сервера:
$ sudo yum install httpd
После завершения настройте порт по умолчанию для HTTP (80) и HTTPS (443) для запуска через брандмауэр с помощью следующие команды:
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Нажатие «Ввод» после каждой записи должно возвращать « успех ». Чтобы изменения вступили в силу, пользователь должен выполнить перезагрузку с помощью этой команды:
$ sudo firewall-cmd --reload
После получения « success » после перезагрузки брандмауэра следующие команды запустят Apache и подтвердят его « активен (работает) » статус:
$ sudo systemctl start httpd
$ sudo systemctl status httpd
Результат будет таким:
Чтобы проверить подключение к серверу Apache, найдите общедоступный IP-адрес пользователя с помощью этой команды:
$ sudo curl ifconfig .me
Выходные данные должны отображать общедоступный IP-адрес в следующей строке.
Скопируйте IP-адрес и проверьте его, введя его как http:// your_server.public_i p в строке поиска браузера. Когда он отобразит тестовую страницу, установка прошла успешно!
Больше контента на PlainEnglish.io . Подпишитесь на нашу бесплатную еженедельную рассылку . Следуйте за нами на Twitter и LinkedIn . Посетите наш Сообщество Discord и присоединитесь к нашему Коллективу Талантов .
Установка веб-сервера Apache на CentOS 7 • CloudSigma
Веб-сервер хранит, обрабатывает и доставляет веб-страницы посетителям веб-сайта. Существует довольно много вариантов программного обеспечения веб-сервера с открытым исходным кодом, но HTTP-сервер Apache считается наиболее широко используемым веб-сервером в мире. Это связано с тем, что, помимо открытого исходного кода, его модульная архитектура позволяет расширять его возможности за счет добавления модулей для различных целей. В результате веб-сервер чрезвычайно надежен.
Если вы хотите установить Apache в системе CentOS 7, это руководство для вас. Кроме того, вы узнаете, как создавать виртуальные хосты, чтобы вы могли обслуживать несколько веб-сайтов на одном HTTP-сервере Apache, работающем на CentOS.
Это подробное руководство посвящено только установке Apache. Если вы искали точечный учебник по стеку LAMP, у нас есть это руководство по установке Linux, Apache, MySQL, PHP (LAMP) на CentOS 7, которое вы можете проверить. Теперь начнем!
Предварительные условия
Поскольку это практическое руководство, у вас должно быть следующее:
- Сервер под управлением CentOS 7. Вы можете создать его в CloudSigma, выполнив несколько простых шагов по этой ссылке.
- Настройте пользователя без полномочий root с привилегиями sudo на вашем сервере. Затем войдите под этим пользователем.
- Настройте базовый брандмауэр, следуя инструкциям из нашего руководства по настройке брандмауэра с помощью FirewallD в CentOS 7.
Шаг 1. Установка HTTP-сервера Apache
Вы можете найти Apache в репозиториях CentOS по умолчанию. Следовательно, установка проста с использованием менеджера пакетов yum . В разделе предварительных требований вам необходимо войти в систему с пользователем без полномочий root. Выполните следующую команду в своем терминале, чтобы обновить локальный индекс пакета Apache httpd:
обновление судо-юм httpd
обновление sudo yum httpd |
После обновления пакетов введите следующую команду для установки Apache:
Судо Юм установить httpd
Судо Юм установить httpd |
Подтвердите установку и подождите, пока yum установит Apache и его необходимые зависимости.
Если вы следовали инструкциям руководства по настройке брандмауэра с помощью FirewallD в CentOS 7 и включили брандмауэр для порта 80, то все готово. Firewalld — это менеджер брандмауэра для CentOS. В противном случае вы можете включить службу http (порт 80) firewalld, введя следующую команду:
sudo firewall-cmd —permanent —add-service=http
sudo firewall-cmd —permanent —add-service=http |
Если вы планируете обслуживать трафик через безопасный HTTPS, вы можете включить службу https (порт 443) firewalld, введя следующую команду:
sudo firewall-cmd —permanent —add-service=https
sudo firewall-cmd —permanent —add-service=https |
Наконец, вы должны перезагрузить firewalld, чтобы изменения вступили в силу. Вот команда для перезагрузки:
sudo firewall-cmd – перезагрузка
sudo firewall-cmd – перезагрузка |
На этом этапе вы установили и настроили Apache для обслуживания трафика по HTTP или HTTPS, в зависимости от того, выполняете ли вы приведенные выше команды.
Шаг 2: Подтверждение того, что веб-сервер Apache работает
В CentOS процесс Apache не запускается автоматически после установки. Чтобы вручную запустить Apache, введите следующую команду:
sudo systemctl начать httpd
запуск sudo systemctl httpd |
Чтобы убедиться, что служба запущена успешно, проверьте статус, введя следующую команду:
.
статус sudo systemctl httpd
статус sudo systemctl httpd |
Если служба запущена, вы должны увидеть вывод, аналогичный приведенному ниже снимку экрана. Обратите внимание на активный статус:
Вывод указывает, что служба успешно запущена и работает. Затем мы также должны проверить, может ли Apache обслуживать страницу для пользователей Интернета. Apache поставляется со страницей по умолчанию, которую вы можете использовать для проверки возможности доступа к вашему серверу через Интернет.
Вам нужно будет найти общедоступный IP-адрес вашего сервера, если у вас его еще нет. Этот IP-адрес вы будете использовать в адресной строке браузера для запроса веб-страницы Apache по умолчанию. Вы можете отобразить сетевые адреса хоста, введя следующую команду:
имя хоста –I
имя хоста –I |
Из полученного списка адресов вы можете попробовать каждый в своем браузере, чтобы убедиться, что они работают. При желании вы можете использовать curl , чтобы получить свой IP-адрес с icanhazip.com . Приведенная ниже команда выводит ваш общедоступный IP-адрес так, как он виден с компьютера в другом месте в Интернете:
.
curl -4 icanhazip.com
curl -4 icanhazip.com |
Получив общедоступный IP-адрес вашего сервера, скопируйте и вставьте его в адресную строку браузера:
.
http://ваш_сервер_публичный_ip
http://ваш_сервер_публичный_ip |
Ваш браузер должен загрузить веб-страницу Apache CentOS 7 по умолчанию:
Если вы смогли загрузить веб-страницу Apache по умолчанию, это означает, что ваш сервер работает правильно. Если вы прокрутите вниз, вы увидите некоторую основную информацию о файлах Apache и расположении каталогов. Если служба установлена и работает правильно, вы сможете использовать различные systemctl команды для управления службой.
Шаг 3: Управление службой Apache
В этом разделе мы покажем вам некоторые основные команды управления Apache. Вот команда, которая останавливает веб-сервер:
sudo systemctl остановить httpd
sudo systemctl остановить httpd |
Вот команда для запуска веб-сервера:
sudo systemctl начать httpd
запуск sudo systemctl httpd |
Далее это команда для перезапуска веб-сервера (остановка и запуск):
sudo systemctl перезапустить httpd
sudo systemctl перезапустить httpd |
После этого мы покажем вам команду для перезагрузки службы Apache. Эта команда необходима, когда вы просто вносите изменения в конфигурацию. При перезагрузке процесс Apache примет изменения конфигурации, не разрывая соединения, как это было бы, если бы вы перезапустили:
sudo systemctl перезагрузить httpd
sudo systemctl перезагрузить httpd |
В конфигурациях по умолчанию Apache запускается автоматически при загрузке сервера. Если вы хотите изменить это поведение, вот команда, чтобы отключить запуск службы при загрузке:
sudo systemctl отключить httpd
sudo systemctl отключить httpd |
Чтобы снова включить запуск службы при загрузке, введите следующую команду:
sudo systemctl включить httpd
sudo systemctl включить httpd |
Шаг 4. Настройка виртуальных хостов Apache
По умолчанию Apache настроен для размещения и обслуживания одного веб-сайта. В большинстве случаев вам понадобится, чтобы ваш веб-сервер обслуживал и размещал несколько веб-сайтов. Например, у вас могут быть поддомены или вы можете настроить страницу блога для основного веб-сайта вашей компании/организации. Вот где вступают в игру виртуальные хосты Apache. Виртуальные хосты Apache позволяют настроить веб-сервер для обслуживания нескольких веб-сайтов. Виртуальные хосты Apache являются эквивалентом серверных блоков на сервере Nginx.
В этом руководстве мы покажем вам, как создать виртуальный хост, используя example.com в качестве нашего домена. Конечно, домен example.com не будет работать в Интернете, поэтому вам следует заменить его своим фактическим доменом — шаги те же.
Когда вы устанавливаете Apache в CentOS, он устанавливает один виртуальный хост, настроенный для обслуживания контента из каталога /var/www/html . Этот дизайн хорошо работает, если вы размещаете один сайт. Однако мы хотим иметь возможность размещать несколько сайтов. Мы оставим значение по умолчанию /var/www/html и вместо этого создайте другой каталог для домена example.com в расположении /var/www . Причина отказа от каталога по умолчанию заключается в том, что он обслуживается, когда запросы клиентов не соответствуют каким-либо другим сайтам, которые вы настроили с виртуальными хостами. Более того, если вы хотите отключить созданные вами виртуальные хосты, по умолчанию остается обслуживать трафик.
Сначала создайте каталог внутри /var/www для вашего доменного имени. Вы вольны выбрать имя по вашему выбору. Тем не менее, рекомендуется выбрать имя, похожее на ваш домен, чтобы его было легче запомнить при создании виртуального хоста 9.0165 conf файл. Введите следующую команду, чтобы создать пример каталога:
sudo mkdir -p /var/www/example
sudo mkdir -p /var/www/example |
Введите следующую команду, чтобы создать дополнительную папку, в которой будут храниться файлы журнала для сайта:
sudo mkdir -p /var/www/example/log
sudo mkdir -p /var/www/example/log |
Имея каталоги вашего веб-сайта, назначьте владельца каталога с помощью переменной среды $USER , используя следующую команду:
sudo chown -R $USER:$USER /var/www/example
sudo chown -R $USER:$USER /var/www/example |
Выполните следующую команду, чтобы убедиться, что ваш веб-корневой каталог имеет разрешения по умолчанию:
.
sudo chmod -R 755 /var/www
sudo chmod -R 755 /var/www |
Теперь создайте простую страницу index.html , используя nano внутри каталога example , введя следующую команду:
судо нано /var/www/example/index.html
судо нано /var/www/example/index.html |
В редакторе nano добавьте следующий фрагмент кода HTML:
.
<голова>
голова>
<тело>
Если вы видите это сообщение, это означает, что виртуальный хост
example.com работает!
тело>
1 2 3 4 5 6 7 8 |
Если вы видите это сообщение, значит Виртуальный хостexample. com работает!
|
После этого сохраните файл, нажав Ctrl O и нажмите ENTER . Теперь вы можете закрыть редактор, нажав Ctrl X .
Пока у нас есть каталог вашего сайта и базовая веб-страница для тестирования виртуального хоста. Далее мы хотим создать файлы конфигурации виртуального хоста. Файлы виртуального хоста определяют конфигурации различных сайтов, которые вы хотите разместить на одном сервере Apache. Они направляют запросы заданного доменного имени в конкретный каталог.
Файлы виртуального хоста хранятся в каталоге /etc/httpd/sites-available . Активированные файлы виртуального хоста имеют символическую ссылку из каталога /etc/httpd/sites-available в каталог /etc/httpd/sites-enabled . Эти два каталога не создаются по умолчанию в CentOS, поэтому вам придется создать их самостоятельно. Введите следующую команду для создания каталогов:
sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled
sudo mkdir /etc/httpd/sites-enabled /etc/httpd/sites-enabled |
Имея каталоги, укажите Apache искать виртуальные хосты в каталоге с включенными сайтами. Вы сделаете это, изменив основной файл конфигурации для Apache. Введите следующую команду, чтобы открыть файл в редакторе nano:
судо нано /etc/httpd/conf/httpd.conf
судо нано /etc/httpd/conf/httpd.conf |
Мы хотим добавить строку, которая будет указывать Apache искать дополнительные файлы конфигурации в необязательном каталоге. Прокрутите файл до конца и добавьте в конец следующую строку:
.
IncludeOptional sites-enabled/*.conf
IncludeOptional site-enabled/*.conf |
Сохраните файл, нажав Ctrl O и нажмите ENTER . Теперь вы можете закрыть редактор, нажав Контр. X . Следующим шагом является создание файла виртуального хоста в каталоге, доступном для сайтов. Введите следующую команду, чтобы создать и открыть новый файл в редакторе nano:
sudo nano /etc/httpd/sites-available/example. conf
sudo nano /etc/httpd/sites-available/example.conf |
В открывшемся файле добавьте следующий блок конфигурации. Не забудьте заменить наш example.com на ваше фактическое доменное имя, и если вы использовали другое имя каталога в /var/www/example , также обновите его соответствующим образом:
<Виртуальный хост *:80>
Имя сервера www.example.com
Псевдоним сервера example.com
DocumentRoot /var/www/example
Журнал ошибок /var/www/example/log/error.log
CustomLog /var/www/example/log/requests.log вместе
1 2 3 4 5 6 7 | ServerName www.example.com Serveralias example.com DocumentRoot/var/www/Пример errorlog /var/ww/Examp var/www/example/log/requests.log в сочетании
|
Как видите, мы указали имя домена и корень документа, где будут находиться файлы, которые будут обслуживаться для этого домена. Мы также указали расположение журнала ошибок — это поможет вам при устранении неполадок сервера.
Когда наш файл виртуального хоста находится в каталоге с доступом к сайтам , следующим шагом будет включение файла путем создания символической ссылки на каталог с поддержкой сайтов . Введите следующую команду, чтобы создать символическую ссылку:
.
sudo ln -s /etc/httpd/sites-available/example.conf /etc/httpd/sites-enabled/example.conf
sudo ln -s /etc/httpd/sites-available/example.conf /etc/httpd/sites-enabled/example.conf |
Если вы выполнили шаги до этого момента, ваш виртуальный хост теперь должен быть готов обслуживать контент вашего веб-сайта. Однако есть еще одна проверка, которую необходимо настроить, прежде чем виртуальные хосты начнут работать. Мы рассмотрим это далее.
Шаг 5. Настройте разрешения SELinux, чтобы разрешить виртуальные хосты
Дистрибутивы Linux, включая Fedora, RHEL и CentOS, поставляются с SELinux по умолчанию. SELinux (Security Enhanced Linux) — это архитектура безопасности для систем Linux, которая ограничивает и определяет, как сервер должен обрабатывать запросы и как пользователи должны взаимодействовать с сокетами, сетевыми портами и важными каталогами.
По умолчанию SELinux будет работать с конфигурацией Apache по умолчанию. Однако с созданным вами настраиваемым виртуальным хостом, включая настраиваемый каталог журналов, при попытке перезапустить службу Apache будет выдана ошибка службы. Решение состоит в том, чтобы изменить политики SELinux, чтобы служба Apache могла записывать необходимые файлы.
SELinux делает CentOS высокозащищенным сервером. Таким образом, мы не рекомендуем отключать его полностью. Учитывая, что SELinux позволяет настраивать уровень безопасности различными способами, рекомендуется обновлять или устанавливать политики только в соответствии с потребностями вашей среды.
У вас есть два варианта обновления политик Apache: либо Универсально , либо для конкретного каталога . Обновление политик, специфичных для каталога, более безопасно. Следовательно, это рекомендуемый вариант.
Вы можете универсально изменить политику Apache, которая будет указывать SELinux одинаково обрабатывать все процессы Apache, используя логическое значение httpd_unified . Имейте в виду, что универсальное изменение политик Apache не даст вам такого же уровня контроля, как изменение каждого каталога определенным образом. Тем не менее, это более удобно, когда дело доходит до обслуживания. Выполните следующую команду для универсального обновления политик Apache:
sudo setsebool -P httpd_unified 1
sudo setsebool -P httpd_unified 1 |
Давайте определим, что делают значения в этой команде:
Если вам нужен больший контроль над каталогами, то настройка политик Apache для каждого каталога — правильный путь. Тем не менее, это связано с накладными расходами, требующими большего обслуживания. Это потому, что политика не является глобальной. Следовательно, вам нужно будет вручную установить тип контекста для любых новых каталогов журналов, которые вы укажете в файлах конфигурации вашего виртуального хоста.
Перед обновлением политики сначала проверьте тип контекста, который SELinux присвоил каталогу /var/www/example/log , используя следующую команду:
sudo ls -dZ /var/www/example/log/
sudo ls -dZ /var/www/example/log/ |
Команда выведет что-то вроде следующего, что в основном является контекстом каталога SELinux:
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/example/log/
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/example/log/ |
httpd_sys_content_t — это текущий контекст, сообщающий SELinux, что процессу Apache разрешено читать только файлы, созданные в этом каталоге. Поскольку из наших конфигураций виртуального хоста мы хотим, чтобы Apache писал в файлы журнала в каталоге /var/www/example/log , мы изменим эту политику, чтобы позволить Apache создавать и добавлять файлы журнала веб-приложений. Контекст, который позволяет это сделать, — это httpd_log_t . Вот команда для обновления контекста:
sudo semanage fcontext -a -t httpd_log_t «/var/www/example/log(/.*)?»
sudo semanage fcontext -a -t httpd_log_t «/var/www/example/log(/.*)?» |
Чтобы применить изменения из приведенной выше команды и сохранить их при загрузке, выполните следующую команду:
sudo restorecon -R -v /var/www/example/log
sudo restorecon -R -v /var/www/example/log |
Давайте определим, что делает команда:
- restorecon — применяет изменения и обеспечивает их сохранение после перезагрузки.
- -R — запустит команду рекурсивно, обновив все существующие файлы для использования нового контекста.
- -v флаг — выводит изменения контекста после запуска команды. Он выведет что-то вроде этого:
Флаг
Выход:
restorecon reset /var/www/example/log context unconfined_u:object_r:httpd_sys_content_t:s0->unconfined_u:object_r:httpd_log_t:s0
Вывод: restorecon reset /var/www/example/log context unconfined_u:object_r:httpd_sys_content_t:s0->unconfined_u:object_r:httpd_log_t:s0 |
Чтобы просмотреть изменения контекста, вы можете снова запустить следующую команду:
sudo ls -dZ /var/www/example/log/
sudo ls -dZ /var/www/example/log/ |
Вы должны увидеть обновленный тип контекста в выводе:
drwxr-xr-x. root root unconfined_u:object_r:httpd_log_t:s0 /var/www/example.com/log
drwxr-xr-x. root root unconfined_u:object_r:httpd_log_t:s0 /var/www/example.com/log |
После обновления политик каталогов SELinux, позволяющих Apache записывать в каталог журналов, мы теперь можем протестировать виртуальный хост.
Шаг 6. Проверка конфигурации виртуального хоста
Прежде чем мы сможем протестировать виртуальный хост, вам потребуется перезапустить службы Apache. Вот команда для этого:
sudo systemctl перезапустить httpd
sudo systemctl перезапустить httpd |
Затем выведите список содержимого каталога журнала с помощью следующей команды:
.
ls -lZ /var/www/example/log
ls -lZ /var/www/example/log |
Он должен отображать что-то вроде этого, показывая, что Apache создал файлы журнала:
Если вы выполняли шаги до этого момента, Apache должен теперь иметь возможность обслуживать образец HTML-страницы при посещении вашего доменного имени как определенный в вашем файле виртуального хоста. При желании вы можете повторить шаги 4 и 5, чтобы настроить дополнительные домены и соответствующим образом обновить их разрешения SELinux.
Заключение
В этом руководстве мы установили Apache, узнали, как обновить политики SELinux, чтобы позволить Apache записывать в пользовательские файлы журналов, и, наконец, протестировали нашу конфигурацию, чтобы убедиться, что она работает правильно. Используя этот фон, вы сможете использовать его и обслуживать более качественные приложения с более богатым опытом.
Если вы хотите изучить полный веб-стек, ознакомьтесь с нашим руководством по установке стека LAMP в CentOS 7.
Успехов в работе!
- О
- Последние новости
Об Акшае Нагпале
Аналитика больших данных и энтузиаст машинного обучения.
- Как импортировать пакеты в Go — 13 сентября 2022 г.
- Быстрые решения для восстановления поврежденных таблиц в MySQL: Учебное пособие — 26 августа 2022 г.