Настройка виртуальных хостов в XAMPP
Допустим, что XAMPP у вас установлен на диске C: (C:\xampp\). А хранить свои проекты вы намереваетесь совершенно в другом месте на диске D: (D:\MySites\). Сразу хочу сказать, что лучше создавать папку для хранения своих проектов в месте, например, синхронизированном с облачным хранилищем, тогда вы можете иметь доступ и работать с очередным сайтом с разных компьютеров. Это очень удобно!
Итак, вводные получены, приступаем. В первую очередь создадим сам сайт, который в нашем примере будет состоять всего из одного файла index.php, размещенного в папке test1.loc (название папки сайта, оно же его доменное имя) по адресу D:\MySites\.
Содержимое файла D:\MySites\test1.loc\index.php будет выглядеть следующим образом:
<?php
echo "Hello World!";
?>
Открываем для редактирования C:\xampp\apache\conf\extra\httpd-vhosts.conf и вносим соответствующие изменения, после чего файл будет выглядеть так:
# Virtual Hosts # # Required modules: mod_log_config # If you want to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them. Most configurations # use only name-based virtual hosts so the server doesn't need to worry about # IP addresses. This is indicated by the asterisks in the directives below. # # Please see the documentation at # <URL:http://httpd.apache.org/docs/2.4/vhosts/> # for further details before you try to setup virtual hosts. # # You may use the command line option '-S' to verify your virtual host # configuration. # # Use name-based virtual hosting. # # NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "C:/xampp/htdocs" ServerName localhost </VirtualHost> <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "D:/MySites/test1.loc" ServerName test1.loc ServerAlias www.test1.loc ErrorLog "D:/MySites/test1.loc/error.log" CustomLog "D:/MySites/test1.loc/access.log" common <Directory "D:/MySites/test1.loc"> Require all granted AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
Далее по адресу C:\Windows\System32\drivers\etc ищем файл hosts и так же, открываем его для редактирования.
Внимание! Иногда система делает файл hosts невидимым. В этом случае вы должны иметь права администратора, чтобы в свойствах родительской папки etc убрать значение «скрытый» для всех внутренних файлов. Чтобы не искать каждый раз файл hosts заново создайте его ярлык на рабочем столе.
Вносим в файл hosts следующие записи (ниже строки # localhost name resolution is handled within DNS itself):
... # localhost name resolution is handled within DNS itself. 127.0.0.1 localhost ::1 localhost 127.0.0.1 test1.loc 127.0.0.1 www.test1.loc
Последним шагом производим запуск или перезапуск локального сервера и в адресной строке браузера вводим адрес нашего сайта http://test1.loc/ и жмем «enter». Если все сделано правильно, то в окне браузера вы увидите Hello World!
При создании еще одного сайта (место его размещения может отличаться от предыдущего, т.е. проекты могут спокойно находиться в разных местах вашего компьютера), не забывайте просто добавлять соответствующие записи в файлах hosts и httpd-vhosts.conf, после чего производить перезапуск локального сервера.
mycakephp.ru
XAMPP — настройка виртуального сервера / Habr
→ Скачать XAMPP
XAMPP ver. 1.8.3-3 for Mac OS X ver. 10.9.2
Первоначальная настройка
Изначально XAMPP имеет один адрес это localhost
При загрузке — должна открыться страница с информацией о сервере, версии PHP ссылками на phpmyadmin и пр.
Для создания своего хоста Apache VirtualHosts
1. Открываем конфигурационный файл — /Applications/XAMPP/xamppfiles/etc/httpd.conf
1.1. Изменить User daemon на User username (стр. 173)
171 #running httpd, as with most system services. 172 # 173 User daemon 174 Group daemon 175 </IfModule>
где username — имя вашего пользователя в системе Mac OS X
171 #running httpd, as with most system services.
172 #
173 User username
174 Group daemon
175 </IfModule>
1.2. Включаем VirtualHosts — раскомментировав (стр. 488)
- Include etc/extra/httpd-vhosts.conf
487 #Virtual hosts
488 #Include etc/extra/httpd-vhosts.conf
убрать решетку перед Include
487 #Virtual hosts
488 Include etc/extra/httpd-vhosts.conf
2. Добавление своих хостов — открываем файл — /Applications/XAMPP/etc/extra/httpd-vhosts.conf
#localhost
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"
<Directory "/Applications/XAMPP/xamppfiles/htdocs">
Options Indexes FollowSymLinks Includes execCGI
AllowOverride All
Allow From All
Order Allow,Deny
</Directory>
</VirtualHost>
2.2. Подключить свой сайт — cоздать папку сайта site.local (пример)
username — ваше имя пользователя в системе Mac OS X
folder — пусть к папке сайта
site.local — папка сайта
#My custom host <VirtualHost *:80> ServerName site.local DocumentRoot "/Users/username/folder/site.local" <Directory "/Users/username/folder/site.local"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Directory> ErrorLog "logs/site.local-error_log" </VirtualHost>
Директиву AllowOverride None обязательно заменяем на AllowOverride All, иначе файл .htaccess не будет прочитан сервером Apache
3. Необходимо указать системе Mac OS X, где находятся виртуальные сайты.
В терминале вводим команду:
sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit /etc/hosts
Добавляем в конец файла hosts строчку: 127.0.0.1 site.local
#XAMPP VirtualHost
127.0.0.1 site.local
Перезапускаем XAMPP и виртуальные хосты добавлены.
по localhost — открывается XAMPP
по site.local — открывается уже наш сайт.
Готово!
habr.com
Настройка XAMPP и виртуальных хостов
Пару дней назад я поделился впечатлениями от веб-сервера XAMPP.
Теперь бы хотелось уделить несколько минут его настройке, и в частности созданию виртуальных хостов на своем локальном сервере…
Итак, несколько советов по настройке сервера XAMMP.
…Для корректной работы mySQL в сданной сборке необходимо добавить строчку в файл /opt/lampp/etc/my.cnf
1 | init_connect='SET NAMES cp1251' |
init_connect=’SET NAMES cp1251′
в секцию [mysqld].
Для того, чтобы включить модуль eAccelerator (он очень порядочно ускоряет выдачу готовой страницы в браузер) необходимо раскомментировать (убрать точку с запятой в начале строки) файла /opt/lampp/etc/php.ini
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | extension="eaccelerator.so" eaccelerator.shm_size = "16" eaccelerator.cache_dir = "/opt/lampp/tmp/eaccelerator" eaccelerator.enable = "1" eaccelerator.optimizer = "1" eaccelerator.check_mtime = "1" eaccelerator.debug = "0" eaccelerator.filter = "" eaccelerator.shm_max = "0" eaccelerator.shm_ttl = "0" eaccelerator.shm_prune_period = "0" eaccelerator.shm_only = "0" eaccelerator.compress = "1" eaccelerator.compress_level = "9" |
extension=»eaccelerator.so» eaccelerator.shm_size = «16» eaccelerator.cache_dir = «/opt/lampp/tmp/eaccelerator» eaccelerator.enable = «1» eaccelerator.optimizer = «1» eaccelerator.check_mtime = «1» eaccelerator.debug = «0» eaccelerator.filter = «» eaccelerator.shm_max = «0» eaccelerator.shm_ttl = «0» eaccelerator.shm_prune_period = «0» eaccelerator.shm_only = «0» eaccelerator.compress = «1» eaccelerator.compress_level = «9»
Для поддержки Mod_rewrite (он используется во множестве движков для поддержки ЧПУ — человекопонятных URL) необходимо раскомментировать (удалить решетку в начале строки) строчку
1 | #LoadModule rewrite_module modules/mod_rewrite.so |
#LoadModule rewrite_module modules/mod_rewrite.so
в файле /opt/lampp/etc/httpd.conf, и там же
исправить на
(если строчек несколько — изменять все).
Далее перейдем к настройке виртуальных хостов — в принципе можно работать и в корне /opt/lampp/htdocs, где располагаются файлы. доступные через браузер (по адресу httр://localhost/, если ничего не настраивать), однако это приемлимо лишь, если у Вас всего один сайт, с которым Вы работаете…
Прежде всего рекомендую зайти под рутом и изменить пользователя (chown) рекурсивно на папку /opt/lampp/htdocs на Вашего пользователя в системе — это позволит работать с Вашими файлами без надобности заходить под суперюзером…
Затем, открываем файл /opt/lampp/etc/httpd.conf и убераем решетку в начале строки
1 | Include etc/extra/httpd-vhosts.conf |
Include etc/extra/httpd-vhosts.conf
После этого, открываем файл /opt/lampp/etc/extra/httpd-vhosts.conf, и в нем пишем наши виртуальные хосты (просьба читать комментарии после команд):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | # Сделано мной для устранения конфликта в IP с прокси-сервером Squid # (да и вообще удобнее разделить айпи…) NameVirtualHost 127.0.0.2:80 # Выделяю адрес, по которому будет доступна веб-морда XAMPP <VirtualHost 127.0.0.2:80> # Адрес от балды :) ServerAdmin [email protected] # Путь к веб-морде сервера DocumentRoot /opt/lampp/htdocs/xampp.local/www # «доменное имя» веб-морды без www ServerName xampp.local # «доменное имя» веб-морды c www ServerAlias www.xampp.local # журнал ошибок ErrorLog /opt/lampp/htdocs/xampp.local/error.log # журнал доступа CustomLog /opt/lampp/htdocs/xampp.local/access.log common </VirtualHost> # расширение .MY выбрано для отличия локальных «сайтов» от интернет-ресурсов <VirtualHost 127.0.0.2:80> # любое мыло ServerAdmin [email protected] # папка веб-документов для хоста DocumentRoot /opt/lampp/htdocs/site.my/www # «доменное имя» хоста без www ServerName site.my # «доменное имя» хоста с www ServerAlias www.site.my ErrorLog /opt/lampp/htdocs/site.my/error.log CustomLog /opt/lampp/htdocs/site.my/access.log common </VirtualHost> |
# Сделано мной для устранения конфликта в IP с прокси-сервером Squid # (да и вообще удобнее разделить айпи…) NameVirtualHost 127.0.0.2:80 # Выделяю адрес, по которому будет доступна веб-морда XAMPP <VirtualHost 127.0.0.2:80> # Адрес от балды :) ServerAdmin [email protected] # Путь к веб-морде сервера DocumentRoot /opt/lampp/htdocs/xampp.local/www # «доменное имя» веб-морды без www ServerName xampp.local # «доменное имя» веб-морды c www ServerAlias www.xampp.local # журнал ошибок ErrorLog /opt/lampp/htdocs/xampp.local/error.log # журнал доступа CustomLog /opt/lampp/htdocs/xampp.local/access.log common </VirtualHost> # расширение .MY выбрано для отличия локальных «сайтов» от интернет-ресурсов <VirtualHost 127.0.0.2:80> # любое мыло ServerAdmin [email protected] # папка веб-документов для хоста DocumentRoot /opt/lampp/htdocs/site.my/www # «доменное имя» хоста без www ServerName site.my # «доменное имя» хоста с www ServerAlias www.site.my ErrorLog /opt/lampp/htdocs/site.my/error.log CustomLog /opt/lampp/htdocs/site.my/access.log common </VirtualHost>
Сохраняем и открываем файл /etc/hosts, в конец файла добавляем наши хосты:
1 2 3 | # HOSTS FOR XAMPP 127.0.0.2 xampp.local 127.0.0.2 site.my |
# HOSTS FOR XAMPP 127.0.0.2 xampp.local 127.0.0.2 site.my
Дальше добавляю в браузере в игнор прокси-сервера .my (то есть все хосты MY).
Создаем следующую структуру файлов в директории /opt/lampp/htdocs/
1 2 3 4 5 6 | -- xampp.local ----------------- www ----------------- cgi -- site.my ----------------- www ----------------- cgi |
— xampp.local —————— www —————— cgi — site.my —————— www —————— cgi
Все содержимое из корня папки htdocs перемещаем в /opt/lampp/htdocs/xampp.local/www/
Стартуем (или рестартуем) XAMPP.
После этих нехитрых процедур веб-морда XAMPP будет доступна в браузере по адресу: httр://xampp.local, а ваш хост — httр://site.my…
Добавлять сайты аналогично site.my можно сколько угодно…
Вот и все на сегодня 🙂
pingvinoff.net
Настройка виртуальных хостов
Этой статьей я закрываю уроки о том как сделать домашний сайт при помощи веб сервера XAMPP. Принцип создания домашних сайтов одинаков для всех локальных серверов. Физически сайт в домашних условиях представляет собой отдельную папку среди папок серверной программы. Имя папки определяет название сайта. Теперь разберемся с устройством интернета внутри компьютера и создадим для нашего сайта на XAMPP виртуальные хосты.
Статья входит в цикл статей Локальный веб сервер для пояснения процесса создания сайта внутри домашнего компьютера.
Наверно, стоит напомнить читателям — как устроен Интернет. Сайты на жестких дисках у провайдера или на домашнем компьютере — это папки для размещения материала сайта и внутренних программ. Все сайты (как папки) Интернета, аналогично и внутри компьютера, связаны средствами связи, но для того, чтобы эти папки стали сайтами нужно, (1) чтобы в сети работала программа сервер (даже внутри компа она должна создать среду Интернета) и (2) у пользователя на компьютере должна быть включена программа браузер, которая позволяет «видеть» сайты — потому что браузер, если знает адрес сайта в сети или домашнем компьютере, умеет заходить внутрь его папки, брать текст и картинки и «рисовать» их на экране монитора у посетителя сайта.
Программа сервер — это вроде операционной системы для всего Интернета, а браузер — это аналог программы Word, но только браузер умеет читать не документы, а сайты — как документы, написанные на языках HTML, PHP, PERL …
Статья написана для пояснения статей в рубрике Программы для создания сайта и имеет постоянную ссылку: http://design-for.net/page/nastrojka-virtualnyh-hostov
Создание виртуальных хостов
1.1. Мы уже знаем, что нет никакой разницы между сайтом designfornet на компьютере дома или сайтом design-for.net на сервере у хостера. Однако, если для перехода к сайту design-for.net достаточно вставить его имя в строку адреса браузера, как мы сразу попадаем на первую страницу моего сайта: http://design-for.net/ А вот по ссылке http://designfornet/ этого не произойдет, хотя сам сайт существует. Причина в том, что любой браузер будет искать его в большом интернете. Для перехода на сайт designfornet потребуется более сложная ссылка вида http://localhost/designfornet/www/ И это при условии запуска веб сервера XAMPP (ведь сервер для http://design-for.net/ где-то работает круглосуточно). 1.2. В тексте этой ссылки http://localhost/designfornet/www/ для браузера указан путь, какой ему надо преодолеть до папки www нашего сайта, где лежит страница index.html, из которой он вычитывает и рисует нам на экране приветствие «Это домашний сайт designfornet. Ура!». 1.3. Я вижу противоречие в написаниях ссылок: — длинной ссылки для сайта внутри компьютера с коротким путем и — короткой ссылки для перехода на сайт, расположенный за тысячи миль от моего дома на чужом компьютере (сервере). 1.4. Весь секрет состоит в существовании специальных серверов DNS, в которых прописывают место расположения (IP) каждого сайта в сети, что позволяет для нас — людей – указывать только короткую ссылку с понятными для человека словами, тогда как в действительности ссылка для самой программы браузера остается в виде ряд чисел. Для людей же составляются ЧПУ – человеко-понятные урлы. В тексте человеко-понятной ссылки http://design-for.net/ весь длинный путь от моего компьютера до сервера хостера и через его папки к папке сайта был спрятан, а указана лишь эта конечная папка design-for.net на физическом сервере, адрес которого был подсказан браузеру на DNS сервере. |
1.5. Если мы хотим сделать интернет внутри компьютера копией Большого, то нам надо прописать наш домашний сайт designfornet в особом файле, который является аналогом сервера DNS и научиться сокращать вид ссылки до общепринятого вида:
http://site.zona/
1.6. Тут настало время вспомнить, что основной программой в нашем компьютере является операционная система (у меня Windows 7). В ней уже предусмотрена возможность создания внутреннего сайта по имени localhost.
Для того чтобы в этом убедиться надо найти файл hosts (без расширения) по адресу: C:\Windows\System32\drivers\etc
1.7. Файл hosts — системный, поэтому при его открытии надо быть осторожным и лучше сразу для перестраховки сразу сохраним его копию в какой-нибудь папке.
Иногда система делает файл hosts невидимым. В этом случае вы должны иметь права администратора, чтобы в свойствах родительской папки etc убрать значение «скрытый» для всех внутренних файлов. Чтобы не искать каждый раз файл hosts заново создайте его ярлык на рабочем столе.
1.8. Если мы откроем файл hosts в текстовом редакторе (лучше в Notepad++, но сегодня можно и в Блокноте), то внизу увидим строки:
… # localhost name resolution is handled within DNS itself. #127.0.0.1 localhost #::1 localhost 127.0.0.1 localhost 127.0.0.1 www.localhost
Предложение «localhost name resolution is handled within DNS itself» переводится следующим образом: «резолюция имени localhost обработана в пределах самого DNS.»
1.9. Выражение из четырех групп чисел — 127.0.0.1 – это IP адрес для всех сайтов внутри компьютера, первым из которых заранее прописан сайт localhost.
Такая запись позволяет браузеру находить сайт localhost по его адресу (IP=127.0.0.1) – то есть внутри компьютера.
Так как ниже есть строка:
127.0.0.1 www.localhost
то по аналогии мы предполагаем, что браузер будет искать www.localhost так же внутри компьютера. Для браузера сайты с именами localhost и www.localhost – это два разных сайта.
Нам еще предстоит сделать их зеркалами одного сайт, чтобы по обеим ссылкам браузер находил один сайт.
1.10. Наша задача повторить для своего сайта с именем designfornet всё, что сделано для сайта localhost, поэтому прописываем его в файле hosts, чтобы заставит браузеры так же искать его не в Большом Интернете, а внутри компьютера среди сайтов с IP=127.0.0.1.
1.11. Для этого копируем отсюда следующие строки:
127.0.0.1 designfornet 127.0.0.1 www.designfornet
И подставляем их в окне текстового редактора в текст файла hosts под самые нижние строчки, чтобы получилось нечто подобное:
… # localhost name resolution is handled within DNS itself. #127.0.0.1 localhost #::1 localhost 127.0.0.1 localhost 127.0.0.1 www.localhost 127.0.0.1 designfornet 127.0.0.1 www.designfornet
1.12. Сохраняем изменения в файле hosts через редактор (там есть значок «Сохранить», как в Word), но сам файл hosts пока не закрываем, как и сам редактора.
Apache виртуальный хост
2.1. Следующим этапом настройки виртуальных хостов станет наладка взаимодействия сайта с модулем Apache, составляющим ядро вебсервера XAMPP.
Вначале надо внести поправки в главный конфигурационный файл сервера apache httpd conf, который находится по адресу C:\xampp\apache\conf.
2.2. Возьмем файл httpd.conf для редактирования в текстовый редактор и найдем в нем две строки:
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#Include «conf/extra/httpd-vhosts.conf» (намного ниже — и может быть уже без #)
Знаки # не позволяют выполняться этим инструкциям, поэтому раскомментируем их – т.е. уберем все решетки # перед этими фразами.
Первая запись позволяете обрабатывать ссылки в простом и в вебовском виде (слово alias переводится как «псевдоним» – этой строчкой мы разрешаем существования зеркал для сайта, начинающихся с www и без.
Вторая строка включает (запускает) файл httpd-vhosts.conf, который отвечает за виртуальные хосты.
В файле httpd.conf эти две строчки должны быть без решеток, поэтому их просто убираем:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
Include «conf/extra/httpd-vhosts.conf»
Сохраняем изменения в файле httpd.conf.
2.3. Теперь перейдем к файлу httpd-vhosts.conf по адресу C:\xampp\apache\conf\extra
Возьмем файл httpd-vhosts.conf в текстовом редакторе. Понятно, что здесь находятся записи о виртуальных хостах.
Теперь нам надо дописать (вставить снизу) под имеющиеся строки скрипт, который мы скопируем из нижнего параграфа
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "C:\xampp\htdocs" ServerName localhost </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot "C:\xampp\htdocs\designfornet\www" ServerName designfornet ServerAlias www.designfornet ErrorLog "C:\xampp\htdocs\designfornet\logs\error_log" CustomLog "C:\xampp\htdocs\designfornet\logs\access.log" combined <Directory "C:\xampp\htdocs\designfornet\www"> AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
Обратите внимание, что в некоторых версиях в коде могут использоваться одинарные английские кавычки (’), типа «DocumentRoot ‘C:\xampp\htdocs’», тогда вам самим придется исправлять наш скрипт под ваш httpd-vhosts.conf.
2.4. Для любознательных я расшифрую строки скрипта. Там речь идет типа этого:
— будет создан виртуальный сервер на порту 80, документы администратора root сервера будут располагаться в папке htdocs, создается почтовый ящик с именем webmaster@localhost;
— далее – создается виртуальный сайт с именем designfornet и с псевдонимом www.designfornet, указываются адреса журналов ошибок и запрет на допуск сторонним лицам.
2.5. Сохраняем изменения в файле httpd-vhosts.conf. Закрываем файлы httpd-vhosts.conf и httpd.conf.
Сервер Apache воспримет новые установки, только если мы его перезагрузим. Откроем Контрольную панель XAMPP и кнопкой Stop остановим работу Apache. Через некоторое время запустим его снова кнопкой Start.
2.6. Следующий шаг – проверяем, будут ли теперь работать короткие ссылки designfornet и www.designfornet в браузер. Копируем ссылки по очереди отсюда и вставляем в строку адреса браузера Mozilla Firefox.
Можно проверить и другие браузеры, однако Google Chrome может игнорировать локальные хосты.
Если мы сделали все аккуратно, то по любой ссылке http://designfornet/ или http://www.designfornet/ будет открываться один и тот же сайт designfornet на странице с приветствием «Это домашний сайт designfornet. Ура!».
2.7. Сделаем небольшие выводы из нашего урока по созданию виртуальных хостов.
В системе Windows имеется специальный файл hosts в котором можно записать в виде исключения домашние сайты, тогда браузеры не будет искать их в Большом Интернете. Такой файл выполняет роль DNS сервера, который знает картографию сайтов в Интернете.
В программе сервера Apache в главном конфигурационном файле httpd.conf требуется активировать возможность определения синонимов (псевдонимов) сайта (без и с www) в тексте ссылок, тогда по разным ссылкам:
http://designfornet/
http://www.designfornet/
будет открываться одна и та же страница.
Страницы designfornet и www.designfornet называются зеркалами.
Чтобы получить короткий вид ссылки надо активировать файл httpd-vhosts.conf и внести в него настройки нашего сайта.
Как создать виртуальный хост
3.1. Для закрепления урока попробуем быстро создать виртуальные хосты для сайта с произвольным именем. Придумаем сайту имя, по-русски означающее «мой_сайт-2_на_локальном_компе» — my_site-2.local, отвечающее всем требованиями: из букв латинского языка с разрешенными знаками и даже с несуществующей зоной local.
3.2. Создадим для этого сайта папку в папке htdocs (C:\xampp) внутри севера XAMPP и дадим ей имя my_site-2.local. Следом уже внутри папки my_site-2.local создаем две подпапки: logs с пустым текстовым документом error_log.txt и вторую подпапку — www с файлом index.html. В файл index.html запишем новое приветствие: «Это сайт my_site-2.local».
3.3. Настроим Windows, чтобы она заставляла браузер искать сайт внутрь компьютера, если ссылка будет иметь вид my_site-2.local (или www.my_site-2.local).
Для этого открываем системный файл hosts (C:\Windows\System32\drivers\etc) и подписываем имя нашего сайта и его зеркало (псевдоним с www) под самые нижние строки, как мы это делали для сайта designfornet:
127.0.0.1 designfornet 127.0.0.1 www.designfornet 127.0.0.1 my_site-2.local 127.0.0.1 www.my_site-2.local
3.4. Сохраняем изменения в файле hosts и переходим в папку XAMPP. Главный конфигурационный файл httpd.conf нам уже не нужен, поэтому открываем только файл httpd-vhosts.conf по адресу C:\xampp\apache\conf\extra. Копируем из окна редактора кусок скрипта, касающийся сайта designfornet и вставляем его в какой-нибудь документ – или Блокнот или даже Word:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot "C:\xampp\htdocs\designfornet\www" ServerName designfornet ServerAlias www.designfornet ErrorLog "C:\xampp\htdocs\designfornet\logs\error_log" CustomLog "C:\xampp\htdocs\designfornet\logs\access.log" combined <Directory "C:\xampp\htdocs\designfornet\www"> AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
3.5. Понятно, что это нам надо для того, чтобы заменить слово designfornet на имя нового сайта my_site-2.local. После смены имен мы должны получить следующий скрипт:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot "C:\xampp\htdocs\my_site-2.local\www" ServerName my_site-2.local ServerAlias www.my_site-2.local ErrorLog "C:\xampp\htdocs\my_site-2.local\logs\error_log" CustomLog "C:\xampp\htdocs\my_site-2.local\logs\access.log" combined <Directory "C:\xampp\htdocs\my_site-2.local\www"> AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
Следите, чтобы не образовались ненужные пробелы в тексте и отступы от косой черты.
3.6. Вернем (подставим) этот текст снизу в файл httpd.conf и сохраним изменения в текстовом редакторе. В результате получим для сайта my_site-2.local секцию в файле httpd.conf, аналогичную секции, посвященной сайту designfornet.
3.7. Останавливаем через Контрольную панель XAMPP модуль Apache и запускаем снова кнопкой «Start», чтобы наши изменения вступили в силу.
3.8. Вставляем поочередно ссылки my_site-2.local и www.my_site-2.local в браузер. Если все было сделано без ошибок, то ссылки http://my_site-2.local и http://www.my_site-2.local будут вести на одну и туже страницу с приветствием «Это сайт my_site-2.local».
Я надеюсь, что теперь ни у кого не будет трудностей с созданием сайта на вебсервере XAMPP и настройках виртуальных хостов.
Вы можете еще потренироваться в создании сайтов, например, с именем site3.home.
Я думаю что можно сделать даже небольшое обобщение по принципам устройства интернета.
Главной программой интернета является программа браузер, которую мы заставляем искать сайт, если укажем его в строке адреса. Сама она не знает, где лежит запрашиваемый сайт, поэтому вначале спрашивает у системы windows (в файле hosts) – нет ли внутренних сайтов, как наши. Если сайта нет в списке, то браузер обращается на DNS сервер в Интернете, которые знают картографию сайтов в сети. Получив от DNS серверa адрес сайта браузер переходит на тот физический сервер, где лежит папка сайта и активирует серверные программы. Они выдают ему одну и туже страницу, даже при наличии в ссылке псевдонимов (без и с www).
Настройка виртуальных хостов – это лишь создание коротких и понятных для людей ссылок.
design-for.net
Как настроить виртуальный хост — XAMPP + Windows / Ubuntu
Как настроить виртуальный хост — XAMPP + Windows / Ubuntu
08.05.2018 22:20 | Другое, PHP
Как по мне, работать гораздо удобнее, когда для каждого разрабатываемого сайта создан виртуальный хост. Кратко рассмотрим настройку хостов в XAMPP под Windows и Linux Ubuntu.
Настройка виртуального хоста в Windows
Шаг 1
Если мы создаём первый виртуальный хост, то надо открыть файл httpd.conf
(в моём случае путь к нему D:\xampp\apache\conf\httpd.conf
), найти строку
Include conf/extra/httpd-vhosts.conf
и раскомментировать её, (т.е. убрать символ решётки перед строкой). Повторюсь, это действие выполняется однократно, и для настройки последующих виртуальных хостов не потребуется.
Шаг 2
Открываем файл httpd-vhosts.conf
, который находится в поддиректории extra
(опять-таки, в моём случае путь D:\xampp\apache\conf\extra\httpd-vhosts.conf
) и описываем наш виртуальный хост. Если разрабатываемый сайт будет располагаться в директории xampp/htdocs
, то достаточно и минимальных настроек:
<VirtualHost *:80>
DocumentRoot "D:/xampp/htdocs/blog"
ServerName blog.local
</VirtualHost>
где:
DocumentRoot
— местоположение сайтаServerName
— имя сайта (на своё усмотрение)
Если же мы хотим расположить сайт в какой-либо иной директории, то при таких настройках скорее всего получим ошибку 403:
You don’t have permission to access the requested directory. There is either no index document or the directory is read-protected.
Посему, понадобится добавить ещё несколько строк (предположим, что сайт находится на диске D в директории web
):
<VirtualHost *:80>
DocumentRoot "D:/web/blog"
ServerName blog.local
<Directory "D:/web/blog/">
Require all granted
</Directory>
</VirtualHost>
Директива Require all granted
в Apache 2.4 аналогична директиве Allow from all
в предыдущих версиях Apache и разрешает доступ к указанной директории.
Есть ещё один важный нюанс. Если мы хотим в имени сайта использовать что-то вроде доменной зоны – в примере выше local
– название этой «доменной зоны» не должно совпадать с реально существующими зонами. В противном случае получим ошибку а-ля «Подключение не защищено» и будем долго думать, в чём проблема. Я раньше часто использовал .dev
, но сейчас это уже недопустимо.
Шаг 3
Открываем файл C:\Windows\System32\drivers\etc\hosts
и вставляем строку:
127.0.0.1 blog.local
Перезапускаем XAMPP, вводим в адресной строке браузера blog.local
и готово. Случается, браузер воспринимает наш адрес как поисковой запрос. В этому случае просто введём http://blog.local
. Для создания других виртуальных хостов надо просто повторить шаги 1 и 2.
Настройка виртуального хоста в Ubuntu 16.04
По большому счёту, мы повторим практически те же шаги, что и для Windows, но есть свои нюансы.
Шаг 1
Открываем терминал и переходим в режим root
, т.е. вводим команду:
sudo su
и затем свой пароль.
Шаг 2
Отредактируем файл httpd.conf
. Можно использовать любой редактор, я буду пользоваться nano
. Выполним в терминале команду:
nano /opt/lamp/etc/httpd.conf
В файле найдём строку с DocumentRoot
и после </Directory>
допишем следующее:
<Directory “/YourDirectory/”>
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Require all granted
</Directory>
Где YourDirectory
– путь к директории, где будут находиться разрабатываемые сайты. Например /home/serhii/web
. И снова – этот шаг требуется только при настройке первого виртуального хоста.
Шаг 3
Так же, как и в случае с Windows, опишем виртуальный хост. Открываем нужный файл в nano
командой:
nano /opt/lamp/etc/extra/httpd-vhosts.conf
И вставляем следующие строки:
<VirtualHost *:80>
DocumentRoot "/home/serhii/web/blog"
ServerName blog.local
</VirtualHost>
Шаг 4
И последним отредактируем файл hosts
, для чего выполним команду:
nano /etc/hosts
и вставим строку:
127.0.0.1 blog.local
Перезапускаем XAMPP и можно приступать к работе.
P.S. В описисании хоста (шаг 2 для Windows и шаг 3 для Ubuntu) по желанию можно было бы также прописать и другие директивы, такие как псевдоним сервера, путь к логам и т.д., о чём подробнее можно почитать в документации.
si-dev.com
Virtual Host под XAMPP в Linux Mint – Zencoder
Под локальным сервером XAMPP можно создавать неограниченное количество виртуальных хостов.
Что такое виртуальный хост (Virtual Host)? Применительно в серверу XAMPP — это поддиректории, в которых размещаются отдельные сайты. То есть, имеется директория , а в ней размещены поддиректории
,
,
(или же так —
,
,
, название может быть любым).
В каждой из этих поддиректорий распакован и установлен движок CMS WordPress (к примеру). Вот эти поддиректории ,
,
и являются виртуальными хостами под локальным сервером XAMPP.
Как уже упоминалось выше, сервер XAMPP может поддерживать неограниченное количество виртуальных хостов. Однако, по умолчанию разрешено использовать только два хоста. Но редактирование конфигурационного файла позволяет добавлять столько, сколько нужно.
Настройка виртуальных хостов на XAMPP под Linux Mint почти ничем не отличается от подобной настройки под Windows, меняются только пути конфигурационных файлов. Весь процесс настройки можно свести к двум шагам:
- Настройка хостов в файле
- Настройка виртуальных хостов в файле
1
/opt/lampp/etc/extra/httpd-vhosts.conf
Ниже на примере расмотрим подробное описание создания одного виртуального хоста на XAMPP под Linux Mint.
Создание поддиректории виртуального хоста (Virtual Host)
Для начала подготовим место, где будет располагаться будущий виртуальный хост. Для этого создадим поддиректорию (имя произвольное) и обязательно разместим в ней индексный файл
:
$ sudo mkdir -p /opt/lampp/htdocs/redface
$ sudo touch /opt/lampp/htdocs/redface/index.html
Виртуальный хост с именем почти создан. Осталось “сказать” об этом локальному серверу XAMPP и операционной системе Linux Mint.
Редактирование файла /etc/hosts
Операционной системе Linux Mint нужно “сказать”, что виртуальный хост размещен по адресу
. Для этого открываем для редактирования файл
командой:
$ sudo nano -w /etc/hosts
… и дописываем в нем строку :
127.0.0.1 localhost
127.0.1.1 zmk
# Virtual hosts
127.0.0.1 redface.dev
Окончание является произвольным и служит для того, чтобы вебмастер не забыл, что данный сайт является локальным. Вместо
можно использовать
и какое угодно другое имя.
Сохраняем Ctrl+O и выходим Ctrl+X из редактора .
Включение поддержки виртуального хоста в XAMPP
По умолчанию в настройках XAMPP отключена поддержка виртуальных хостов. Для включения такой возможности нужно отредактировать конфигурационный файл сервера Apache.
Для этого открываем его командой:
$ sudo nano -w /opt/lampp/etc/httpd.conf
В открытом файле нужно найти (в редакторе это сочетание Ctrl+W) строку
и раскомментировать (снять знак решетки
) строку:
#Include etc/extra/httpd-vhosts.conf
Создание виртуального хоста в файле httpd-vhosts.conf
Открываем для редактирования файл и знакомимся с его содержимым:
$ sudo nano -w /opt/lampp/etc/extra/httpd-vhosts.conf
В начале идет много закомментированных строк с кратким описанием виртуального хоста и принципом его создания в данном файле. Можно смело почистить файл от этого мусора.
Далее идут два блока с открывающим тегом и закрывающим тегом
. Данные блоки являются виртуальными хостами — их два по умолчанию, но можно добавить сколько необходимо.
Эти блоки не рабочие, а всего лишь примеры, как нужно создавать свой собственный виртуальный хост. Внутри тегов /
размещена служебная информация — описание виртуального хоста:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/opt/lampp/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
Жизненно необходимыми для существования виртуального хоста (Virtual Host) под XAMPP являются две строки:
- DocumentRoot — путь размещения виртуального хоста в файловой системе
- ServerName — доменное имя виртуального хоста
Остальные строки носят дополнительный характер:
- ServerAdmin — e-mail адрес “администратора” хоста
- ServerAlias — синоним доменного имени ServerName
- ErrorLog и CustomLog — логи виртуального хоста
Эти два блока-примера можно отредактировать для конкретного случая, а можно создать свой собственный блок (виртуальный хост) на их основе. Давайте пойдем по второму пути и создадим свой собственный блок для виртуального хоста :
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/opt/lampp/htdocs/redface"
ServerName redface.dev
ServerAlias www.redface.dev
ErrorLog "logs/redface-error_log"
CustomLog "logs/redface-access_log" common
</VirtualHost>
Обратите внимание, как поменялись значения в этм блоке на конкретные, под хост .
Запускаем (если еще не запущен) или перезапускаем (если уже был запущен) локальный сервер XAMPP:
$ sudo /opt/lampp/lampp start
Starting XAMPP for Linux 1.8.2-5...
XAMPP: Starting Apache...ok.
XAMPP: Starting MySQL...ok.
XAMPP: Starting ProFTPD...ok.
… и “вбиваем” в адресной строке браузера доменное имя созданного нами виртуального хоста :
ОК, все работает!
Проблемы с правами доступа на виртуальном хосте
При создании виртуального хоста (Virtual Host) под XAMPP в директории для создания или редактирования файлов потребуется изменение прав доступа. По умолчанию поддиректория, в которой располагается виртуальный хост, и все файлы внутри этого хоста имеют разрешение только на чтение.
Чтобы можно был вносить в них изменения с правами обычного пользователя, нужно выполнить команду:
$ sudo chmod g+w /opt/lampp/htdocs/redface/index.html
Изменение точки монтирования виртуального хоста
В этой статье точка монтирования виртуальных хостов (Virtual Hosts) располагалась по адресу — . То есть, поддиректории виртуальных хостов находились внутри директории
.
Однако, у локального сервера XAMPP имеется возможность переопределить местоположение виртуальных хостов внутри файловой системы Linux Mint. Например, можно расположить все хосты в домашней директории пользователя. Плюсом такого выбора является то, что нет необходимости настраивать права доступа для папок и файлов.
Вся настройка для переопределения точки монтирования виртуальных хостов (Virtual Hosts) сводится к одному действию — изменить значение строки . Но, к моему сожалению, мне не удалось настроить XAMPP на своем ноутбуке подобным образом.
Все попытки переименовать значение строки приводили к тому, что XAMPP не мог открыть индексную страницу.
В чем причина подобного отказа со стороны XAMPP, я так и не разобрался. Может быть, внимательный читатель подскажет, в чем причина?
P.S. от 09.09.2014
Добавил в статью комментарий пользователя Alexandr. Сам комментарий мне понравился — подробный и ценный. Поэтому перенес его в статью, как есть. Ниже привожу полный текст, с небольшими стилистическими правками.
Так можно добавить в рабочую папку с проектами на другом диске (например, для использования на Linux и Windows отдельно):
1. Файл httpd.conf
Найти строки и заменить (Имя пользователя):
- User (username)
- Group (по умолчанию или username)
Не меняем:
DocumentRoot "/opt/lampp/htdocs” и Directory “/opt/lampp/htdocs"
2. Создаем мягкую ссылку:
$ sudo ln –s /media/(username)/mydisk/Open Server/domains /opt/lampp/htdocs
Права на мягкую ссылку “opt/lampp/htdocs/domains” д. б. 777 ( или около того )
3. Файл httpd-vhosts.conf
#localhost
<VirtualHost *:80>
DocumentRoot "/opt/lampp/htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
ServerAdmin mydomain@mail
DocumentRoot "/opt/lampp/htdocs/domains/mydomain/www"
ServerName mydomain
ServerAlias http://www.mydomain
</VirtualHost>
4. Файл /etc/hosts
#Virtual hosts
127.0.0.1 localhost
127.0.0.1 mydomain
5. Меняем владельца файла
Меняем владельца файла
:1
/opt/lampp/htdocs/xampp/lang.tmp
$ chown (username) /opt/lampp/htdocs/xampp/lang.tmp
Иначе дальше стартовой страницы может не загрузиться.
6. Перезапуск сервера
Перезапуск сервера:
$ sudo /opt/lampp/lampp restart
… и проверка в браузере:
Каждый раз при запуске компьютера, сайты будут не доступны, до тех пор пока диск не примонтирован к системе (для этого нужно просто зайти на тот диск, с помощью файл-менеджера или придумать свой способ).
Если каким-то образом, диск в Linux откажется монтироваться, нужно в Windows отключить быструю загрузку (Fast Boot) в параметрах электропитания.
Для тестирования IE в Linux ставится виртуальная машина (например, VirtualBox), куда устанавливаем Windows7 и любимый браузер IE. В самой Windows редактируем файл также как и в Linux, с одним условием – нужно вписывать другой IP, вместо 127.0.0.1, нужно вписывать 10.0.2.2.
Вот так:
c:/windows/system32/drivers/etc/hosts
10.0.2.2 localhost
10.0.2.2 mydomain
Сайт через виртуальную машину будет также доступен.
linuxvirtual hostxampp
gearmobile.github.io
Как настроить виртуальные хосты Apache на XAMPP (Windows) — apache
Полное руководство для создания VHOST (Virtual Host) на XAMPP/WAMP
Примечание.. Для начала единственная разница для этого руководства, между XAMPP и WAMP или другими пакетами Apache для Windows, — это вопрос, где эти пакеты установлены на вашем компьютере.
Введение: vhost (виртуальный хост) — отличное решение, если вы планируете разрабатывать много независимых проектов в php и изолировать их друг от друга, например:
- Проект 1 основан на php и имеет локальный адрес URL
php.localhost
- Проект 2 — проект Laravel с url
laravel.localhost
- Проект 3 является Codeigniter с url
codeigniter.locathost
- Проект 4 — это WordPress с URL
wordpress.locathost
Предполагается, что вы установили последнюю версию XAMPP/WAMP. Кстати, в моем случае я только установил Apache и MySQL.
* Примечание.. По умолчанию большинство веб-серверов будут использовать порт 80 как порт по умолчанию, в некоторых случаях, если у вас установлен другой веб-сервер (Microsoft IIS), он также использует порт 80 или в других случаях SKYPE также несколько раз использует порт 80, как это имеет место для некоторых в Windows 8/10 для некоторых пользователей, в этом случае вы можете сделать две вещи
- Измените порт Apache на порт
8080
,8081
и т.д. или некоторые другие свободные порты (примечание: 8080 может несколько раз также дать некоторые проблемы) - ИЛИ Измените другое программное обеспечение/порт IIS и сохраните Apache по умолчанию на порту 80 в случае Skype, просто запустите приложение Skype и перезапустите его после установки Apache на порт 80, Skype автоматически получит новый порт.
Я решил изменить мой Apache на порт 8080.
Примечание:
— Для следующего раздела нам нужно использовать текстовый редактор, например блокнот или обычную IDE. Я использовал возвышенный текстовый редактор.
— Если вы сохраняете Apache до порта 80 по умолчанию, пропустите эту часть и перейдите к виртуальным хостам.
Изменить порт XAMPP/WAMP (только при необходимости) если оставить значение по умолчанию, а затем перейти к настройке виртуального хоста
Шаг 1. Отредактируйте httpd.conf
Нажмите «Конфигурация» → «Apache» (httpd.conf)
Или вы найдете файл здесь C:\XAMPP\apache\conf\httpd.conf
, C:\XAMPP\apache2\conf\httpd.conf
, C:\Bitnami\wampstack\apache\conf\httpd.conf
или C:\Bitnami\wampstack\apache2\conf\httpd.conf
или аналогичное местоположение.
Измените строку с помощью
Listen 80
К 8080 или другим, свободным портам.
Listen 8080
Пока мы открываем файл httpd.conf
, мы должны обеспечить включение httpd-vhosts.conf
:
Включить conf/extra/httpd-vhosts.conf
Виртуальные хосты
Примечание. По умолчанию серверные документы находятся на
C:\XAMPP\htdocs
илиC:\Bitnami\wampstack\apache2\htdocs
, это нормально, если у вас есть только один проект или несколько небольших тестовых файлов. Однако, если вам нужно разработать много проектов, то предлагалось отделить их от виртуального хоста, как упоминалось ранее.
Шаг 2. Настройка виртуального хоста
- Создайте папку для ваших проектов; Я создал один в
c:\vhost
, вы можете назвать его проектами и т.д. - В папке
c:\vhost
мы создаем подпапку domain1 или project1 или любую другую, это зависит от вас (c:\vhost\project1
) - Открыть
httpd-vhosts.conf
файлC:\XAMPP\apache\conf\extra\httpd-vhosts.conf
Добавить следующий код в строке в зависимости от того, сколько хостов вы хотите создать:
<Directory C:/vhost>
AllowOverride All
Require all granted
</Directory>
#this is the default address of XAMPP
<VirtualHost *:8080>
DocumentRoot "C:/XAMPP/htdocs/"
ServerName localhost
</VirtualHost>
#this is the first vhost address in XAMPP
<VirtualHost *:8080>
DocumentRoot "C:/vhost/project1/"
ServerName php.localhost
SetEnv NS_ENV variable_value
</VirtualHost>
#this is the second vhost address in XAMPP for project like Laravel
<VirtualHost *:8080>
DocumentRoot "C:/vhost/Laravel-Blog/public"
ServerName laravel.localhost
</VirtualHost>
etc
Примечание.. Если вы работаете над проектами Laravel, вы можете создавать неограниченные проекты Laravel, а также другие фреймворки, такие как codeigniter, Yii и т.д., дело в том, что у вас есть проект Laravel/s на
c:\vhost\laravel1
,c:\vhost\laravel2
и т.д. и сделайтеc:\vhost\laravel1\public
как DocumentRoot и т.д., Как показано ранее. Каждый проект Laravel будет иметь собственный URL-адрес VirtualHost.
Сохранить и закрыть файл
Дополнительная информация и примечания:
- Если порт остается по умолчанию 80, тогда адрес URL будет
localhost
- Если порт остается по умолчанию 80, то тег VirtualHost следует изменить на
<VirtualHost *:80>
- Если порт изменен на
8080
, адрес URL будетlocalhost:8080
- И адрес URL-адреса vhost может выглядеть так:
project1.localhost:8080
и т.д. - Вы можете добавлять неограниченные проекты и виртуальный хост таким образом.
Мы еще не готовы, читаем больше.
Шаг 3. Редактирование файла хоста Windows
- Остановить службы Apache и MySQL от XAMPP/WAMP.
- Открыть файл hosts в
C:\windows\system32\drivers\etc
вам необходимо получить права администратора для редактирования файла. Я предлагаю отредактировать файл напрямую с помощью текстового редактора Sublime. - Добавьте
127.0.0.1 project1.localhost
в конец файла, сохраните и закройте файл.
127.0.0.1 localhost
127.0.0.1 php.localhost
127.0.0.1 laravel.localhost
127.0.0.1 codeigniter.localhost
127.0.0.1 wordpress.localhost
127.0.0.1 laravel2.localhost
etc. those are just examples
сохранить файл
Заключительный шаг. Запустите/снова запустите свой Apache и MySQL.
Добавление (предложение)
Примечание.. В процессе разработки вы можете столкнуться с проблемой кэширования, потому что вы можете рискнуть обновить что-то в Laravel и не появится в вашем браузере. Поэтому вам может потребоваться отключить кэш php в процессе разработки в локальной среде.
Откройте файл php.ini
в папке php в папке Apache (XAMPP или WAMP) и
измените opcache.enable
на 0
, чтобы он выглядел так:
[opcache]
zend_extension=php_opcache.dll
; Determines if Zend OPCache is enabled
opcache.enable=0
Добавление (альтернативное решение)
Важно: Следующее решение не подходит для тестирования Restful Api, canvas, тяжелых решений и т.д., это может дать вам некоторые головные боли, я бы предложил решение виртуального хоста с портом 80 по умолчанию.
Можно развернуть временный виртуальный сервер без необходимости настройки виртуального хоста XAMPP/WAMP, запустить консоль CMD и выполнить следующую команду php:
php -S localhost:8001 -t c:\vhost\Laravel-Project\public
- Порт 8001 может быть изменен на любой доступный номер порта и быть уверенным и противоречить другим портам программного обеспечения.
-
c:\vhost\Laravel...
путь должен быть изменен на любой путь к проекту. - Можно запускать несколько серверов, но должны иметь разные номера портов.
В вашем браузере вам нужно только право
http://localhost:8001/
Примечание по 403 Запрещенная ошибка доступа
Если вы обнаружите 403 доступную запрещенную ошибку при переходе на ваш сайт, вам может потребоваться добавить ее в файл httpd.conf:
<Directory path_to_dir>
AllowOverride none
Require all granted
</Directory>
qaru.site