Дано:
Веб-сервер apache 2.2
Задача:
Рразместить несколько сайтов на одном компьютере с одним ip
Решение:
В интернете, широко распространена практика размещения разных сайтов на одном ip. Подобная практика удобна для провайдеров, которые предоставляют услуги по размещению, как платных, так и бесплатных сайтов.
Сегодня я напишу небольшую инструкцию, как настроить apache 2.2 для размещения нескольких сайтов на одном локальном компьютере.
В основном все веб-хостеры, apache устанавливают на сервера под управлением Linux / Unix систем. В моем же случае, я буду описывать инструкцию для apache под управлением Windows. Т.к. в домашних условиях, широко распространена практика установки apache на windows системы. Под Linux настройки для apache будут схожи.
В apache все дополнительные сайты, считаются виртуальными хостами. И если вы сейчас не планируете размещать более одного сайта, то всё же рекомендую настроить apache на размещение более одного виртуального хоста. Это позволит в будущем, если возникнет необходимость, без проблем добавить любое количество сайтов.
Настраивать apache будем на примере добавления двух сайтов: firstsite.home и secondsite.home
Первым делом, создаем корневую папку (каталог) на диске, где будем размещать свои сайты. Например: d:\web. В этой папке создадим две папки, где разместим будущие два сайта – firstsite и secondsite. Полный путь к двум сайтам: d:\web\firstsite и d:\web\ secondsite
Открываем и редактируем основной конфигурационный файл apache – “..\conf\httpd.conf” (путь windows)
Ищем раздел # Virtual hosts и раскомментируем строку Include conf/extra/httpd-vhosts.conf. Эта строка подключит файл httpd-vhosts.conf со списком наших будущих виртуальных хостов (сайтов). По умолчанию этот файл уже присутствует, при желании можно создать свой.
Далее открываем файл на редактирование conf/extra/httpd-vhosts.conf. В этом файле уже созданы два виртуальных сайта. Все подключаемые сайты заключены в теги:
<VirtualHost *:80>
…
</VirtualHost>
Если пока вы не планируете использовать более одного сайта, то нужно будет один из блоков удалить или закомментировать.
Далее прописываем настройки наших сайтов.
Для сайта www.firstsite.home
<VirtualHost *:80>
ServerAdmin webmaster@firstsite.home
DocumentRoot “ d:/web/firstsite ”
ServerName firstsite.home
ServerAlias www.firstsite.home
ErrorLog “logs/firstsite.home-error.log”
CustomLog “logs/firstsite.home-access.log” common
</VirtualHost>
Для сайта www.secondsite.home
<VirtualHost *:80>
ServerAdmin webmaster@secondsite.home
DocumentRoot “ d:/web/secondsite ”
ServerName secondsite.home
ServerAlias www.secondsite.home
ErrorLog “logs/secondsite.home-error.log”
CustomLog “logs/secondsite.home-access.log” common
</VirtualHost>
Думаю, назначение каждой из строк понятно. При желании 80 порт можно заменить на любой другой. А также необязательными являются следующие строки: ServerAdmin, ErrorLog и CustomLog. Всю конструкцию можно свести к следующему виду:
<VirtualHost *:80>
DocumentRoot “ d:/web/firstsite ”
ServerName firstsite.home
ServerAlias www.firstsite.home
</VirtualHost>
Сохраняем настройки и перезапускаем apache.
Остался последний шаг, – прописать наши сайты в файле C:\WINDOWS\system32\drivers\etc\hosts
Открываем на редактирование файл hosts, и добавляем следующие строки:
127.0.0.1 firstsite.home
127.0.0.1 secondsite.home
Сохраняем и закрываем.
Теперь открываем любой браузер и проверяем доступность сайтов по адресу:
http://firstsite.home и http://secondsite.home
Для того, чтобы настроить доступ к виртуальному сайту используют внутри конструкцию
<Directory “/usr/local/www/mysite.com”>
Order allow,deny
Allow from all
</Directory>
Пример:
<VirtualHost *:80>
DocumentRoot “/usr/local/www/mysite.com”
ServerName mysite.com
ServerAlias www.mysite.com
<Directory “/usr/local/www/mysite.com”>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Автор: Юрий (wdiz@bk.ru)