Organizando a configuração do .conf do apache por domínio

2

Eu tenho um servidor VPS com CentOS com vários domínios (alguns eu possuo, outros não). Eu hospedo meus sites e meus sites de amigos.

Eu tenho essa estrutura:

/home/myfriendsusername/public_html/
/home/myotherfriendsusername/public_html/
/var/www/mydomain.com/public_html/

Assim, todas as minhas coisas estão no meu / var / www e meus amigos têm seu próprio nome de usuário na pasta pessoal. Cada VirtualHost está no httpd.conf e está ficando meio que grande (eu tenho mais de 50 domínios, incluindo às vezes sub-domínios.

Será melhor criar um arquivo nos sites habilitados para cada domínio que eu hospedo como:

/etc/apache2/sites-enabled/myfriendsdomain.com
/etc/apache2/sites-enabled/mydomain.com

Isso é uma boa prática? ou o que eu fiz (usando httpd.conf) está correto?

    
por rcs20 15.02.2012 / 22:54

3 respostas

1

Aqui está um excelente link sobre como: link

basicamente você cria cada domínio de arquivo de configuração em:

/etc/httpd/conf.d/

exemplo:

<VirtualHost *:80>
  ServerName example.org
  ServerAlias *.example.org
  ServerAdmin [email protected]
  ErrorLog /var/log/httpd/example.err
  CustomLog /var/log/httpd/example.log combined
  DocumentRoot /var/www/example.org
  <Directory "/var/www/example.org">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

Pode haver momentos em que é desejável desativar um host virtual. Como o include em /etc/httpd/conf/httpd.conf especifica * .conf, é possível ocultar um host virtual alterando o nome do arquivo de configuração.

Desative um host virtual adicionando um _ ao nome do arquivo do host virtual:

mv -v /etc/httpd/conf.d/example.conf{,_}

Habilite um host virtual removendo o _ do nome do arquivo do host virtual:

mv -v /etc/httpd/conf.d/example.conf{_,}

reiniciar:

service httpd graceful
    
por 27.02.2012 / 14:17
2

Será muito mais fácil gerenciar todos os vhosts em seu próprio arquivo de configuração separado. Aqui está o que eu faria (no Debian):

Coloque cada configuração vhost em seu próprio arquivo dentro de /etc/apache2/sites-available/ . Use a2ensite para criar um symlink entre os sites vhost disponíveis e o diretório /etc/apache2/sites-enabled .

Depois é só adicionar:

Include /etc/apache2/sites-enabled/

Para o httpd.conf

Dessa forma, você pode deixar os sites com facilidade, com a2dissite vhostname , por exemplo: a2dissite mydomain.com

Como você tem o CentOS, o script a2ensite não estará presente. Aqui está uma maneira de simular os métodos de script do Debian:

link

    
por 15.02.2012 / 23:01
2

Por padrão (pelo menos no CentOS 6.2), o Apache é configurado para incluir automaticamente qualquer arquivo de configuração localizado no seguinte diretório:

/etc/httpd/conf.d/

Pesquise no seu httpd.conf pela seguinte linha (adicione se não estiver lá):

Include conf.d/*.conf

Em seguida, basta criar arquivos de configuração para cada host virtual:

/etc/httpd/conf.d/google.com.conf
/etc/httpd/conf.d/serverfault.com.conf

E se você quiser desativar um host virtual, basta renomear:

/etc/httpd/conf.d/serverfault.com.conf.backup

Simples!

    
por 26.02.2012 / 14:47