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

Несколько доменных имен на одном сервере Apache

Я тестирую конфигурацию в своей локальной системе, чтобы изучить конфигурацию Apache и использовать тот же метод для работы с моим производственным сервером.

Мне нужно настроить два домена example.com и example.org

У меня есть каталоги, в которых находятся скрипты php:

/server/example.com for example.com и /server/example.org for example.org

Я запустил эту команду в обоих каталогах:

sudo chcon -R -h -t httpd_sys_content_t /server/example.*

index.php в example.com содержит

<?
$debug = ($_SERVER['HTTP_HOST'] == 'example.com');
if ($debug) echo "in example.com";
?>

и

index.php в example.org содержит

<?
$debug = ($_SERVER['HTTP_HOST'] == 'example.org');
if ($debug) echo "in example.org";
?>

также я создал файл конфигурации apache с именем example.conf под /etc/httpd/conf.d/example.conf

Вот содержимое файла .conf:

<VirtualHost example.com:81>
    DocumentRoot /server/example.com
    ServerName example.com
    <Directory "/server/example.com">
        AllowOverride None
        Options All
        Order allow,deny
        Allow from all
        DirectoryIndex index.php index.html index.htm
    </Directory>
</VirtualHost>


<VirtualHost example.org:82>
    DocumentRoot /server/example.org
    ServerName example.org
    <Directory "/server/example.org">
        AllowOverride None
        Options All
        Order allow,deny
        Allow from all
        DirectoryIndex index.php index.html index.htm
    </Directory>
</VirtualHost>

Когда я получаю доступ example.com сайт работает как положено. Файл сценария в /server/example.com оценивается как истина и отображает in example.com

Теперь, когда я получаю доступ example.org. сайт ничего не показывает.

Также вот мой /etc/host что я изменил:

127.0.0.1 example.com
127.0.0.1 example.org

Кто-нибудь может предложить, что мне здесь не хватает?

Вы получаете доступ example.org:82, или просто example.org? В настоящее время ваши сайты привязаны к разным портам. Вероятно, это не то, что вам нужно; вы, вероятно, захотите вместо этого использовать виртуальный хостинг на основе имен.

Вам понадобится NameVirtualHost директиву где-нибудь, и изменить свой <VirtualHost> директивы, чтобы соответствовать ему.

Что-то вроде этого:

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot /server/example.com
    ServerName example.com
    ServerAlias www.example.com
    # etc
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /server/example.org
    ServerName example.org
    ServerAlias www.example.org
    # etc
</VirtualHost>