Меню

Apache настройка для домена

Настройка виртуальных хостов APACHE

Информация взята из https://www.8host.com/blog/nastrojka-virtualnyx-xostov-apache-v-ubuntu-16-04/

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

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

Виртуальные хосты позволяют администратору использовать один сервер для размещения нескольких сайтов (в рамках одного интерфейса или IP-адреса). Каждый домен, настроенный таким образом, будет направлять посетителя на соответствующий сайт.

Количество виртуальных хостов на одном сервере ограничивается исключительно ресурсами этого сервера.

Данное руководство поможет настроить виртуальные хосты на выделенном сервере Linux, Debian, Ubuntu, что позволит обслуживать разный контент в зависимости от запрашиваемого домена.

sudo apt-get update
sudo apt-get install apache2

Примечание: В руководстве используются условные домены example.com и test.com; не забудьте заменить их своим доменным именем.

Создание структуры каталогов Apache

Для начала нужно создать структуру каталогов, в которой будут храниться данные сайта.

Каталог document root (каталог, содержащий контент для Apache) по умолчанию находится в /var/www; в нём нужно создать отдельный каталог для каждого виртуального хоста. В каждом таком каталоге будет размещен каталог public_html, в котором будут находиться нужные файлы. Благодаря этому хостинг становится более гибким.

Необходимые каталоги можно создать при помощи следующих команд:

Примечание: Не забудьте указать свои доменные имена в командах.

Настройка прав Apache

Структура каталогов готова, но все они принадлежат пользователю root. Чтобы не-рутовый пользователь мог вносить изменения в файлы веб-каталога, нужно изменить права на эти файлы при помощи следующей команды:

Переменная $USER примет имя текущего пользователя. После этого подкаталоги каталоги public_html, содержащие контент сайтов, будут принадлежать текущему пользователю.

Также нужно изменить привилегии и открыть веб-каталог и всё его содержимое для чтения, в противном случае страницы будут отображаться некорректно.

Теперь все права установлены верно; можно приступать к созданию контента в специальных каталогах.

Создание демо-страниц для виртуальных хостов Apache

Создайте тестовый контент; для пробной настройки хостов простых страниц будет достаточно. Просто создайте страницы index.html для каждого сайта.

Начнём с example.com; откройте файл index.html в текстовом редакторе:

В этом файле создайте простой HTML-документ, который указывает, к какому сайту подключена страница. В данном случае этот файл выглядит так:

Success! The example.com virtual host is working!

Источник

Настройка виртуальных хостов на Apache для начинающих

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

Вообще, существует два способа конфигурирования виртуальных хостов: на основе имени и на основе IP-адреса. Но, так как мы настраиваем локальный сервер и у нас только один IP (кстати, для локалки он 127.0.0.1), то вариант с привязкой к IP нам не подходит и мы будем рассматривать вариант с привязкой к имени.

В прошлой статье я уже упоминал, что в файле конфигурации httpd.conf сервера есть строчка Include conf/extra/httpd-vhosts.conf. Мы ее уже раскомментировали, поэтому собственно и переходим к этому файлу. Найти его можно в папке Apache/conf/extra/.

Дальше в файле идут секции VirtualHost. Как видно из названия, каждая секция описывает настройки каждого виртуального хоста. Обязательно должна быть хотя бы одна такая секция, которая описывает настройки для localhost.

DocumentRoot “D:/server/localhost/www”
ServerName localhost
ErrorLog “D:/server/logs/localhost.error.log”
CustomLog “D:/server/logs/localhost.access.log” common

Читайте также:  Как зайти в настройки канала в ютубе

Директива DocumentRoot в этой секции указывает на папку, к которой будет происходить обращение при вызове адреса localhost.
ServerName как раз содержит имя нашего виртуального хоста, то есть его адрес. Сюда можно вписывать как адреса вида localhost, test, site, так и адреса localhost.ru, test.com, www.site.org.
В ErrorLog и CustomLog мы указываем, где будут хранится логи этого виртуального хоста. Обратите внимание, имеет смысл для каждого хоста добавлять в имя файла лога название этого хоста, чтобы в будущем было легко найти лог требуемого хоста. Эти директивы можно и не указывать, но тогда логи этого виртуального хоста будут храниться в общих логах сервера.

ScriptAlias /cgi-bin/ “d:/server/host_name/cgi-bin”

Создает ссылку на папку скриптов cgi-bin для хоста host_name.

Options Indexes Includes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

Настройки директории хоста host_name, их мы разбирали в прошлой статье.

После настройки файла httpd-vhosts.conf проверим правильность его конфигурации. В каталоге D:\server\Apache\bin\ создайте файл httpd-S.cmd с содержимым:
“D:\server\Apache\bin\httpd.exe” –S
pause

После запуска этого файла вы увидите окно с отчетом о проверке, Syntax OK в конце говорит о том, что все настройки в порядке.

Теперь нужно прописать созданные хосты в файл C:\Windows\system32\drivers\etc\hosts. Для этого открываем его текстовым редактором и вносим следующие записи:

Сохраните файл и перезапустите Apache. Попробуйте разместить в каталогах созданных вами виртуальных хостов какие-нибудь тестовые файлы (например index.html) и из браузера открыть хосты по адресам, указанным в директории ServerName каждого хоста.

Если вам приходится часто создавать виртуальные хосты и не очень хочется каждый раз редактировать все эти файлы и перезапускать Apache вручную, создайте в папке сервера (D:\server\) файл createVH.cmd с таким содержимым:

@cls
@rem Получаем текущую папку. Если у вас структура папок сервера как у меня, но он установлен, например на другом диске, укажите здесь вместо %

dp0 путь с нему (например, D:\server\) косая черта в конце обязательна.
@set server_path=%

dp0
:dir_exist
@set /P new_dir=»Enter new VHost name:»
@set /P ip_add=»Enter your IP address:»
@ if exist %server_path%%new_dir% echo «VHost %new_dir% already exist. Please re-enter Vhost name.»
@ if exist %server_path%%new_dir% goto dir_exist
@md %server_path%%new_dir%

Теперь для создания хоста просто запустите этот файл, впишите в ответ имя нового хоста и IP, который будет указываться в секции VirtualHost файла httpd-vhosts.conf. По окончанию работы программа сама закроется. Вам останется только проверить созданный хост, набрав в адресной строке браузера имя, которое вы вписали в программу. Если все успешно прошло, то вы увидите страницу с именем нового хоста.

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

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Источник

Настройка виртуальных хостов Apache в Ubuntu 18.04

Published on March 5, 2020

Введение

Веб-сервер Apache — популярный способ размещения сайтов в Интернете. Согласно оценкам, в 2019 году на базе этого веб-сервера работали 29% всех активных сайтов. Он обеспечивает разработчикам преимущества гибкости и надежности. Используя Apache, администратор может настроить один сервер для хостинга нескольких доменов или сайтов через единый интерфейс или IP-адрес, используя систему сопоставления.

Читайте также:  Настройка шаринга на телевизоре lg

В этом руководстве мы рассмотрим настройку виртуальных хостов Apache на сервере Ubuntu 18.04. Во время этого процесса вы научитесь предоставлять разный контент разным посетителям в зависимости от того, какие домены они запрашивают.

Предварительные требования

Прежде чем начать прохождение этого обучающего руководства, создайте пользователя без привилегий root.

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

Если вам требуются более подробные инструкции или информация по настройке брандмауэра, воспользуйтесь обучающим руководством Установка веб-сервера Apache в Ubuntu 18.04.

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

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

Шаг 1 — Создание структуры директорий

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

В каждом из этих директорий мы создадим папку public_html для хранения файлов. Это даст нам определенную гибкость в отношении хостинга.

Например, мы будем создавать директории для наших сайтов следующим образом. Если вы используете реальные домены или альтернативные значения, замените выделенный текст соответствующим образом.

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

Шаг 2 — Предоставление разрешений

Теперь у нас имеется структура директорий для наших файлов, но они принадлежат пользователю root. Если мы хотим, чтобы обычный пользователь имел возможность изменять файлы в веб-директориях, мы можем изменить структуру владения следующим образом:

Также нам необходимо изменять разрешения, чтобы обеспечить доступ для чтения к общей веб-директории и всем содержащимся в ней файлам и папкам, чтобы страницы могли выводиться надлежащим образом:

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

Шаг 3 — Создание демонстрационных страниц для каждого виртуального хоста

Теперь у нас имеется структура директорий. Давайте создадим контент для вывода.

Для демонстрационных целей мы создадим страницу index.html для каждого сайта.

В этом файле мы создадим документ HTML, указывающий на связанный с ним сайт. Документ будет выглядеть так:

Мы можем скопировать этот файл и использовать его в качестве основы для нашего второго сайта:

Затем мы можем открыть файл и изменить соответствующую информацию:

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

Шаг 4 — Создание новых файлов виртуального хоста

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

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

Скопируйте файл для первого домена:

Откройте новый файл в редакторе с привилегиями root:

Без комментариев этот файл будет выглядеть примерно так:

В файле мы настроим элементы для нашего первого домена и добавим несколько дополнительных директив. Этот раздел виртуального хоста соответствует любым запросам на порт 80, используемый по умолчанию для протокола HTTP.

Вначале нам нужно изменить директиву ServerAdmin на адрес электронной почты, доступный администратору сайта.

После этого нам нужно будет добавить две директивы. Директива ServerName задает базовый домен, который должен соответствовать этому определению виртуального хоста. Скорее всего, это будет ваш домен. Вторая директива под названием ServerAlias определяет дополнительные имена, которые должны соответствовать, как если бы они были базовыми. Это полезно для подстановки заданных вами хостов, таких как www :

Читайте также:  Асус роутер страница настроек

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

После этого наш файл виртуального хоста должен выглядеть следующим образом:

Сохраните и закройте файл.

Копирование первого виртуального хоста и настройка для второго домена

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

Для начала скопируйте файл:

Откройте новый файл в редакторе с привилегиями root:

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

Сохраните файл и закройте его после завершения.

Шаг 5 — Активация новых файлов виртуального хоста

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

Отключите сайт по умолчанию, заданный в файле 000-default.conf :

После завершения нужно перезапустить Apache для вступления изменений в силу и использовать команду systemctl status для подтверждения успешного перезапуска.

Теперь наш сервер должен быть настроен для обслуживания двух сайтов.

Шаг 6 — Настройка локального файла hosts (необязательно)

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

В результате этого изменения все запросы настроенных доменов будут перехватываться и перенаправляться на сервер VPS, как это делала бы система DNS, если бы мы использовали зарегистрированные домены. Это будет работать только на локальном компьютере и только для целей тестирования.

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

Если вы используете компьютер под управлением Mac или Linux, отредактируйте локальный файл с привилегиями администратора, введя следующую команду:

Если вы используете компьютер под управлением Windows, вы найдете указания по редактированию файла hosts здесь.

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

Сохраните и закройте файл.

При таких настройках все запросы доменов example.com и test.com на нашем компьютере будут перенаправляться на наш сервер. Так мы можем протестировать виртуальные хосты, хотя и не являемся владельцами этих доменов.

Шаг 7 — Тестирование результатов

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

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

Также вы можете открыть вторую страницу и увидеть файл, созданный для второго сайта.

Если все эти сайты работают ожидаемым образом, вы успешно настроили два виртуальных хоста на одном сервере.

Если вы редактировали файл hosts на своем компьютере, после проверки конфигурации вы можете удалить добавленные строки. Так в вашем файле hosts не будет ненужных записей.

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

Заключение

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

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

Источник

Adblock
detector