Мультихостинговый сервер - это сервер на котором располагаються до несколько сайтов со своей структурой каталогов и персональными настройками. Еще это можно рассматривать как конфигурацию виртуальных хостов на веб-сервере apache.
Для начала создадим директорию для нашего сайта с определенной структурой каталогов (в качестве примера корневым каталогом, где будут распологаться сайты служит /home/www):
mkdir -p /home/www/site1/{htdocs,cgi-bin,conf,logs}
Из созданных каталогов видим, что:
htdocs - служит для хранения файлов самого сайта
cgi-bin - служит для хранения скриптов cgi сайта
conf - служит для модификационных файлов конфигурации apache, php, mysql и т.п.
logs - служит для логов сайта
После создания каталогов идем править основной конфигурационный файл веб-сервера apache:
# vim /etc/apache2/apache2.conf
И меняем там строку с указанием имени сервера:
ServerName site
Далее копируем дефолтный файл конфигурации виртуал хоста в ту же директорию с именем сайта которое хотим задать:
# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/site1
Можно взять и готовый файл конфигурации, если таковой есть и его необходимо положить в каталог /etc/apache2/sites-available
Далее правим файл конфигурации нового виртуального хоста для нашего сайта:
# vim /etc/apache2/sites-available/site1
Вот приблизительное содержимое такого файла
<VirtualHost *:80>
ServerName site1
ServerAlias www.site1
ServerAdmin postmaster@site1
DocumentRoot /home/www/site1/htdocs
<Directory /home/www/site1/>
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/www/site1/htdocs/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /home/www/site1/cgi-bin/
<Directory "/home/www/site1/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /home/www/site1/logs/error.log
LogLevel warn
CustomLog /home/www/site1/logs/access.log combined
</VirtualHost>
Он может изменяться главное следите за путями которые указываете и именами хостов (ServerName), как правило тут можно накуралесить и долго думать в чем ошибка :)
Теперь необходимо перейти в каталог с конфигурационными файлами, если вы еще не в нем :)
cd /etc/apache2/sites-available/
Отлючить дефолтный файл конфигурации виртуальных хостов:
# a2dissite default
И включить новонастроенный конфигурационный файл нашего сайта (site1):
# a2ensite site1
Перезагружаем веб-сервер apache:
# /etc/init.d/apache2 reload
Ну и не забудьте добавить файлы вашего сайта в /home/www/site1/htdocs. Потом проверяем все ли в порядке, если все отлично работает радуемся, нет ищем где накосячили.
После того как убедились что все работает можем добавить еще один сайт создаем для него каталог со своей структурой каталогов (у меня в /home/www) и в /etc/apache2/sites-available добавляем и корректируем собственный файл конфигурации для этого сайта (например с именем site2), после чего включаем его:
# a2ensite site2
и перезагружаем веб-сервер:
# /etc/init.d/apache2 reload
Проверяем и радуемся ;)