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

ServerName не работает в Apache2 и Ubuntu

Настраивая сервер dev LAMP, я хочу разрешить динамические поддомены, также известные как ted.servername.com, bob.servername.com.

Вот мой файл с активными сайтами

<VirtualHost *:80>
    # Admin Email, Server Name, Aliases
    ServerAdmin     not@real.com
    ServerName      happyslice.net
    ServerAlias     *.happyslice.net

    # Index file and Document Root
    DirectoryIndex  index.html
    DocumentRoot    /home/sysadmin/public_html/happyslice.net/public

    # Custom Log file locations
    LogLevel        warn
    ErrorLog        /home/sysadmin/public_html/happyslice.net/log/error.log
    CustomLog       /home/sysadmin/public_html/happyslice.net/log/access.log combined

А вот результат sudo apache2ctl -S

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server happyslice.net (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost happyslice.net (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost happyslice.net (/etc/apache2/sites-enabled/happyslice.net:5)
Syntax OK

Имя хоста сервера - srv.happyslice.net.

Как видно из apache2ctl, когда я использую Happyyslice.net, я получаю виртуальный хост по умолчанию, когда я использую поддомен, я получаю хост Happyslice.net. Таким образом, последний работает так, как я хочу, а основной URL-адрес - нет.

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

Мысли? Я в тупике. К вашему сведению, я использую Apache2.1 и Ubuntu 10.04 LTS

У меня была почти та же проблема, что и у вас. Это произошло из-за того, что имя сервера по умолчанию (в /etc/apache2/conf.d/servername.conf) и имя сервера в моем файле определения VirtualHost (/etc/apache2/sites-available/site.com) равны.

для каждого субдомена создайте файл, аналогичный тому, который вы указали выше, за исключением того, что просто укажите субдомен в качестве имени сервера. удалите * .mydomain.com в качестве псевдонима сервера. включите файлы конфигурации в apache и перезапустите apache.

Я считаю, что то, что вы ищете, потребует разделов для имен хостов, на которые сервер должен отвечать. То, что вы настроили в настоящее время, весь трафик порта 80 подбирается и указывается на /home/sysadmin/public_html/happyslice.net/public

Попробуйте добавить раздел и раздел с соответствующими корнями документа. Таким образом, вы можете использовать bill и ted для обслуживания различного контента с одного и того же сервера с внешним видом другого сервера.

http://httpd.apache.org/docs/2.2/vhosts/