Apache является веб-сервером c открытым исходным кодом, разработанный для современных операционных систем, включая UNIX и Windows. Это безопасный, эффективный и расширяемый сервер, предоставляющий услуги HTTP синхронизированные с текущими стандартами HTTP.
Многие люди используют его для размещения своих веб – сайтов и приложений. На самом деле, согласно последним статистическим данным, Apache является наиболее широко используемым веб – сервер в мире, с Windows , IIS следующее на втором и на третьем месте российская разработка, которая является Nginx.
Функциональность Apache является большим, и можно найти много хороших возможностей для веб – сайта или приложения. На этом уроке, мы предоставим Вам информацию о виртуальном хосте Apache через примеры конфигурации на CentOS 7.
Виртуальный хост, на самом деле, блок, который описывает отдельный домен в грандиозной схеме веб-сервера Apache. Это позволяет размещать несколько веб-сайтов с помощью одного сервера, который очень полезен для людей, которые имеют более одного сайта.
Каждый домен, который выполнен с директивой виртуального хоста внутри конфигурации Apache будет направлять посетителя в определенный каталог , где тот самый веб – сайт размещен на сервере. Например, ваш WordPress сайт установлен в /var/www/wordpress/ поэтому при создании директивы виртуального хоста, корень документа для сайта будет установлен в /var/www/wordpress/, который позволит веб – серверу извлекать данные из веб – сайта соответствующего настроенного каталога.
Войдите на сервер с помощью SSH:
ssh root@server_ip
Перед тем как начать, введите следующую команду, чтобы проверить есть ли у вас правильная версия CentOS, установленная на вашем компьютере:
cat /etc/redhat-release
вывод должен быть примерно такой:
CentOS Linux release 7.2.1511 (Core)
Убедитесь, что ваш сервер полностью обновлен:
yum update
На наших серверах CentOS 7, Apache устанавливается по умолчанию. Однако, если у вас нет Apache установленным на вашем сервере вы можете сделать это довольно простой командой:
yum install httpd
Включите Apache и добавьте его в запуск при загрузке:
systemctl start httpd.service systemctl enable httpd.service
Большинство веб – мастеров сегодня используют WordPress в качестве платформы для размещения их на сайте. Сайт на WordPress работает с базой данных MySQL, так что если вы планируете использовать эту статью для создания виртуальных хостов с сайтами WordPress (или на любой другой платформе, которая нуждается в базе данных), вам нужно будет установить MySQL и PHP на вашем сервере, который завершит так называемый стек LAMP (Linux Apache, MariaDB и PHP). У нас есть отличная статья о том, как установить LAMP на CentOS 7 так что вы можете проверить его здесь.
Apache имеет глобальный конфигурационный файл, в котором все настройки по умолчанию хранятся и применяются к серверу. Директива виртуального хоста может быть сохранена в том же файле по умолчанию httpd.conf или другой, который будет соответствовать настроенному веб – сайту/домену.
Этот глобальный конфигурационный файл Apache в CentOS 7 является /etc/httpd/conf/httpd.conf. Вы можете использовать текстовый редактор по вашему выбору и посмотреть содержимое этого файла, так что вы получите некоторое представление о том, как настроен Apache.
Файл конфигурации прокомментирован перед каждой установкой, которые объясняют их использование. Так, например, ServerRoot установка верхней части дерева каталога, при которых лежат конфигурационные файлы Apache.
Listen директива связывает Apache с определенным IP – адресом и портом. Порт прослушивания Apache по умолчанию: 80.
Значения user/group являются имена user/group, работает как HTTPD (Apache). В CentOS пользователь и группа являются Apache/Apache, в Ubuntu/ Debian являются www-data/www-data.
Другим важным параметром является DocumentRoot, который является каталогом, из которого данные будут поданы к посетителю. Как правило, в большинстве дистрибутивах корневой документ по умолчанию для Apache установлен в /var/www/html/, так что если вы посмотрите данные в /var/www/html/ вы сможете получить доступ к этим же данным через веб – браузер с помощью IP адреса сервера.
Мы рассмотрели лишь незначительную часть того, что предлагает Apache своему пользователю, так что теперь давайте создадим нашу первую директиву виртуального хоста в Apache. Вы можете создать виртуальный хост внутри основного файла конфигурации Apache, однако, для более чистой и более организованной настройки мы создадим новый отдельный файл, в котором будут храниться конфигурационные строки. Существует установка ( IncludeOptional ) в глобальной конфигурации сервера Apache, где включенный каталог хранит отдельные конфигурационные файлы. Например, в CentOS 7 и Apache 2.4 (последняя версия Apache при написании этой статьи) IncludeOptional параметр установлен в /etc/httpd/conf.d/, что означает , что каждый файл * .conf, созданный в /etc/httpd/conf.d/ будет использоваться веб – сервером для обработки данных.
Поэтому, давайте создадим файл your_domain.conf, в котором мы настроим директиву виртуального хоста для вашего домена. После того, как вы вошли на свой сервер, введите следующую команду:
nano /etc/httpd/conf.d/your_domain.conf
Вставьте ниже содержание в файл:
<VirtualHost *:80> ServerAdmin webmaster@your_domain.ru DocumentRoot "/var/www/html/your_domain/" ServerName your_domain.ru ServerAlias www.your_domain.ru ErrorLog "/var/log/httpd/your_domain.ru-error_log" CustomLog "/var/log/httpd/your_domain.ru-access_log" combined <Directory "/var/www/html/your_domain/"> DirectoryIndex index.html index.php Options FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
Поясним настройки один за другим.
Этот вид конфигурации могут быть применен для большинства платформ. Тем не менее, иногда определенной конфигурации WordPress сайта, такие как выше не может быть достаточно для других видов приложений. Например, сайт на Magento нужно будет включить больше возможностей или для сайта на Odoo будет нужен обратный прокси – сервер сконфигурирован.
Одну деталь, которую стоит отметить (несмотря на то, что большинство пользователей знают это) является то, что все вышеуказанные параметры конфигурации должны быть правильно установлены до или после создания файла конфигурации Apache. Например, DocumentRoot, необходимо создать и данные, размещенным в нем.
Создание каталога пользователя:
mkdir /var/www/html/your_domain/
Теперь загрузите данные, которые вы хотите разместить внутри этой директории.
Права доступа и владельца файла является еще одной важной задачей для веб – мастеров. В большинстве случаев в серверах без панели управления, файл и каталог собственность должна принадлежать пользователю и группе, в которой Apache работает. В CentOS 7 Apache работает под управлением Apache в качестве пользователя и Apache в качестве группы. Таким образом, вам нужно будет рекурсивно присвоить, значения для файлов и каталогов в корневом каталоге документов. Следующая команда делает именно это:
chown apache:apache -R /var/www/html/your_domain/
Эта команда будет назначать Apache: Apache для каждого файла и подкаталога/директории внутри /var/www/html/your_domain/.
В этой статье мы только поверхностно описали Apache и конфигурацию виртуального хоста. Для получения дополнительной информации, вы должны посетить официальный веб – сервер Apache для ознакомления с документацией.