Hosts virtuais dinâmicos no Apache

5

Meu arquivo httpd-vhosts.conf tem esta aparência:

<VirtualHost *:80>
DocumentRoot "/www/foo/htdocs"
ServerName foo
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "/www/bar/htdocs"
ServerName bar
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "/www/baz/htdocs"
ServerName baz
</VirtualHost>

Observe o padrão? Existe alguma maneira de reduzir a duplicação, ou estou preso a ter uma entrada VirtualHost separada para cada site?

    
por Patrick McElhaney 12.05.2009 / 12:50

3 respostas

2

Eu descobri como fazer isso depois de ler a resposta do Dark Ninja. Aqui está como meu arquivo httpd-vhosts.conf se parece agora.

# Dynamic virtual hosts.
# See http://httpd.apache.org/docs/2.0/mod/mod_vhost_alias.html
UseCanonicalName Off
VirtualDocumentRoot /www/%0/htdocs/

Eu também tive que habilitar o mod_vhost_alias descomentando esta linha no httpd.conf

LoadModule vhost_alias_module modules/mod_vhost_alias.so
    
por 07.11.2010 / 02:42
3

Eu sugiro que você dê uma olhada no site do Apache para hosts virtuais dinâmicos. Os outros métodos requerem um reinício do servidor Apache.

link

    
por 12.05.2009 / 12:01
0

Existem duas respostas muito diferentes.

  1. Use o truque "subdomínio como conta".
  2. Escreva um script curto e um arquivo de configuração que juntos geram seus arquivos httpd-vhosts.conf dinamicamente. Então o script e a configuração se tornam seus mestres, e os arquivos .conf são "dispensáveis".

Eu recomendo # 2, e acho que os programadores pragmáticos também.

    
por 12.05.2009 / 12:01