Как настроить виртуальные хосты в Apache на Ubuntu: пошаговая инструкция
Для продажи разнообразной продукции или расширения охвата организации заказывают несколько сайтов с разным дизайном, наполнением, размещать их отдельно неудобно, так как это усложняет мониторинг.
Когда у вас есть виртуальный частный сервер, можете запустить два и более интернет-страничек на одном сервере с общим IP-адресом.
Самый востребованный среди веб-разработчиков для такой задачи – это веб-сервер Apache. Мы подготовили пошаговую инструкцию, которая поможет вам оперативно выполнить настройку виртуальных хостов, если вы делаете это впервые.
Это также актуально, если вы одновременно обслуживаете несколько ресурсов, в том числе от разных заказчиков. То есть вы сможете пользоваться единственным интерфейсом без необходимости постоянно переключаться от одного к другому.
Как разместить несколько сайтов на одном сервере с одним IP-адресом
Главное достоинство Apache в том, что он даёт возможность на единственном сервере запустить разные сайты, при этом мониторинг осуществляется через общий интерфейс.
Файлы каждого сайта размещены в индивидуальном каталоге. То есть пользователь, когда открывает ссылку или вводит имя домена в поисковой строке, он попадает в определённый каталог. Именно здесь находятся нужные данные, откуда они загружаются на устройство, а пользователь видит желаемый контент.
Таким образом, можно сделать множество каталогов и соответствующим им сайтов, интернет-порталов. Их количество зависит исключительно от параметров сервера, вашего тарифа. В теории никаких ограничений не существует.
Расшифровываем термины (кратко)
Веб-сервер Apache нужен для оперативной обработки и оперативной отправки данных на компьютер или гаджет пользователя. Хранятся эти данные на виртуальном хосте (virtual hosts).
Чтобы исключить риски взлома, потери данных, будем работать через SSH- подключение. Этот сетевой протокол обеспечивает безопасность при дистанционной работе, так как обладает надёжными элементами защиты.
Настраиваем виртуальные хосты в Apache на Ubuntu
Процесс настройки довольно простой и требует введения небольшого количества команд. Мы покажем, что нужно написать в терминале и что подкорректировать в конфиг-файлах.
В этой статье мы не будем рассматривать процедуру установки Apache на компьютер, будем считать, что вы это уже сделали. Подойдёт минимальный пакет LAMP, включающий в себя операционку, веб-сервер, СУБД и язык программирования.
Также домены, с которыми планируете дальше работать, необходимо привязать к облачному серверу.
Для удобства мы будем в командах сразу указывать два домена в качестве примере – test.com и example.com. Когда будете вводить команды, не забывайте менять их на свои доменные имена.
Начнём с создания нового пользователя и наделим его правами, чтобы получить возможность вводить команды sudo. От его имени необходимо подключиться, чтобы начать настройку.
Первый этап: настройка и разрешения
Нам нужно создать структуру директорий для актуальных сайтов /var/www. В каждой создаём папку public_html, где будут храниться файлы. На примере ниже представлено, как они должны выглядеть, вы деленные значения замените своими. Красным цветом выделены домены, обслуживаемые через VPS.
Сейчас вся структура директорий доступна только root-пользователю. Чтобы разрешить работу с файлами пользователям с другими правами, нужно внести изменения.
sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html
Когда нажмём ENTER, переменная $USER примет значение текущего пользователя в системе, то есть пользователь станет владельцем субдиректорий public_html, в которой находятся файлы сайта.
Дополнительно нужно разрешить доступ для чтения к общей веб-директории, чтобы можно было увидеть все соответствующие файлы и страницы открывались корректно. Вводим команду.
sudo chmod -R 755 /var/www
Второй этап: Подготовка каталогов
В общей директории /var/www мы организуем каталоги для всех доменов. Последовательно выполняем команды для их создания и раздачи прав. Будьте внимательны, test.com и example.com – это ваши актуальные домены!
sudo mkdir -p /var/www/test. com/
sudo mkdir -p /var/www/support- example.com /
sudo chmod -R 755 /var/www
sudo chown -R $USER:$USER /var/www/ test.com /
sudo chown -R $USER:$USER /var/www/example.com /
Третий этап: Создание демонстрационных страниц для каждого хоста
Для каждого нашего сайта создаём новую страничку и открываем её в текстовом редакторе.
nano /var/www/example.com/public_html/index.html
Здесь создаём документ в формате HTML, который будет связан с нашим сайтом.
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h2>Success! The example.com virtual host is working!</h2>
</body>
</html>
Не забываем сохранить файл перед закрытием.
Для второго действия мы можем использовать в качестве шаблона файл, который только что создали.
cp /var/www/example.com/public_html/index.html /var/www/test. com/public_html/index.html
Открываем его.
nano /var/www/test.com/public_html/index.html
И меняем домен на нужный.
Четвертый этап: Создание новых конфиг-файлов виртуального хоста
Конфигурационный файл нужен для обработки запросов к доменам. В Apache предусмотрен дефолтный файл, который удобно применять в качестве шаблона. В нашем примере мы решили задать ему имя 000-default.conf. для других хостов нужно придумать другое название, удобно, если это будет домен.
Чтобы создать конфиг-файл, следуйте инструкции.
- Копируем шаблон.
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test.com.conf
- Открываем файл.
sudo nano /etc/apache2/sites-available/test.com.conf
- Заполняем поля в разделе VirtualHost, воспользовавшись подсказкой.
- ServerAdmin — e-mail администратора.
- ServerName — домен.
- ServerAlias — псевдоним домена.
Дополнительно необходимо стереть решётку.
- DocumentRoot — каталог домена, созданный ранее.
- ErrorLog и CustomLog — это файлы логов, в названии которых тоже должен содержаться домен.
- Directory — каталог домена.
- Деактивируем старый файл.
sudo a2dissite 000-default.conf
- Активируем новые.
sudo a2ensite test.com.conf
sudo a2ensite example.com.conf
- Перезапускаем Apache.
sudo service apache2 restart
Завершающий этап: проверка работы виртуальных хостов
Если привязка к серверу уже выполнена, то вы увидите созданную ранее демонстрационную страничку, если перейдёте на домен. При проверке на экране будет написано имя вашего домена.
Однако, если прошло менее суток, требуется настройка локальных хостов в файле hosts.
В этом случае все запросы будут перенаправлены на сервер VPS. Однако это работает исключительно на локальном устройстве и только для тестирования.
Введите команду.
sudo nano /etc/hosts
Откроется файл, где необходимо указать публичный IP-адрес сервера, а также доменное имя для связи с ним. Назовём его «your_server_IP».
Должно получиться приблизительно так.
127.0.0.1 localhost
127.0.1.1 guest-desktop
your_server_IP example.com
your_server_IP test.com
Подведём итоги
Если вы всё сделали правильно, то у вас будет единственный сервер, который обслуживает два доменных имени. Есть возможность добавить новые сайты, повторив все шаги из этой статьи. Никаких ограничений по числу хостов не существует, поэтому можете создать их сколько угодно. Всё зависит только от ваших целей и задач.
Как установить Apache на Ubuntu 20.04 и разместить веб-сайт
Содержание
- Установка Apache2 в Ubuntu 20.04
- Проверка Состояния Сервера Apache2 в Ubuntu 20.04
- Протестируйте установленный веб-сервер Apache2
- Настройка виртуальных хостов Apache2 в Ubuntu
- Создание виртуального хоста
- Создать корневой каталог документа
- Создание индексного файла сайта
- Измените конфигурацию виртуального хоста
- Включите виртуальный хост Apache2
- Основные команды для управления HTTP-сервером Apache
- Помощники Apache2
- Базовая конфигурация Apache2 и файлы журналов
- Конфигурационные файлы Apache2
- Файлы журналов Apache2
- Заключение
Apache — это программное обеспечение бесплатного веб-сервера, с открытым исходным кодом, разработан Apache Software Foundation. Официально он называется Apache HTTP Server. Apache является одним из самых старых, кросс-платформенных веб-серверов.
В этой инструкции мы установим Apache версии 2 (Apache2) на Ubuntu 20.04. Кроме того, мы настроим виртуальные хосты таким образом, чтобы на одном сервере могли размещаться несколько веб-сайтов.
Установка Apache2 в Ubuntu 20.04
Первое что требуется сделать это проверить наличие обновлений пакетов с помощью команды ниже.
$ sudo apt update
Во — вторых, выполните следующую команду, чтобы установить Apache версии 2 из репозитория пакетов Ubuntu.
$ sudo apt install apache2
При появлении запроса введите Y, чтобы продолжить установку.
После успешной установки Apache2 выполните следующую команду для просмотра версии.
Проверка версии сервера Apache$ apache2 -v
Проверка Состояния Сервера Apache2 в Ubuntu 20.

Далее следует проверить состояние сервера Apache2, для этого выполните следующую команду.
Проверка состояния сервера Apache$ sudo systemctl status apache2
По умолчанию служба Apache2 должна быть активна (запущена). Если нет, запустите службу следующей командой.
$ sudo systemctl start apache2
Протестируйте установленный веб-сервер Apache2
Последний шаг — это тестирование веб-сервера Apache2. Откройте веб-браузер и введите IP — адрес вашего сервера Ubuntu. Или введите localhost, если вы локально подключены к серверу.
Вы должны увидеть страницу Apache2 Ubuntu default page, как показано на рисунке ниже.
Страница Apache2 Ubuntu по умолчаниюНастройка виртуальных хостов Apache2 в Ubuntu
Виртуальные хосты позволяют размещать более одного веб-сайта на одном сервере Apache2. В Nginx это называется серверными блоками.
По умолчанию Apache2 поставляется с одним виртуальным хостом, а его конфигурационная информация хранится в файле /etc/apache2/sites-enabled/000-default.conf. Кроме того, корень веб-сайта по умолчанию — располагается в /var/www/html.
Настроить новый виртуальный хост очень просто. Следуйте инструкции и просто замените setiwik своим собственным зарегистрированным доменным именем.
Примечание: ваше зарегистрированное доменное имя должно указывать на IP-адрес вашего сервера Ubuntu.
Создание виртуального хоста
Создайте новый конфигурационный файл виртуального хоста, скопировав файл по умолчанию следующим образом.
$ cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/setiwik.conf
Далее отключите виртуальный хост по умолчанию с помощью приведенной ниже команды.
$ sudo a2dissite 000-default.
conf
Создать корневой каталог документа
Выполните следующую команду, чтобы создать корневой каталог документа для хранения файлов веб — сайта.
$ sudo mkdir /var/www/setiwik
Затем сделайте учетную запись Пользователя службы Apache2 (www-data) и группу (www-data) владельцами корневого каталога документа. Это можно сделать следующим образом.
$ sudo chown www-data:www-data /var/www/setiwik
Далее, предоставьте учетной записи Пользователя службы Apache2 (www-data) полный доступ к корневому каталогу документа с помощью следующей команды.
$ sudo chmod 755 /var/www/setiwik
Создание индексного файла сайта
Теперь создайте индексный файл в корневом каталоге документа с помощью команды:
$ sudo nano /var/www/setiwik/index.html
Скопируйте и вставьте пример HTML-кода ниже.
<!DOCTYPE html>
<html>
<head>
<title>Welcome to SETIWIK!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h2>Welcome to SETIWIK!</h2>
<p>Если вы видите эту страницу, веб-сайт SETIWIK работает правильно</p>
</body>
</html>
Сохраните и закройте файл index.html.
Измените конфигурацию виртуального хоста
Затем отредактируйте новый файл конфигурации виртуального хоста с помощью следующей команды.
$ sudo nano /etc/apache2/sites-available/setiwik.conf
Теперь раскомментируйте строку, которая начинается с ServerName, а затем замените www.example.com с фактическим URL-адресом веб-сайта. А так же замените /var/www/html новым корневым путем документа.
Ниже приведен пример того, что ожидается после внесения изменений.
<VirtualHost *:80>
ServerName www.setiwik.ru
ServerAdmin webmaster@localhost
DocumentRoot /var/www/setiwik
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Сохраните и закройте файл конфигурации виртуального хоста.
Включите виртуальный хост Apache2
Чтобы включить виртуальный хост Apache2, выполните команду.
$ sudo a2ensite setiwik.conf
Наконец, перезапустите веб-сервер Apache2 с помощью:
$ sudo systemctl restart apache2
Теперь мой сайт доступен через www.setiwik.ru как показано на рисунке ниже.
Добро пожаловать в виртуальный хост setiwikОсновные команды для управления HTTP-сервером Apache
В заключение мы приведем некоторые основные команды systemctl, которые помогут вам управлять вашим веб-сервером Apache2.
Используйте restart, чтобы остановить службу Apache2, а затем запустить ее снова.
$ sudo systemctl restart apache2
Используйте опцию reload, чтобы указать Apache2 перезагрузить свои конфигурационные файлы, но без остановки службы.
$ sudo systemctl reload apache2
Выполните команду stop, чтобы остановить службу Apache2.
$ sudo systemctl stop apache2
Чтобы включить запуск службы Apache2 при загрузке сервера, выполните следующие действия:
$ sudo systemctl enable apache2
Помощники Apache2
a2ensite – включить сайт apache2 или виртуальный хост.
$ sudo a2ensite setiwik.conf
a2dissite – используется для отключения сайта apache2 или виртуального хоста.
sudo a2dissite setiwik.
conf
Базовая конфигурация Apache2 и файлы журналов
Конфигурационные файлы Apache2
/etc/apache2/apache2.conf — основной конфигурационный файл, который извлекает информацию из всех других конфигурационных файлов при запуске веб-сервера.
/etc/apache2/ports.conf — определяет порты прослушивания для входящих соединений.
/etc/apache2/mods-enabled — содержит информацию о конфигурации для управления модулями.
/etc/apache2/conf-enabled — содержит некоторую глобальную информацию о конфигурации.
/etc/apache2/sites-available — хранит конфигурации виртуальных хостов.
/etc/apache2/sites-enabled — определяет включенные виртуальные хосты.
Файлы журналов Apache2
/var/log/apache2/error.log — содержит информацию об ошибках, с которыми сталкивается Apache2.
/var/log/apache2/access.log — содержит все запросы, обработанные Apache2.
Заключение
В этой инструкции мы установили и настроили HTTP-сервер Apache вместе с виртуальным хостом на Ubuntu 20.04. Кроме того, мы рассмотрели некоторые полезные команды для управления Apache2. Наконец, мы дали краткое описание важных конфигов и лог-файлов, используемых Apache2.
Настройка виртуальных хостов Apache в операционной системе Ubuntu
Теперь, когда Apache установлен и запущен, вы можете настроить его для обслуживания
нескольких доменов, используя виртуальных хоста .
В этом примере используются два домена: domain1.com и domain2.com.
В вашем домашнем каталоге создайте папку public_html:
компакт-диск ~ мкдир public_html
Для каждого домена, который вы хотите разместить, создайте папку со стандартным набором подпапок
. Следующие команды создают папки public, private, log, cgi-bin и backup для domain1.com
и domain2.com:mkdir -p public_html/domain1.com/{public,private,log,cgi-bin,backup} mkdir -p public_html/domain2.com/{public,private,log,cgi-bin,backup}
Содержимое общей папки зависит от вас, но в этом примере используется
очень простой HTML-файл, чтобы вы могли проверить работу виртуального хоста.
Для каждого домена создайте файл index.html:
нано public_html/domain1.com/public/index.html
Добавьте в файл index.html следующий код:
<голова>
домен1.com <тело>домен1.com
Повторите процесс, чтобы у вас был аналогичный файл для domain2.com.
Замените все экземплярыdomain1.com
наdomain2.com
.
Теперь у вас есть базовая структура для ваших двух доменов, вы можете определить два виртуальных хоста
.
При работе с виртуальными хостами параметр NameVirtualHost часто вызывает путаницу.
Для каждого интерфейса и порта, на котором Apache настроен на прослушивание, требуется директива
NameVirtualHost. Вы можете определить директиву только один раз для порта
.
В макете Apache для операционной системы Ubuntu есть директива NameVirtualHost
по умолчанию в ports.conf 9файл 0046.
Выполните следующую команду, чтобы просмотреть содержимое
ports.conf
:
cat /etc/apache2/ports.conf
Вы должны получить следующий вывод (если вы ранее не изменяли
файл):
# Если вы просто измените порт или добавите сюда больше
# необходимо изменить оператор VirtualHost в
# /etc/apache2/sites-enabled/000-default
NameVirtualHost *:80
Слушай 80
# Виртуальные хосты на основе имен SSL еще не поддерживаются, поэтому
# Оператор NameVirtualHost здесь
Слушай 443
Параметр NameVirtualHost по умолчанию удовлетворяет требованиям
. Apache будет применять логику виртуального хоста на основе имени и параметры
для HTTP-запросов, сделанных на любом доступном интерфейсе (*) через порт 80. является новым для макета Apache операционной системы Ubuntu; предыдущие выпуски
поместили аналогичную настройку в vhost по умолчанию.
Теперь вы готовы добавить свои собственные виртуальные хосты, чтобы начать работу с
обслуживают ваши домены. Создайте файл vhost для домена1:
sudo nano /etc/apache2/sites-available/domain1.com.conf
Содержимое выглядит следующим образом:
# Разместите здесь любые заметки или комментарии.
# Это облегчит понимание любой настройки в ближайшие недели
# домен: domain1.com
# общедоступный: /home/demo/public_html/domain1.com/
<Виртуальный хост *:80>
# Электронная почта администратора, имя сервера (доменное имя) и любые псевдонимы
ServerAdmin [email защищен]
имя_сервера domain1.com
Псевдоним сервера www.
domain1.com
# Индексный файл и корень документа (где расположены общедоступные файлы)
DirectoryIndex index.html
DocumentRoot /home/demo/public_html/domain1.com/public
# Пользовательские местоположения файла журнала
Предупреждение LogLevel
Журнал ошибок /var/log/apache2/error-mydomainname.com.log
CustomLog /var/log/apache2/access-mydomainname.com.log вместе
Включите сайт следующим образом:
sudo a2ensite domain1.com
Вывод команды выглядит следующим образом:
Сайт domain1.com установлен; запустите /etc/init.d/apache2 reload, чтобы включить.
Запустите рекомендуемую команду:
sudo /etc/init.d/apache2 reload
Чтобы протестировать домен без создания зоны DNS и записей на некоторых серверах имен Интернета
, вы можете изменить файл «/etc/hosts» на локальном компьютере
, чтобы включить некоторые записи, отображающие «domain1.
com»,
'domain2.com', а остальные на общедоступный IP-адрес демонстрационного облачного сервера
:
127.0.0.1 localhost
...
# записи, относящиеся к демонстрационному облачному серверу
123.45.67.890 домен1.com
123.45.67.890 www.domain1.com
123.45.67.890 домен2.com
...
Расположение файла hosts зависит от того, какая ОС загружена
на ваш локальный компьютер.
Примечание . Записи в файле hosts должны быть удалены до тестирования
и использования активных зон DNS и записей, созданных на серверах имен в Интернете.
Если их не удалить, это может привести к путанице с вашей стороны и
неточным проверкам новых или измененных общедоступных записей DNS.
С такими изменениями, внесенными в целях тестирования, вы можете перейти на свой сайт
в веб-браузере на локальном компьютере, и отобразится содержимое файла public/index.html.
Обратите внимание, что в файле vhost вы задаете ServerAlias.
Если у вас правильно настроен DNS
, вы также можете использовать этот адрес.
Мы поговорим о форсировании того или иного адреса в следующей статье
о правилах перезаписи.
Чтобы создать и включить domain2.com, повторите процесс следующим образом:
Создайте файл vhost:
sudo nano /etc/apache2/sites-available/domain2.com
...
# Введите данные для domain2.com в соответствии с примером, показанным выше.
Включить сайт и перезапустить Apache:
sudo a2ensite domain2.com
...
sudo /etc/init.d/apache2 перезагрузить
Перейти ко второму домену:
https://domain2.com
или
https://www.domain2.com
Вы должны увидеть индексный файл «domain2.com».
Как определено в файле vhosts, каждый домен имеет свои собственные файлы журналов.
Список журналов для ваших доменов:
ls /var/log/apache2/error-mydomainname.
com.log
Вывод точно такой, как ожидалось:
access.log error.log
Несмотря на то, что вы изменили виртуальный хост по умолчанию, вы оставили его на месте
.
Если кто-то вводит IP-адрес облачного сервера, он обслуживается
содержимое этого файла vhosts по умолчанию (если вы не настроили отдельный vhost
для IP-адреса).
Почему они обслуживаются из этого файла vhost?
Apache ищет включенные файлы vhost в алфавитном порядке, и если он
не может найти файл для запрошенного IP-адреса или доменного имени, он обслуживает
первый (в алфавитном порядке).
Если вы отключили или удалили файл виртуального хоста по умолчанию, то будет отображаться содержимое
домена1.com (до домена2.com
по алфавиту).
Это необходимо учитывать при планировании веб-сайтов. Вы хотите, чтобы определенный домен
был по умолчанию? Вы хотите, чтобы IP-адрес
имел совершенно другое содержимое?
Установите адрес электронной почты для администратора сервера.
Этот адрес используется
, если вы настроили сервер для связи с вами при возникновении ошибок. Он также отображается как
в ServerSignature, если его значение установлено на Email. (См. раздел
Определение нижних колонтитулов Apache .
ServerAdmin [электронная почта защищена]
Установите доменное имя (ServerName) для виртуального хоста. Вы можете иметь столько псевдонимов (ServerAlias), сколько требуется. Например,
domain.com и domain.net могут указывать на один и тот же контент.
имя_сервера domain.com
Псевдоним сервера www.domain.com
Примечание : это не правило перезаписи, но домены, определенные здесь
, будут обслуживать один и тот же контент (при условии, что вы установили DNS так, чтобы он указывал на
ваш IP-адрес облачного сервера).
Определите индексный файл (домашнюю страницу, которая отображается при вводе адреса домена
).
Это полезно, если вы хотите, чтобы пользователь был перенаправлен
на альтернативную страницу или на нестандартную домашнюю страницу.
DirectoryIndex index.html
Примечание . Это не лучший метод для перенаправления пользователей, поскольку они могут
перейти непосредственно на неуказанную страницу, такую как domain.com/index.php,
, в то время как значение DirectoryIndex работает только для тех, кто входит в домен.com.
Определите расположение общедоступных файлов домена. Используйте имя с абсолютным путем
.
DocumentRoot /home/demo/public_html/domain.com/public
Задайте уровни журналов и расположение файлов журналов виртуальных хостов.
Предупреждение об уровне журнала
Журнал ошибок /var/log/apache2/error-mydomainname.com.log
CustomLog /var/log/apache2/access-mydomainname.com.log вместе
Установите ErrorDocument, который используется для всех стандартных сообщений об ошибках
.
ErrorDocument 404 /errors/404.html
Документ об ошибке 403 /errors/403.html
В этом примере в общем каталоге есть папка ошибок.
Каждый документ об ошибке был создан и помещен в папку ошибок. Показанные пути
относятся к папке DocumentRoot, определенной ранее.
Если сообщения об ошибках не определены, Apache создает собственные страницы ошибок.
Пользовательские страницы ошибок более удобны для пользователя и могут быть настроены настолько сильно,
или меньше, как вы хотите.
Определите ServerSignature, чтобы указать, являются ли сведения о сервере
отображается на любых сгенерированных сервером страницах ошибок или списках индексов. Параметры
: Вкл., Выкл. и Электронная почта.
Подпись сервера включена
Уровень детализации подписи настраивается через ServerTokens,
который нельзя установить в файле Virtual Hosts. Для макета Apache
операционной системы Ubuntu это правильно установлено в «/etc/apache2/conf.
d/security». Дополнительные сведения см. в статье
Apache configuration #2 NEED LINK.
Если для параметра ServerSignature установлено значение Электронная почта , электронная почта ServerAdmin будет отображаться
.
Включите расположение cgi-bin, как определено макетом настраиваемых виртуальных хостов
. Вы можете оставить cgi-bin в папке DocumentRoot, если хотите.
ScriptAlias /cgi-bin/ /home/demo/public_html/domain.com/cgi-bin/
<Расположение /cgi-bin>
Опции +ExecCGI
Установите параметры для указанного каталога. В следующем примере
включается параметр FollowSymLinks для общедоступного каталога
домен.com.
Опции FollowSymLinks
Ниже приведены другие параметры, которые вы можете установить:
Чтобы отключить просмотр каталогов, используйте -Indexes. Чтобы включить просмотр каталога
, используйте +Indexes.
Опции - Индексы
Включить или отключить включения на стороне сервера.
В следующем примере отключается
it.
Опции - Включает
Включить или отключить возможность перехода по символическим ссылкам. Будьте осторожны с этой опцией
, поскольку она может привести к угрозе безопасности (непреднамеренная ссылка на
папки конфигурации).
Параметры -FollowSymLinks
Вы можете рассмотреть возможность использования директивы SymLinksIfOwnerMatch вместо
FollowSymLinks. Директива SymLinksIfOwnerMatch разрешает переход по символическим ссылкам
только в том случае, если владелец ссылки идентичен владельцу
целевого файла или каталога (с точки зрения владения/разрешений файловой системы Linux
). Это предотвращает многие угрозы безопасности, которые может создать простая директива
FollowSymlinks.
Установите для параметра AllowOverride значение None, чтобы отключить поддержку .htaccess. Установите для него значение Все, чтобы
разрешить поддержку.
AllowOverride Нет
Вы также можете указать, какие функции .htaccess следует включить, например:
AllowOverride AuthConfig Indexes
Документы Apache
htaccess
и
AllowOverride
содержат дополнительную информацию о различных функциях.
Не забудьте защитить свой файл .htaccess. Вы можете сделать это, переименовав
во что-то непонятное и запретив доступ к файлу 9\.мой"> <Удовлетворить все> Требовать все отказано
Примечание : предыдущий пример отформатирован для Apache 2.4. При использовании
2.2 замените Требовать все запрещенные
на Order Allow, Deny | Запретить от всех | Удовлетворить
всем .
Укажите Нет, чтобы отключить все доступные параметры.
Опции Нет
Директивы параметров могут быть установлены для каждого каталога, как показано на
следующий пример:
AllowOverride Нет
Опции
Разрешить переопределить все
Первая настройка каталога отключит все параметры и отключит поддержку
.
htaccess для всех каталогов.
Однако второй параметр каталога переопределит первый и разрешит поддержку
.htaccess для каталога domain.com/public.
Файл виртуальных хостов — это простой в использовании инструмент, но очень мощный.
Мы рекомендуем ввести один параметр, а затем протестировать его. Затем введите
следующая настройка и тест и т.д.
После того, как вы ознакомитесь с ним, вы увидите, что у вас есть прекрасный контроль
над всеми вашими веб-папками и файлами.
Обновлено 2 месяца назад
Как настроить виртуальные хосты Apache в Ubuntu 18.04
Что такое виртуальный хост Apache?
Виртуальный хост позволяет запускать несколько веб-сайтов с одного физического сервера или виртуального частного сервера. В Apache есть два типа виртуальных хостов:
- Виртуальный хостинг на основе IP — каждый отдельный веб-сайт на сервере Apache использует свой уникальный IP-адрес.
- Виртуальные хосты на основе имен — позволяет добавлять несколько доменов с использованием одного IP-адреса.

В этом руководстве показано, как настроить виртуальные хосты Apache в системе Ubuntu 18.04.
Предварительные условия
- Окно командной строки/терминала
- Пользователь с правами root или sudo
- Домен, указывающий на общедоступный IP-адрес сервера
- Веб-сервер Apache в Ubuntu установлен, настроен и активен
- Брандмауэр включен
Настройка нескольких доменов на одном IP-адресе
Виртуальный хост Apache позволяет максимально эффективно использовать ресурсы при настройке веб-сайта. С помощью этого мощного программного обеспечения можно использовать один сервер и один IP-адрес для размещения нескольких различных доменов.
Перед настройкой виртуальных хостов Apache необходимо установить веб-сервер Apache. Для этого выполните команду:
sudo apt-get install apache2
Если у вас возникли проблемы с настройкой веб-сервера, обратитесь к нашему подробному руководству по установке Apache в Ubuntu.
Как настроить виртуальный хост на основе имени
Виртуальный хостинг на основе имени позволяет клиенту сообщать серверу имя хоста как элемент заголовка HTTP. Эта функция означает, что на одном компьютере может размещаться несколько веб-сайтов с одним и тем же IP-адресом.
Шаг 1. Создание структуры каталогов
Каждый виртуальный хост должен иметь каталог для хранения данных виртуального хоста. Создайте каталоги и структуру каталогов по следующему адресу /var/www . В нашем примере мы создали каталоги phxnap1.com и phxnap2.com , по одному для каждого доменного имени.
1. Введите следующую команду и замените пример домена вашими доменными именами:
sudo mkdir -p /var/www/phxnap1.com/public_html
sudo mkdir -p /var/www/phxnap2.com/public_html
Внутри каталогов мы также создали public_html . В этих каталогах будут храниться файлы веб-сайтов для доменов.
2. Затем создайте образец страницы index.html для каждого домена, используя nano или ваш любимый текстовый редактор. Начните с первого домена:
nano /var/www/phxnap1.com/public_html/index.html
3. Добавьте следующий образец HTML:
<голова>
Добро пожаловать в phoenixNAP 1!
<тело>
Молодец! Кажется, на вашем первом домене все работает!
4. Сохраните и закройте файл.
5. Затем создайте образец страницы для второго домена:
nano /var/www/phxnap2.com/public_html/index.html
6. Добавьте в файл следующие строки:
<голова>
Добро пожаловать в phoenixNAP 2!
<тело>
Молодец! Кажется, все работает на вашем втором домене!
7. Сохраните и закройте второй файл HTML.
8. Во избежание проблем с правами доступа измените права собственности на корневой каталог вашего документа на www-data .
В этом случае полезна команда chown:
sudo chown –R www-data:www-data /var/www/phxnap1.com
sudo chown –R www-data:www-data /var/www/phxnap2.com
Теперь вы успешно изменили владельца каталога на пользователя Apache 90 083 .
Шаг 2. Создайте файл конфигурации виртуального хоста
Файлы конфигурации виртуального хоста Apache хранятся в папке /etc/apache2/sites-доступный каталог.
1. Чтобы создать базовый файл конфигурации для вашего первого домена, введите информацию о домене в команду:
sudo nano /etc/apache2/sites-available/phxnap1.com.conf
2. Добавьте следующий блок конфигурации, чтобы создать базовый файл конфигурации. В этом примере используется первый тестовый домен phxnap1.com . Убедитесь, что вы ввели правильный домен для вашего веб-сайта:
Администратор сервера webmaster@phxnap1.com
Имя сервера phxnap1.com
Псевдоним сервера www.
phxnap1.com
DocumentRoot /var/www/phxnap1.com/public_html
Журнал ошибок ${APACHE_LOG_DIR}/phxnap1.com-error.log
CustomLog ${APACHE_LOG_DIR}/phxnap1.com-access.log вместе
- ServerName — представляет домен
- ServerAlias — представляет все другие домены, такие как поддомены
- DocumentRoot — каталог, используемый Apache для обслуживания файлов домена
900 10 ErrorLog, CustomLog — указывает расположение файлов журнала
Нет установленного формата. Тем не менее, именование ваших файлов конфигурации на основе имени домена является «лучшей практикой».
4. После редактирования файла конфигурации для первого домена повторите процесс для остальных. В нашем случае мы будем работать:
sudo nano /etc/apache2/sites-available/phxnap2.com.conf
5. Затем добавьте блок конфигурации, как в примере выше, обязательно изменив значения для phxnap2.
com :
Администратор сервера webmaster@phxnap2.com
Имя сервера phxnap2.com
Псевдоним сервера www.phxnap2.com
DocumentRoot /var/www/phxnap2.com/public_html
Журнал ошибок ${APACHE_LOG_DIR}/phxnap2.com-error.log
CustomLog ${APACHE_LOG_DIR}/phxnap2.com-access.log вместе
Шаг 3. Включение файлов конфигурации виртуального хоста
Чтобы включить файл виртуального хоста, создайте символическую ссылку из файла виртуального хоста на каталог с поддержкой сайтов. Apache2 читает этот файл при просмотре.
1. Используйте помощник a2ensite для включения файла виртуального хоста с помощью команды:
sudo a2ensite phxnap1.com
Вывод будет выглядеть так:
2. Повторите процесс для второго домена, набрав:
sudo a2ensite phxnap2.com
3. Затем проверьте правильность синтаксиса файла конфигурации с помощью команды:
sudo apachectl configtest
Сообщение в терминале подтвердит правильность синтаксиса: « Syntax OK»
4.