Виртуальные хосты на Apache 2.2 | |||||
|
Встала тут передо мной задача использовать несколько сайтов на сервере с одним IP-адресом. На DNS-серверах привязка имен к этому IP-адресу есть, осталось настроить Апач для работы с несколькими доменами. Итак, у нас 3 есть доменных имени для сайтов: site1.ru, site2.ru и site3.ru. Каждый сайт будет находиться в своей директории в /var/www. Создадим эти директории mkdir /var/www mkdir /var/www/www.site1.ru mkdir /var/www/www.site1.ru/htdocs mkdir /var/www/www.site1.ru/logs mkdir /var/www/www.site2.ru mkdir /var/www/www.site2.ru/htdocs mkdir /var/www/www.site2.ru/logs mkdir /var/www/www.site3.ru mkdir /var/www/www.site3.ru/htdocs mkdir /var/www/www.site3.ru/logs Как видно из вышенаписанного, файлы сайтов будут лежать в htdocs, а логи — в logs. В /etc/apache2/conf.d создаем файл virtual.conf следующего содержания: # # /etc/apache2/conf.d/virtual.conf # NameVirtualHost * После этого переходим в директорию /etc/apache2/sites-available и создаем конфигурационные файлы для каждого сайта. # # site1.ru (/etc/apache2/sites-available/www.site1.ru) # ServerAdmin admin@site1.ru ServerName www.site1.ru ServerAlias site1.ru *.site1.ru * DirectoryIndex index.php index.html DocumentRoot /var/www/www.site1.ru/htdocs/ ErrorLog /var/www/www.site1.ru/logs/error.log CustomLog /var/www/www.site1.ru/logs/access.log combined Обратите внимание, что звездочку в первом конфиге я поставил сознательно, чтобы при заходе просто по IP-адресу или по по адресу, к которому нет конфига в апаче, открывался именно этот сайт. # # site2.ru (/etc/apache2/sites-available/www.site2.ru) # ServerAdmin admin@site2.ru ServerName www.site2.ru ServerAlias site2.ru *.site2.ru DirectoryIndex index.php index.html DocumentRoot /var/www/www.site2.ru/htdocs/ ErrorLog /var/www/www.site2.ru/logs/error.log CustomLog /var/www/www.site2.ru/logs/access.log combined # # site3.ru (/etc/apache2/sites-available/www.site3.ru) # ServerAdmin admin@site3.ru ServerName www.site3.ru ServerAlias site3.ru *.site3.ru DirectoryIndex index.php index.html DocumentRoot /var/www/www.site3.ru/htdocs/ ErrorLog /var/www/www.site3.ru/logs/error.log CustomLog /var/www/www.site3.ru/logs/access.log combined Теперь добавляем эти сайты в используемые, написав в консоли: a2ensite www.site1.ru a2ensite www.site2.ru a2ensite www.site3.ru Таким образом мы создаем симлинки на наши сайты в /etc/apache2/sites-enabled. Осталось только перезагрузить апач, и всё. /etc/init.d/apache2 reload После этого можете заливать сайты и радоваться жизни. |