четверг, 28 апреля 2011 г.

Создание виртуальных хостов Apache2

Иногда возникает необходимость в нескольких хостах на одном сервере. Для этого в Apache есть ткая возможность создания виртуального хоста.
Ну что ж есть проблема - будем решать.
В каталоге /etc/apache2/sites-available (это для Ubuntu, в других дистрибутивах путь может отличаться) находятся конфигурации виртуальных хостов. За основу нашего виртуального хоста mysite1.ua берем файл default:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory «/usr/lib/cgi-bin»>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ «/usr/share/doc/»
<Directory «/usr/share/doc/»>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
и создаем новую конфигурацию. Для этого копируем наш файл default в эту же папку под названием mysite1.ua
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mysite1.ua

Дальше наш файл приводим к виду:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName mysite1.ua
DocumentRoot /var/www /mysite1
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/mysite1/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory «/usr/lib/cgi-bin»>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ «/usr/share/doc/»
<Directory «/usr/share/doc/»>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Теперь создаем каталог нашего сайта mysite1.ua, в котором будут храниться файлы сайта.
Дальше создаем виртуальный хост при помощи комманды:
sudo a2ensite mysite1.ua

и заставляем apache перечитать конфигурацию
/etc/init.d/apache2 reload

Все наш виртуальный хост готов. Теперь при переходе по ссылке mysite1.ua мы попадаем на наш виртуальный хост.
Всем спасибо за внимание, удачной работы.
Ах, да если виртуальный хост нам больше не нужен, то отключить его можно при помощи комманды:
a2dissite mysite1.ua

На этом все.

Понравилась статья? Поблагодарить автора:

Введите e-mail адрес:



2 комментария:

  1. Хорошая статья! Мне очень помогла. Единственное, что ты забыл написать это Alias: ServerAlias mysite1.ua

    ОтветитьУдалить
  2. Да, алиас прописывается после ServerName. И для удобства мы можем в файле hosts (который в ubuntu находится в /etc/hosts) добавить такую запись:
    127.0.1.1 mysite1.ua
    Теперь в адресной строке браузера набрав mysite1.ua мы попадаем на наш виртуальный хост.

    ОтветитьУдалить