Todas as solicitações dirigidas a um host virtual

3

Acabei de instalar o Apache 2.2 e estou tentando ter dois domínios hospedados na mesma configuração de servidor. Eu criei pela primeira vez um host virtual ( a.com ) e depurei minha configuração para que ela estivesse funcionando. Quando tentei adicionar o host virtual b.com , e tentei acessá-lo, tudo que consegui foi a página correta para o a.com. Ambos os Hosts Virtuais são apontados para o mesmo endereço IP estático. O servidor está executando o CentOS em um VPS.

/usr/local/apache2/conf/httpd.conf tem a configuração básica e está parcialmente incluído abaixo, mas eu tenho httpd.conf Include um segundo arquivo, clients.conf que por sua vez Includes por configuração do site, que está nos diretórios base dos diferentes sites. (Cada site tem sua própria conta, com os diretórios web , scripts , data e config .)

link

Listen 80

NameVirtualHost [ip]
# [...]
Include /usr/local/apache2/conf/clients.conf

clients.conf:

Include /home/[a]/conf/apache/vhost.conf
Include /home/[b]/conf/apache/vhost.conf

/home/[a]/conf/apache/vhost.conf

<VirtualHost [ip]>
    ServerName www.[a].com
    ServerAlias [a].com
    ServerAdmin [me]@[a].com
    DocumentRoot /home/[a]/web/home
    ErrorDocument 404 "http://www.[a].com/error/?404"

    <Directory /home/[a]/web/home>
        Options -Indexes FollowSymLinks
        # Don't allow any .htaccess files
        AllowOverride None
        # Allow everyone to access
        Order allow,deny
    </Directory>
</VirtualHost>

/home/[b]/config/apache/vhost.conf

<VirtualHost [ip]>
ServerName www.[b].com
ServerAlias [b].com
ServerAdmin admin@[b].com
DocumentRoot /home/[b]/web/home
ErrorDocument 404 "http://www.[b].com/error/?/404/"

<Directory /home/[b]/web/home>
    Options -Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
</VirtualHost>
<VirtualHost [ip]>
ServerName beta.[b].com
DocumentRoot /home/[b]/web/home

<Directory /home/[b]/web/home>
    Options -Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
</VirtualHost>

(Desculpe por todo o código, mas eu não sabia o quanto era necessário.)

Alguém pode ver algum problema no meu código? Eu acho que parece quase idêntico ao Exemplo do VirtualHost (primeiro), exceto que eu tenho expandiu as "Outras diretivas aqui" e usou endereços IP completos, em vez do caractere curinga * , que é descrito na "Observação:" abaixo do exemplo.

Editar :

Como sugerido por um comentário, tentei apachectl -S , que deu a seguinte saída:

# /usr/local/apache2/bin/apachectl -S
VirtualHost configuration:
[ip]      is a NameVirtualHost
         default server www.[a].com (/home/[a]/conf/apache/vhost.conf:5)
         port 80 namevhost www.[a].com (/home/[a]/conf/apache/vhost.conf:5)
Syntax OK

O [b].com não deve aparecer aqui?

    
por Ryan Leonard 30.06.2011 / 23:02

2 respostas

0

Eu descobri a solução para o meu problema enquanto tentava a sugestão da BMDan. Eu abri clients.conf , que deveria ter sido (e foi salvo como) incluindo arquivos do cliente a e b . Em vez disso, tudo o que tinha era a inclusão para a . Não tenho ideia de por que não contém os dados corretos, mas minha instalação do Apache agora está funcionando corretamente.

Meus agradecimentos a todos que me ajudaram neste problema, e peço desculpas se o problema foi um erro que cometi.

    
por 12.07.2011 / 00:59
0

Que [b].com não está aparecendo é uma indicação de que [b] não está sendo carregado ou não foi reconhecido (e normalmente o último). A causa mais comum para isso é uma incompatibilidade entre o IP listado como parte de seu NameVirtualHost e o IP listado em <VirtualHost> ; esta é uma razão pela qual usar *:80 é geralmente aconselhável.

De qualquer forma, há um teste fácil para ver se o arquivo está sendo carregado: basta incluir um comando de configuração inválido no arquivo de configuração [b].com e ver se httpd -t (ou service httpd configtest , desde você) re no CentOS) relata um erro.

    
por 01.07.2011 / 03:12