Счетчик

Поисковый анализ сайта
яндекс.ћетрика
Cервер и сайт запущен 2011.02.01 на Debian

Всем доброго дня! Сегодня я Вам покажу как создать несколько хостов и размещать из будем не в каталоге /var/www/, а например в каталог большего объема например /home/

Сейчас мы рассмотрим как произвести быстрое добавление виртуального хоста в ОС Linux. Я как всегда буду рассматривать настройку на примере Debian Linux, но я думаю, что процесс не будет очень сильно отличаться для других дистрибутивов.

Создание виртуального хоста Для начала необходимо скопировать стандартный конфиг файл  хоста в apache. Мы будем использовать его в качестве основы для настройки новых хостов:

# cd /etc/apache2/sites-available/ cp default domain.ru Откроем файл domain.ru в любом текстовом редакторе и уведем приблизительно следующее: т.е. nano /etc/apache2/sites-available/domain.ru

<VirtualHost *:80>  

ServerAdmin webmaster@localhost  

DocumentRoot /var/www  

<Directory />   

Options FollowSymLinks   

AllowOverride All  

</Directory>  

<Directory /var/www/>   

Options Indexes

FollowSymLinks MultiViews   

AllowOverride All   

Order allow,deny   

allow from all  

</Directory>  

ErrorLog ${APACHE_LOG_DIR}/error.log  

LogLevel warn  CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Но директория как я уже говорил выше нас не устраивает редактируем это дело и приводим его к такому виду:

<VirtualHost 127.0.1.1:80>  ServerAdmin webmaster@localhost  DocumentRoot /home/site/domain.ru  <Directory />   Options FollowSymLinks   AllowOverride All  </Directory>  <Directory /home/site/domain.ru/>   Options Indexes FollowSymLinks MultiViews 

AllowOverride All   

Order allow,deny   

allow from all  

</Directory>  ErrorLog ${APACHE_LOG_DIR}/error.log  LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

Далее нам надо сделать символическую ссылку на новый хост я лично делаю так # a2ensite domain.ru

Далее в файле /etc/hosts добавляем 127.0.1.1 domain.ru

рестартуем нашь apache2 /etc/init.d/apache2 restart

Если Вам надо посадить несколько сайтов на 1 IP-ник
Нам надо например 2 сайта soft-komi.ru и sysadmin-komi.ru
Сайты на сервере размещаются в отдельных каталогах. Удобнее, да и правильнее с точки зрения безпасности, создать для каждого сайта подкаталоги для хранения самих страниц, временных файлов, возможно cgi-скриптов и других полезностей. Можно пойти ещё дальше и организовать для каждого сайта отдельного SSH-пользователя. В таком случае удобно размещать сайт в домашнем каталоге этого пользователя. Соответственно каталоги сайта будут иметь вид:

 
/home/site_user/mysite.ru/httpdocs       
# для страниц /home/site_user/mysite.ru/tmp             
# для хранения сессий и временных файлов /home/site_user/user/mysite.ru/cgi-bin   
# для скриптов

Однако в небольших системах, где SSH-доступом обычно пользуется только администратор сервера, в этом нет необходимости. Поэтому сайты размещают внутри папки /var/www, которую по умолчанию использует web-сервер.

 
/var/www/vhosts/mysite.ru/httpdocs       
# для страниц /var/www/vhosts/mysite.ru/tmp           
# для хранения сессий и временных файлов /var/www/vhosts/mysite.ru/cgi-bin       
# для скриптов

Собственно HOW-TO Допустим наши сайты называются soft-komi.ru и sysadmin-komi.ru.
Раскомментируем директиву

 
NameVirtualHost *:80

в третьей секции конфигурационного файла. Создаем папки общую

 
$ mkdir /var/www/vhosts

для первого сайта

 
$ mkdir /var/www/vhosts/soft-komi.ru $ mkdir /var/www/vhosts/soft-komi.ru/httpdocs

и для второго

 
$ mkdir /var/www/vhosts/sysadmin-komi.ru $ mkdir /var/www/vhosts/sysadmin-komi.ru/httpdocs

Для каждого сайта в конфигурационный файл добавляем отдельную секцию

 
<VirtualHost *:80>    
ServerName soft-komi.ru    
ServerAlias http://www.soft-komi.ru    
DocumentRoot /var/www/vhosts/soft-komi.ru/httpdocs    
ErrorLog logs/first.ru-error.log </VirtualHost>
<VirtualHost *:80>     ServerName sysadmin-komi.ru    
ServerAlias http://www.sysadmin-komi.ru    
DocumentRoot /var/www/vhosts/sysadmin-komi.ru/httpdocs    
ErrorLog logs/second.ru-error.log </VirtualHost>

С реальными сайтами разобрались, теперь что произойдет с обращении к серверу по несуществующему адресу или при обращении по IP ?Если оставить все как есть, то будет открываться первый сайт soft-komi.ru , потому что, как ни странно: The first VirtualHost section is used for requests without a known server name.
Поэтому перед секциями реальных сайтов добавляем секцию-ловушку, получается примерно так:

 
<VirtualHost *:80>    
ServerName default </VirtualHost>

Теперь все запросы с неправильными именами сайтов и обращения по IP направляются в папку /var/www/html, где можно разместить простейшую индексную страницу. Для вступления всех изменений в силу перезапускаем сервер

 
$ service httpd restart или    
$ /etc/init.d/apache2 restart

Дальше больше Приведенные выше секции содержат минимальный набор директив. Со временем возникает необходимость в дополнениях, которые описывают, например, свойства PHP или возможности .htaccess. Apache позволяет управлять достаточно большим количеством настроек. При необходимости следует обращаться к официальной документации Url Hidden Приведу пример секции VirtualHost для сайта domain.tld с синонимом another_domain.tld одного реально действующего сервера

<VirtualHost *\>  
ServerName domain.tld  
ServerAlias http://www.domain.tld
another_domain.tld http://www.another_domain.tld  
DocumentRoot /var/www/vhosts/domain.tld/httpdocs  
ErrorLog logs/domain.tld.error_log  
CustomLog logs/domain.tld.access_log  
SymLinksBaseDir /var/www/vhosts/   S
criptAlias /cgi-bin/ /var/www/vhosts/domain.tld/cgi-bin//  
<Directory "/var/www/vhosts/domain.tld/httpdocs">    
AllowOverride All    
Options +Includes   </Directory>  
php_admin_value open_basedir   /var/www/vhosts/domain.tld/  
php_admin_value doc_root       /var/www/vhosts/domain.tld/httpdocs  
php_admin_value upload_tmp_dir /var/www/vhosts/domain.tld/tmp/  
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра." </VirtualHost>

Вот помойму и все! Спрашивайте!  

Добавить комментарий


Защитный код
Обновить