Начнем с создания папок под виртуальные хосты
- Крайне желательно чтобы они лежали внутри корневой папки веб-сервера, на которую прописаны разрешающие права в httpd.conf, например
Таким образом мы видим, что у нас домашней папкой является папка C:/AppServ/www, создадим в ней 2 папки
Код: Выделить всё
# # This should be changed to whatever you set DocumentRoot to. # <Directory "C:/AppServ/www"> Options Indexes FollowSymLinks MultiViews ExecCGI AllowOverride All Order allow,deny Allow from all </Directory>
C:/AppServ/www/host1.ru и C:/AppServ/www/host2.ru
- Открываем httpd.conf и в самый конец добавляем строчки
естественно, что если вы используете порт отличный от 80го, то именно его и следует указывать
Код: Выделить всё
NameVirtualHost *:80 <VirtualHost *:80> # сюда будет попадать если обратились по ip или по неописанному имени, в частности и по host1.ru ServerName default # корневая директория для host1.ru DocumentRoot ../www/host1.ru # файл для лога ошибок ErrorLog logs/host1.ru-error.log # файл для лога обращений CustomLog "logs/host1.ru-access.log" common </VirtualHost> <VirtualHost *:80> # сюда будут попадать обращения к host2.ru и psevdo2.ru ServerName host2.ru # указание алиаса (добавочного имени) домена ServerAlias psevdo2.ru DocumentRoot ../www/host2.ru ErrorLog logs/host2.ru-error.log CustomLog "logs/host2.ru-access.log" common </VirtualHost>
Поэтому переходим к настройке файла hosts
- Открываем файл C:\WINDOWS\system32\drivers\etc\hosts и вписываем в него строки
Более подробно о настройке файла hosts можно почитать в теме Полная инструкция по hosts
Код: Выделить всё
127.0.0.1 host1.ru 127.0.0.1 host2.ru 127.0.0.1 psevdo2.ru
Проверяем
- Создадим файл C:/AppServ/www/host1.ru/index.html со следующим содержимым
и файл C:/AppServ/www/host2.ru/index.html со следующим содержимым
Код: Выделить всё
<html> <head><title>HOST1.RU</title></head> <body style="padding:50px;font-size:18px;text-align:center;">It's Host<b>1</b>.ru</body> </html>
Код: Выделить всё
<html> <head><title>HOST2.RU</title></head> <body style="padding:50px;font-size:18px;text-align:center;">It's Host<b>2</b>.ru</body> </html>
- Т.к. в последнее время почти у всех присутствует phpMyAdmin, нелишне будет ограничить доступ к нему, заодно вынеся на отдельный виртуальный хост.
Добавим в конец httpd.confтакже добавим в C:\WINDOWS\system32\drivers\etc\hosts строкуКод: Выделить всё
<VirtualHost *:80> <Directory "C:/AppServ/www/phpMyAdmin"> Order deny,allow Allow from 127.0.0.1 Allow from 192.168.1 Deny from all </Directory> ServerName pma DocumentRoot ../www/phpMyAdmin ErrorLog logs/pma-error.log CustomLog "logs/pma-access.log" common </VirtualHost>
Таким образом мы сможем обратиться к phpMyAdmin с компьютера, на котором установлен веб-сервер (127.0.0.1) и с компьютеров локальной сети (192.168.1.ххх) по виртуальному доменному имени "http://pma" (причем чтобы обращаться с компьютеров локальной сети, надо в их файле hosts указать "192.168.1.2 pma" (если IP вашего сервера 192.168.1.2) ). При обращении с других машин будет выводиться ошибка Если вам все же необходим доступ к phpMyAdmin не только с локальной машины, но и удаленно, то можно убрать блокКод: Выделить всё
127.0.0.1 pma
либо добавить в него строки разрешающие доступ с конкретного IP или подсети.Код: Выделить всё
<Directory "C:/AppServ/www/phpMyAdmin"> Order deny,allow Allow from 127.0.0.1 Allow from 192.168.1 Deny from all </Directory>
В любом случае, даже без запретов по IP, вынесение phpMyAdmin на отдельный хост усложнит для хакера его поиск и как следствие взлом, особенно если имя хоста, а также имя и пароль пользователя будут сложны для подбора по словарям.
Не забывайте перезапускать Apache, после изменения httpd.conf
При копировании информации, ссылка на источник и указание автора обязательны.