Hosts virtuais baseados no nome do Apache

2

Estou tentando ter vários hosts virtuais na configuração do apache no Ubuntu 10.04. Eu consegui configurar um domínio e um subdomínio, jivity.net e sonata.jivity.net usando hosts virtuais baseados em nome no apache2 e funciona como pretendido. Mas quando eu tento algo como sonata-software.jivity.net, ele me redireciona para sonata.jivity.net. É como o hífen em sonata-software.jivity.net não é lido pelo apache. Aqui está o meu arquivo virtual conf para sonata-software.jivity.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>

sonata.jivity.net arquivo vconf em / 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>

Eu queria substituir o sonata.jivity.net por sonata-software.jivity.net Eu habilitei o site depois de colocar isso na pasta / etc / apache2 / sites-available e reiniciei o apache. Como faço para corrigir isso para que eu possa ter sonata-software.jivity.net também trabalhando? Obrigado.

    
por Nithin 12.09.2011 / 08:36

4 respostas

2

OK, segunda tentativa ...

Vou adivinhar aqui e me pergunto se você tem o documento root para sonata-software.jivity.net.

Talvez você tenha se esquecido de editar o diretório DocRoot quando copiou e editou a configuração do conf existente sonata.jivity.net

esta linha da sua configuração está correta?

DocumentRoot /var/www/websites/jivity/sonata

ou deveria ser algo mais assim:

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

e mesmo, é claro, para o < Diretório / var / www / websites / jivity / sonata >.

[mais tarde]

mais sobre ServerName e ServerAlias ...

Se você quiser vários nomes de domínio apontando para o mesmo conteúdo, basta criar um host virtual e adicionar quantos ServerAliases desejar. por exemplo,

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

O ServerName é o "nome canônico" do site. É comum (mas não obrigatório) ter o site configurado para que qualquer solicitação de um dos aliases seja automaticamente redirecionada para o URL oficial.

Você pode ter um redirecionamento como esse em outro lugar na sua configuração do apache (procure em / etc / apache2), ou em um arquivo .htaccess no DocRoot.

    
por 12.09.2011 / 16:27
2

você criou um link simbólico para o diretório / etc / apache2 / sites-enabled /?

tente:

sudo a2ensite sonata-software.jivity.net
    
por 12.09.2011 / 08:46
1

que tal se você tentar remover o hífen e apenas fazer sonatasoftware.jivity.net. Verifique se os sites disponíveis e os sites habilitados também foram modificados. se funcionar, talvez seja apenas o hífen que está de alguma forma afetando a maneira como o apache está servindo as páginas.

Tente desabilitar o sonata-software.jivity.net e o sonata.jivity.net

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

Em seguida, reinicie o apache2 e, em seguida, reative o sonata-software.jivity.net

a2ensite sonata-software.jivity.net

Veja se isso resolve o seu problema.

    
por 12.09.2011 / 09:40
0

Você configurou corretamente seu DNS?

Verifique seu log de acesso, você deve ler o que está acontecendo.

Renomeie o software sonata para algo completamente diferente, reconfigure o DNS e reinicie o Apache (isso pode levar algum tempo para o cache ser atualizado).

    
por 12.09.2011 / 09:37