Статьи

Как протестировать несколько сайтов на одном ПК с виртуальными хостами Apache

Run multiple sites Редко можно найти веб-разработчика, ответственного только за один сайт. В этой статье мы настроим ваш компьютер для разработки, чтобы вы могли тестировать любое количество веб-сайтов, используя выделенное доменное имя для каждого. Вам потребуется локальная установка Apache 2.2 и, опционально, PHP и MySQL .

Файл Небесных Хозяев

Когда вы вводите адрес в браузере, имя домена обычно преобразуется в IP-адрес сервером доменных имен. Непосредственно перед этим компьютер проверит собственный файл hosts. Файлы хоста доступны практически во всех операционных системах:

  • Windows NT, 2000, XP, 2003 и Vista: % WinDir% system32driversetchosts (обратите внимание, это расположение можно изменить в разделе реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersDataBasePath)
  • Windows 95, 98, ME: % WinDir% hosts
  • Linux, Unix, BSD: / etc / hosts
  • Mac OS X: / private / etc / hosts

В большинстве случаев ваши файлы хостов будут содержать одну запись:


127.0.0.1  localhost

Если вы в браузере введете «http: // localhost /», то получите адрес обратной связи TCP / IP 127.0.0.1 (ваш компьютер).

Файл hosts может содержать любое количество отображений домена. Предположим, мы хотим протестировать два сайта локально: www.mysite1.com и www.mysite2.org . Мы можем создать два домена в нашем файле hosts для тестирования, например, mysite1 и mysite2 :

 
127.0.0.1  localhost
127.0.0.1  mysite1
127.0.0.1  mysite2

Некоторые операционные системы реализуют изменения, как только файл hosts будет сохранен. Пользователи Windows должны ввести «nbtstat -R» в командной строке. Попробуйте перезагрузиться, если ничего не помогает.

Настройка виртуальных хостов Apache

Apache может запускать любое количество веб-сайтов на одном компьютере. (Примечание: также могут быть версии сервера Microsoft IIS, но не версии Windows Professional или VisualStudio.NET).

Завершите работу Apache и загрузите его конфигурационный файл confhttpd.conf в текстовом редакторе. Предполагая, что мы хотим, чтобы домен mysite1 использовал файлы в D: WebPagesmysite1 и mysite2 для использования файлов в D: WebPagesmysite2, мы добавили бы следующие определения виртуальных хостов в конец файла:

 
# Virtual hosts
NameVirtualHost *:80

# Any unspecified domain
<VirtualHost *:80>
	DocumentRoot D:/WebPages
</VirtualHost>

# mysite1 domain
<VirtualHost *:80>
	ServerName mysite1
	DocumentRoot D:/WebPages/mysite1
</VirtualHost>

# mysite2 domain
<VirtualHost *:80>
	ServerName mysite2
	DocumentRoot D:/WebPages/mysite2
</VirtualHost>

Сохраните файл и перезапустите Apache.

Тестирование ваших сайтов

Скопируйте файлы вашего сайта в D: WebPagesmysite1 и D: WebPagesmysite2 соответственно. Теперь вы можете ввести http: // mysite1 / или http: // mysite2 / в браузере, чтобы протестировать соответствующий сайт.

Бонусный совет для PHP-кодеров
Может быть полезно узнать, работает ли сайт в реальной среде или в среде разработки, например, сообщения об отладке не отображаются на рабочем сайте. Вы можете обнаружить домен с помощью кода, такого как:

 
<?php
$debug == ($_SERVER['HTTP_HOST'] == 'mysite1');
if ($debug) echo "debug message";
?>

Смотрите также:

Есть ли у вас какие-либо другие советы для тестирования нескольких веб-сайтов на одном компьютере?