Um servidor de desenvolvimento com Apache com múltiplos Host Virtuais?

1

Digamos que terei um código de compartilhamento de servidor de desenvolvimento exclusivo para vários desenvolvedores. O código para cada desenvolvedor estará em seu diretório home em sources , então basicamente será algo como ~/<developer_name>/sources . Esse servidor está executando o Apache 2.4.x.

Preciso que cada desenvolvedor possa acessar o código deles, por exemplo <developer_name>.domain.com . Claro que o developer_name no URL corresponderá ao nome no diretório /home .

Minha solução é um Host Virtual por desenvolvedor na configuração do Apache, existe alguma solução melhor e eu não estou ciente?

    
por ReynierPM 01.11.2016 / 16:00

2 respostas

3

Temos uma configuração semelhante.

O problema é que você vai querer ter um subdomínio inteiro para o seu servidor. Então, em vez de jdoe.domain.com & bsmith.domain.com, você terá jdoe.dev.domain.com e bsmith.dev.domain.com. Você pode quase pensar no 'dev.domain.com' como o servidor.

Você provavelmente vai querer fazer algo assim:

Módulo do Apache

Certifique-se de que o módulo vhost_alias esteja ativado.

# a2enmod vhost_alias

Configuração do Apache

(a chave é a diretiva VirtualDocumentRoot )

<VirtualHost *:80>
  ServerName dev.domain.com
  ServerAlias dev.domain.com *.dev.domain.com
  VirtualDocumentRoot /home/%1/sources
</VirtualHost>

entrada de DNS

Você precisa de uma entrada DNS para apontar o dev.domain.com e qualquer coisa abaixo dele (* .dev.domain.com) para o seu servidor de desenvolvimento.

Se você quiser se livrar do subdomínio 'dev', terá que fazer uma entrada de DNS para cada desenvolvedor.

Um registro BIND na zona domain.com pode ter esta aparência:

*.dev     A       10.1.1.1
    
por 01.11.2016 / 21:25
0

Você precisa que eles tenham seus próprios nomes de domínio? Se não, existe o mod_userdir embutido que fará isso. Seus desenvolvedores estariam no link (como / ~ bob /). Você apenas definiria UserDir como "sources" (o padrão é public_html).

A configuração geralmente está no httpd.conf, mas você só precisa de algo como:

LoadModule userdir_module modules/mod_userdir.so
<IfModule mod_userdir.c>
    UserDir sources
</IfModule>

Você também pode ter um UserDir disable que também terá que comentar.

    
por 01.11.2016 / 22:44