Под локальным сервером XAMPP можно создавать неограниченное количество виртуальных хостов.
Что такое виртуальный хост (Virtual Host)? Применительно в серверу XAMPP - это поддиректории, в которых размещаются отдельные сайты. То есть, имеется директория
, а в ней размещены поддиректории 1
htdocs
, 1
site_1
, 1
site_2
(или же так - 1
site_3
, 1
redface
, 1
football
, название может быть любым).1
greenpark
В каждой из этих поддиректорий распакован и установлен движок CMS WordPress (к примеру). Вот эти поддиректории
, 1
site_1
, 1
site_2
и являются виртуальными хостами под локальным сервером XAMPP.1
site_3
Как уже упоминалось выше, сервер XAMPP может поддерживать неограниченное количество виртуальных хостов. Однако, по умолчанию разрешено использовать только два хоста. Но редактирование конфигурационного файла позволяет добавлять столько, сколько нужно.
Настройка виртуальных хостов на XAMPP под Linux Mint почти ничем не отличается от подобной настройки под Windows, меняются только пути конфигурационных файлов. Весь процесс настройки можно свести к двум шагам:
- Настройка хостов в файле
1
/etc/hosts
- Настройка виртуальных хостов в файле
1
/opt/lampp/etc/extra/httpd-vhosts.conf
Ниже на примере расмотрим подробное описание создания одного виртуального хоста на XAMPP под Linux Mint.
Создание поддиректории виртуального хоста (Virtual Host)
Для начала подготовим место, где будет располагаться будущий виртуальный хост. Для этого создадим поддиректорию
(имя произвольное) и обязательно разместим в ней индексный файл 1
redface
:1
index.html
Виртуальный хост с именем
почти создан. Осталось “сказать” об этом локальному серверу XAMPP и операционной системе Linux Mint.1
redface
Редактирование файла /etc/hosts
Операционной системе Linux Mint нужно “сказать”, что виртуальный хост
размещен по адресу 1
redface
. Для этого открываем для редактирования файл 1
127.0.0.1
командой:1
/etc/hosts
… и дописываем в нем строку
:1
127.0.0.1 redface.dev
Окончание
является произвольным и служит для того, чтобы вебмастер не забыл, что данный сайт является локальным. Вместо 1
.dev
можно использовать 1
.dev
и какое угодно другое имя.1
.lc
Сохраняем Ctrl+O и выходим Ctrl+X из редактора
.1
nano
Включение поддержки виртуального хоста в XAMPP
По умолчанию в настройках XAMPP отключена поддержка виртуальных хостов. Для включения такой возможности нужно отредактировать конфигурационный файл
сервера Apache.1
httpd.conf
Для этого открываем его командой:
В открытом файле
нужно найти (в редакторе это сочетание Ctrl+W) строку 1
httpd.conf
и раскомментировать (снять знак решетки 1
# Virtual hosts
) строку:1
#
Создание виртуального хоста в файле httpd-vhosts.conf
Открываем для редактирования файл
и знакомимся с его содержимым:1
httpd-vhosts.conf
В начале идет много закомментированных строк с кратким описанием виртуального хоста и принципом его создания в данном файле. Можно смело почистить файл
от этого мусора.1
httpd-vhosts.conf
Далее идут два блока с открывающим тегом
и закрывающим тегом 1
<VirtualHost *:80>
. Данные блоки являются виртуальными хостами - их два по умолчанию, но можно добавить сколько необходимо.1
</VirtualHost>
Эти блоки не рабочие, а всего лишь примеры, как нужно создавать свой собственный виртуальный хост. Внутри тегов
/1
<VirtualHost *:80>
размещена служебная информация - описание виртуального хоста:1
</VirtualHost>
Жизненно необходимыми для существования виртуального хоста (Virtual Host) под XAMPP являются две строки:
- DocumentRoot - путь размещения виртуального хоста в файловой системе
- ServerName - доменное имя виртуального хоста
Остальные строки носят дополнительный характер:
- ServerAdmin - e-mail адрес “администратора” хоста
- ServerAlias - синоним доменного имени ServerName
- ErrorLog и CustomLog - логи виртуального хоста
Эти два блока-примера можно отредактировать для конкретного случая, а можно создать свой собственный блок (виртуальный хост) на их основе. Давайте пойдем по второму пути и создадим свой собственный блок для виртуального хоста
:1
redface
Обратите внимание, как поменялись значения в этм блоке на конкретные, под хост
.1
redface
Запускаем (если еще не запущен) или перезапускаем (если уже был запущен) локальный сервер XAMPP:
… и “вбиваем” в адресной строке браузера доменное имя созданного нами виртуального хоста
:1
redface.dev
ОК, все работает!
Проблемы с правами доступа на виртуальном хосте
При создании виртуального хоста (Virtual Host) под XAMPP в директории
для создания или редактирования файлов потребуется изменение прав доступа. По умолчанию поддиректория, в которой располагается виртуальный хост, и все файлы внутри этого хоста имеют разрешение только на чтение.1
htdocs
Чтобы можно был вносить в них изменения с правами обычного пользователя, нужно выполнить команду:
Изменение точки монтирования виртуального хоста
В этой статье точка монтирования виртуальных хостов (Virtual Hosts) располагалась по адресу -
. То есть, поддиректории виртуальных хостов находились внутри директории 1
/opt/lampp/htdocs/
.1
htdocs
Однако, у локального сервера XAMPP имеется возможность переопределить местоположение виртуальных хостов внутри файловой системы Linux Mint. Например, можно расположить все хосты в домашней директории пользователя. Плюсом такого выбора является то, что нет необходимости настраивать права доступа для папок и файлов.
Вся настройка для переопределения точки монтирования виртуальных хостов (Virtual Hosts) сводится к одному действию - изменить значение строки
. Но, к моему сожалению, мне не удалось настроить XAMPP на своем ноутбуке подобным образом.1
DocumentRoot
Все попытки переименовать значение строки
приводили к тому, что XAMPP не мог открыть индексную страницу.1
DocumentRoot
В чем причина подобного отказа со стороны XAMPP, я так и не разобрался. Может быть, внимательный читатель подскажет, в чем причина?
P.S. от 09.09.2014
Добавил в статью комментарий пользователя Alexandr. Сам комментарий мне понравился - подробный и ценный. Поэтому перенес его в статью, как есть. Ниже привожу полный текст, с небольшими стилистическими правками.
Так можно добавить в рабочую папку с проектами на другом диске (например, для использования на Linux и Windows отдельно):
1. Файл httpd.conf
Найти строки и заменить (Имя пользователя):
- User (username)
- Group (по умолчанию или username)
Не меняем:
2. Создаем мягкую ссылку:
Права на мягкую ссылку “opt/lampp/htdocs/domains” д. б. 777 ( или около того )
3. Файл httpd-vhosts.conf
4. Файл /etc/hosts
5. Меняем владельца файла
Меняем владельца файла
:1
/opt/lampp/htdocs/xampp/lang.tmp
Иначе
дальше стартовой страницы может не загрузиться.1
localhost xampp
6. Перезапуск сервера
Перезапуск сервера:
… и проверка в браузере: 1
http://mydomain/
Каждый раз при запуске компьютера, сайты будут не доступны, до тех пор пока диск не примонтирован к системе (для этого нужно просто зайти на тот диск, с помощью файл-менеджера или придумать свой способ).
Если каким-то образом, диск в Linux откажется монтироваться, нужно в Windows отключить быструю загрузку (Fast Boot) в параметрах электропитания.
Для тестирования IE в Linux ставится виртуальная машина (например, VirtualBox), куда устанавливаем Windows7 и любимый браузер IE. В самой Windows редактируем файл
также как и в Linux, с одним условием – нужно вписывать другой IP, вместо 127.0.0.1, нужно вписывать 10.0.2.2.1
hosts
Вот так:
Сайт через виртуальную машину будет также доступен.