У меня зарегистрировано несколько доменных имен. Я хочу разместить их на одном сервере Apache на частном виртуальном сервере. Я знаю, что это возможно, если внести изменения в httpd.conf и (возможно, / etc / hosts), но я не могу найти никакой информации о том, как это сделать.
Может ли кто-нибудь объяснить шаги, необходимые для этого? Например, предположим, что у меня есть следующие имена:
Как я могу настроить сервер Apache, чтобы он обслуживал страницы из указанных выше доменов?
Кстати, я использую Apache 2.2. в Ubuntu Linux (Lucid Lynx [10.04 LTS])
Это должно помочь вам: http://www.debian-administration.org/articles/412
Отредактируйте конфигурацию apache => httpd.conf
Добавьте эти строки:
#if you are listening in the port 80, enable the virtual host
NameVirtualHost *:80
#DocumentRoot is the folder where the actual web site resides, where the html and php files are.
#Directory => this instruction is for setting the permissions, de directory index, etc.
<VirtualHost *:80>
ServerAdmin alex@example1.com
DocumentRoot "C:/mywebsites/example1"
ServerName example1.com
ServerAlias www.example1.com
<Directory "C:/mywebsites/example1">
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin alex@example2.com
DocumentRoot "C:/mywebsites/example2"
ServerName example2.com
ServerAlias www.example2.com
<Directory "C:/mywebsites/example2">
DirectoryIndex index.html
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin alex@example3.com
DocumentRoot "C:/mywebsites/example3"
ServerName example3.com
ServerAlias www.example3.com
<Directory "C:/mywebsites/example3">
DirectoryIndex default.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Как вы, наверное, догадались, я использую windows, но то же самое и с unix. Для получения дополнительной информации прочтите конфигурацию Apache для директив DocumentRoot, VirtualHost и Directory.
Все это означает, что если кто-то запрашивает у сервера apache example2.com, Apache будет обслуживать запрос из C: / mywebsites / example2, используя как index.html. Но нужно спросить apache (будьте вежливы ...) Я имею в виду, что вы должны изменить свой DNS, чтобы эти веб-сайты указывали на IP-адрес сетевой карты, который прослушивает apache.
На моем компьютере с Windows я использую файл хоста, например:
example1.com 127.0.0.1
www.example1.com 127.0.0.1
example2.com 127.0.0.1
www.example2.com 127.0.0.1
Поскольку я установил эту директиву в httpd.conf
Listen 80
С уважением
Alex