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

Виртуальные хосты на основе имени Apache

Я пытаюсь иметь несколько виртуальных хостов в настройке apache в Ubuntu 10.04. Мне удалось настроить домен и поддомен, jivity.net и sonata.jivity.net, используя виртуальные хосты на основе имени в apache2, и он работает по назначению. Но когда я пробую что-то вроде sonata-software.jtivity.net, он перенаправляет меня на sonata.jtivity.net. Это похоже на дефис в sonata-software.jivity.net не читается apache. Вот мой виртуальный файл conf для sonata-software.jtivity.net:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName sonata-software.jivity.net
    ServerAlias www.sonata-software.jivity.net
    SetEnv MAGE_RUN_CODE "sonata"
    SetEnv MAGE_RUN_TYPE "website"

    DocumentRoot /var/www/websites/jivity/sonata
    <Directory />
        Options FollowSymLinks
        AllowOverride all
    </Directory>
    <Directory /var/www/websites/jivity/sonata>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

vconf файл sonata.jiversity.net в / etc / apache2 / sites-available /

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName sonata.jivity.net
    ServerAlias www.sonata.jivity.net
    SetEnv MAGE_RUN_CODE "sonata"
    SetEnv MAGE_RUN_TYPE "website"

    DocumentRoot /var/www/websites/jivity/sonata
    <Directory />
        Options FollowSymLinks
        AllowOverride all
    </Directory>
    <Directory /var/www/websites/jivity/sonata>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Я хотел заменить sonata.jivity.net на sonata-software.jtivity.net. Я включил сайт после того, как поместил его в папку / etc / apache2 / sites-available и перезапустил apache. Как мне исправить это, чтобы sonata-software.jtivity.net также работал? Спасибо.

вы связали его с каталогом / etc / apache2 / sites-enabled /?

пытаться:

sudo a2ensite sonata-software.jivity.net

Хорошо, вторая попытка ...

Я собираюсь сделать здесь безумное предположение и поинтересоваться, есть ли у вас правильный корень документа для sonata-software.jtivity.net.

Возможно, вы забыли отредактировать каталог DocRoot при копировании и редактировании конфигурации из существующей конфигурации sonata.jtivity.net.

эта строка из вашей конфигурации верна?

DocumentRoot /var/www/websites/jivity/sonata

или должно быть что-то вроде этого:

DocumentRoot /var/www/websites/jivity/sonata-software

и то же самое, конечно же, для <Directory / var / www / sites / jivity / sonata>.

[потом]

подробнее о ServerName и ServerAlias ​​...

если вы хотите, чтобы несколько доменных имен указывали на один и тот же контент, просто создайте один виртуальный хост и добавьте столько ServerAliases, сколько хотите. например

ServerName sonata-software.jivity.net
ServerAlias www.sonata-software.jivity.net
ServerAlias sonata.jivity.net
ServerAlias www.sonata.jivity.net

ServerName - это «каноническое имя» сайта. Обычно (но не обязательно) сайт настраивается таким образом, чтобы любой запрос одного из псевдонимов автоматически перенаправлялся на официальный URL.

У вас может быть такое перенаправление в другом месте вашей конфигурации apache (поиск в / etc / apache2) или в файле .htaccess в DocRoot.

как насчет того, если вы попытаетесь удалить дефис и просто выполните sonatasoftware.jiversity.net. убедитесь, что ваши сайты-доступны и сайты-включены также изменены. если он работает, то, возможно, это просто дефис, который каким-то образом влияет на то, как apache обслуживает страницы.

Попробуйте отключить как sonata-software.jivity.net, так и sonata.jtivity.net

a2dissite sonata.jivity.net
a2dissite sonata-software.jivity.net

Затем перезапустите apache2, затем снова включите sonata-software.jtivity.net

a2ensite sonata-software.jivity.net

Посмотрите, решит ли это вашу проблему.

Правильно ли вы настроили свой DNS?

Проверьте журнал доступа, вы должны прочитать, что происходит.

Переименуйте программу sonata-software во что-нибудь совершенно другое, перенастройте DNS и перезапустите Apache (это может занять некоторое время для обновления кеша).