- Virtual Host под XAMPP в Linux Mint
- June 06, 2014
- Создание поддиректории виртуального хоста (Virtual Host)
- Редактирование файла /etc/hosts
- Включение поддержки виртуального хоста в XAMPP
- Создание виртуального хоста в файле httpd-vhosts.conf
- Проблемы с правами доступа на виртуальном хосте
- Изменение точки монтирования виртуального хоста
- P.S. от 09.09.2014
- 1. Файл httpd.conf
- 2. Создаем мягкую ссылку:
- 3. Файл httpd-vhosts.conf
- 4. Файл /etc/hosts
- 5. Меняем владельца файла
- 6. Перезапуск сервера
- TypeScript — размеченные объединения
- Настройка виртуальных хостов в Apache
Virtual Host под XAMPP в Linux Mint
June 06, 2014
Под локальным сервером XAMPP можно создавать неограниченное количество виртуальных хостов.
Что такое виртуальный хост (Virtual Host)? Применительно в серверу XAMPP — это поддиректории, в которых размещаются отдельные сайты. То есть, имеется директория htdocs , а в ней размещены поддиректории site_1 , site_2 , site_3 (или же так — redface , football , greenpark , название может быть любым).
В каждой из этих поддиректорий распакован и установлен движок CMS WordPress (к примеру). Вот эти поддиректории site_1 , site_2 , site_3 и являются виртуальными хостами под локальным сервером XAMPP.
Как уже упоминалось выше, сервер XAMPP может поддерживать неограниченное количество виртуальных хостов. Однако, по умолчанию разрешено использовать только два хоста. Но редактирование конфигурационного файла позволяет добавлять столько, сколько нужно.
Настройка виртуальных хостов на XAMPP под Linux Mint почти ничем не отличается от подобной настройки под Windows, меняются только пути конфигурационных файлов. Весь процесс настройки можно свести к двум шагам:
- Настройка хостов в файле /etc/hosts
- Настройка виртуальных хостов в файле /opt/lampp/etc/extra/httpd-vhosts.conf
Ниже на примере расмотрим подробное описание создания одного виртуального хоста на XAMPP под Linux Mint.
Создание поддиректории виртуального хоста (Virtual Host)
Для начала подготовим место, где будет располагаться будущий виртуальный хост. Для этого создадим поддиректорию redface (имя произвольное) и обязательно разместим в ней индексный файл index.html :
Виртуальный хост с именем redface почти создан. Осталось “сказать” об этом локальному серверу XAMPP и операционной системе Linux Mint.
Редактирование файла /etc/hosts
Операционной системе Linux Mint нужно “сказать”, что виртуальный хост redface размещен по адресу 127.0.0.1 . Для этого открываем для редактирования файл /etc/hosts командой:
… и дописываем в нем строку 127.0.0.1 redface.dev :
Окончание .dev является произвольным и служит для того, чтобы вебмастер не забыл, что данный сайт является локальным. Вместо .dev можно использовать .lc и какое угодно другое имя.
Сохраняем Ctrl+O и выходим Ctrl+X из редактора nano .
Включение поддержки виртуального хоста в XAMPP
По умолчанию в настройках XAMPP отключена поддержка виртуальных хостов. Для включения такой возможности нужно отредактировать конфигурационный файл httpd.conf сервера Apache.
Для этого открываем его командой:
В открытом файле httpd.conf нужно найти (в редакторе это сочетание Ctrl+W ) строку # Virtual hosts и раскомментировать (снять знак решетки # ) строку:
Создание виртуального хоста в файле httpd-vhosts.conf
Открываем для редактирования файл httpd-vhosts.conf и знакомимся с его содержимым:
В начале идет много закомментированных строк с кратким описанием виртуального хоста и принципом его создания в данном файле. Можно смело почистить файл httpd-vhosts.conf от этого мусора.
Далее идут два блока с открывающим тегом и закрывающим тегом . Данные блоки являются виртуальными хостами — их два по умолчанию, но можно добавить сколько необходимо.
Эти блоки не рабочие, а всего лишь примеры, как нужно создавать свой собственный виртуальный хост. Внутри тегов / размещена служебная информация — описание виртуального хоста:
Жизненно необходимыми для существования виртуального хоста (Virtual Host) под XAMPP являются две строки:
- DocumentRoot — путь размещения виртуального хоста в файловой системе
- ServerName — доменное имя виртуального хоста
Остальные строки носят дополнительный характер:
- ServerAdmin — e-mail адрес “администратора” хоста
- ServerAlias — синоним доменного имени ServerName
- ErrorLog и CustomLog — логи виртуального хоста
Эти два блока-примера можно отредактировать для конкретного случая, а можно создать свой собственный блок (виртуальный хост) на их основе. Давайте пойдем по второму пути и создадим свой собственный блок для виртуального хоста redface :
Обратите внимание, как поменялись значения в этм блоке на конкретные, под хост redface .
Запускаем (если еще не запущен) или перезапускаем (если уже был запущен) локальный сервер XAMPP:
… и “вбиваем” в адресной строке браузера доменное имя созданного нами виртуального хоста redface.dev :
ОК, все работает!
Проблемы с правами доступа на виртуальном хосте
При создании виртуального хоста (Virtual Host) под XAMPP в директории htdocs для создания или редактирования файлов потребуется изменение прав доступа. По умолчанию поддиректория, в которой располагается виртуальный хост, и все файлы внутри этого хоста имеют разрешение только на чтение.
Чтобы можно был вносить в них изменения с правами обычного пользователя, нужно выполнить команду:
Изменение точки монтирования виртуального хоста
В этой статье точка монтирования виртуальных хостов (Virtual Hosts) располагалась по адресу — /opt/lampp/htdocs/ . То есть, поддиректории виртуальных хостов находились внутри директории htdocs .
Однако, у локального сервера XAMPP имеется возможность переопределить местоположение виртуальных хостов внутри файловой системы Linux Mint. Например, можно расположить все хосты в домашней директории пользователя. Плюсом такого выбора является то, что нет необходимости настраивать права доступа для папок и файлов.
Вся настройка для переопределения точки монтирования виртуальных хостов (Virtual Hosts) сводится к одному действию — изменить значение строки DocumentRoot . Но, к моему сожалению, мне не удалось настроить XAMPP на своем ноутбуке подобным образом.
Все попытки переименовать значение строки DocumentRoot приводили к тому, что XAMPP не мог открыть индексную страницу.
В чем причина подобного отказа со стороны 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. Меняем владельца файла
Меняем владельца файла /opt/lampp/htdocs/xampp/lang.tmp :
Иначе localhost xampp дальше стартовой страницы может не загрузиться.
6. Перезапуск сервера
… и проверка в браузере: http://mydomain/
Каждый раз при запуске компьютера, сайты будут не доступны, до тех пор пока диск не примонтирован к системе (для этого нужно просто зайти на тот диск, с помощью файл-менеджера или придумать свой способ).
Если каким-то образом, диск в Linux откажется монтироваться, нужно в Windows отключить быструю загрузку (Fast Boot) в параметрах электропитания.
Для тестирования IE в Linux ставится виртуальная машина (например, VirtualBox), куда устанавливаем Windows7 и любимый браузер IE. В самой Windows редактируем файл hosts также как и в Linux, с одним условием – нужно вписывать другой IP, вместо 127.0.0.1, нужно вписывать 10.0.2.2.
Сайт через виртуальную машину будет также доступен.
TypeScript — размеченные объединения
> Пользовательское объединение типов — что это и как можно использоватьПомимо объединения **примитивных** типов данных (например):<% high. … Continue reading
Источник
Настройка виртуальных хостов в Apache
Если возникла необходимость размещения на Linux VPS сервере нескольких сайтов, то Apache для этих целей предоставляет возможность настройки виртуальных хостов (virtual hosts). Виртуальные хосты бывают двух видов: name-based virtual hosts, то есть привязанные к доменному имени, и IP-based virtual hosts, то есть привязанные к IP-адресу. Виртуальные хосты первого типа используют разные имена для одного IP-адреса, а второго типа – используют для каждого сайта отдельный IP-адрес. Создание виртуальных хостов в Apache необходимы, если на вашем сервере есть несколько сайтов, а их настройка необходима для корректного отображения всех сайтов.
Наиболее распространенным является использование виртуальных хостов на базе имен (name-based virtual hosts), привязанных к одному IP-адресу. Таким образом, можно хранить множество сайтов на одном IP.
Самым простым способом добавления и последующей настройки виртуальных хостов Apache является редактирование конфигурационного файла веб-сервера, который имеет разные названия и места расположения в зависимости от операционной системы:
Вторым способом настройки является использование собственных .conf файлов, которые должны размещаться по пути:
Как правило, в конфигурационном файле httpd.conf или apache2.conf раздел управления виртуальными хостами располагается в самом конце. Для добавления виртуального хоста нужно будет открыть этот файл и раскомментировать в нём (убрать #) директиву NameVirtualHost *:80 (Аргумент * обозначает «все имена хостов»). Если будет использоваться способ размещения конфигурации в conf.d, то указанную директиву не нужно раскомментировать, а следует определить её в самом создаваемом файле.
После NameVirtualHost следует блок VirtualHost *:80. Подобные блоки и являются конфигурацией ваших виртуальных хостов. Выглядит это все примерно следующим образом:
Именно здесь и производятся все настройки виртуальных хостов, а также, подключение или отключение определенных опций.
Рассмотрим более детально, за что отвечает каждая указанная выше директива.
1. Директива ServerAdmin указывает электронный адрес администратора сервера, на который приходят все уведомления с хоста, касающиеся его администрирования.
2. Директива DocumentRoot указывает корневую директорию с файлами сайта, которые должны будут выдаваться веб-сервером клиенту (браузеру).
3. Директива Server Name определяет имя хоста, по запросу которого должны будут выдаваться файлы, расположенные в DocumentRoot.
4. Директива ServerAlias служит для задания альтернативных имен хоста (алиасов, псевдонимов), на которые он откликается.
5. Директива ErrorLog задает файлы протоколов ошибок для каждого хоста, а CustomLog – файлы протоколов для всего остального, кроме ошибок.
До блоков с виртуалхостами, как вы заметили, есть еще запись:
В тегах заключается перечень директив (параметров), которые будут применяться к конкретной директории, которая указывается в открывающем теге. В примере выше – это var/www/. Указанная директива AllowOverride указывает, использовать ли файлы .htaccess и если да, то какие глобальные директивы веб-сервера в можно переопределять в таких файлах. В представленном выше примере значение AllowOverride установленно в All, что разрешает обрабатывать файлы .htaccess и все указанные в нём директивы. Существуют и другие возможные значения:
AuthConfig – разрешает использовать директивы авторизации (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require, и т.д..).
FileInfo – разрешает использовать директивы, управляющие типами документов (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, и т.д..).
Indexes — разрешает использовать директивы для управления индексацией каталогов (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, и т.д..).
Limit — разрешает использовать директивы управления доступом (allow, deny и order).
Options — разрешает использовать директивы, с помощью которых можно управлять специфическими особенностями каталога (Options и XBitHack).
Это одна из многих возможных директив, с которыми вы можете ознакомиться на сайте разработчиков.
После сохранения изменений в файле необходимо проверить новые настройки на наличие ошибок. Для выполнения проверки можно использовать следующие команды:
Если получено сообщение “Syntax OK”, значит ошибок нет и можно перезагружать веб-сервер, чтобы применились изменения. Сделать это можно с помощью следующих команд:
Далее вы можете столкнуться со следующей проблемой. При поступлении запроса Apache проходит по всему списку виртуальных хостов в поисках соответствующего, и, если не находит соответствия, выдает первый по порядку хост. Чтобы устранить данную неприятность, специалисты придумали так называемую секцию-заглушку, которую следует вставить перед первой секцией VirtualHost реального сайта. Выглядит она приблизительно следующим образом:
Таким образом, все неправильные запросы будут отсылаться по пути var/www/default, где можно создать индексную страницу, которая будет сообщать о неправильном запросе.
Также, Apache по умолчанию не имеет доступа к вашим домашним директориям, а только к директории /var/www. Если вы используете на своем сервере SElinux, то для предоставления Apache доступа к домашним директориям используйте следующие команды:
Для того чтобы Apache имел доступ к определенной директории, например, к /home/mydir следует использовать команду:
При отключенном SELinux для предоставления Apache доступа к той или иной домашней директории сайта, вам нужно будет вручную отредактировать его конфигурационный файл (/etc/httpd/conf/httpd.conf в CentOS/Fedora или /etc/apache2/apache2.conf в Debian/Ubuntu).
Открыв конфигурационный файл веб-сервера для редактирования, найдите строку DocumentRoot (при использовании редактора nano ее можно отыскать с помощью комбинации клавиш Ctrl+W). Замените значение в кавычках /var/www/html на абсолютный путь к домашней директории сайта (например, /home/username/site.com). Сохраните изменения и выйдите из меню редактора (Ctrl+O и Ctrl+X). Перезапустите Apache.
Если у вас на VPS установлена ОС Debian/Ubuntu, то править строку DocumentRoot необходимо в файле /etc/apache2/sites-available/default. Откройте его для редактирования и замените стандартное значение /var/www на абсолютный путь к домашней директории сайта. Выполните перезапуск веб-сервера.
На этом базовая настройка виртуальных хостов окончена.
Источник