Назад | Перейти на главную страницу

Несколько веб-сайтов, один сервер Apache (как)

У меня зарегистрировано несколько доменных имен. Я хочу разместить их на одном сервере 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