Como configurar o Apache (sites disponíveis vs httpd.conf)

23

Eu tenho tentado seguir alguns tutoriais básicos explicando como colocar o Apache em funcionamento (no Ubuntu, rodando na Amazon). Eu na maioria das vezes vem em branco, porque todos os tutoriais me disseram para configurar o httpd.conf (para adicionar o DocumentRoot, etc.).

Eu agora deparei com um tutorial que me disse para adicionar configurações de site ao diretório de sites disponíveis (em / etc / apache) e, em seguida, criar um link simbólico para ele a partir de sites habilitados. Configurar desta maneira parece funcionar.

Mas agora estou confuso - como devo configurar o Apache? A maioria dos tutoriais ainda parece dizer que eu deveria estar usando o httpd.conf. Qual deles devo estar usando? Qual é a diferença? Por que todos os tutoriais estão "errados" (se forem)?

    
por Edan Maor 26.12.2010 / 16:45

3 respostas

30

O método sites-available é geralmente considerado o "Modo Debian":

  • configuração "principal" em /etc/apache2/apache2.conf
  • config "user" em /etc/apache2/httpd.conf
  • vhosts em /etc/apache2/sites-available files (um por arquivo, normalmente)
    • você pode querer numerá-los, por exemplo 00-domain.com, 01-otherdomain.com
  • portas ( Listen diretivas) em /etc/apache2/ports.conf
  • mods em /etc/apache2/mods-available

Você pode manipulá-los com links simbólicos ou com a série a2 de comandos:

a2ensite/a2dissite <site_config_filename>
a2enmod/a2dismod <module_name>

Dependendo da preferência pessoal, você pode reiniciar o Apache usando apachectl , /etc/init.d/apache2 (start|stop|reload|restart) ou service apache2 (start|stop|reload|restart)

Um exemplo em que você usaria httpd.conf em vez de uma entrada vhost seria para uma regra de redirecionamento ou reescrita global, por exemplo. Outros petiscos - geralmente, você deve deixar apache2.conf sozinho e certifique-se de configurar um esquema de nomenclatura consistente para vhosts no diretório sites-available .

    
por 26.12.2010 / 17:50
9

A localização e organização dos arquivos de configuração é configurável e pode mudar entre versões principais ou entre distribuições.

O Wiki do Apache tem um útil guia para os nomes e locais dos arquivos de configuração.

Como os arquivos de configuração podem conter diretivas include , partes da configuração podem ser separadas em arquivos menores. Como um arquivo de configuração padrão do Apache contém muitos comentários e muitos itens padrão, faz sentido separar as partes que você provavelmente alterará.

O nome do arquivo de configuração principal pode ser alterado no momento da compilação e, em versões recentes, ele foi alterado de httpd.conf para apache2.conf

Com o passar dos anos, também houve alguma evolução na organização dos arquivos de configuração incluídos.

Por exemplo, eu instalei o Apache2 em um sistema baseado em Ubuntu usando apt-get install apache2 - aqui estão os arquivos incluídos

/etc/apache2$ ls
apache2.conf  envvars     mods-available  ports.conf       sites-enabled
conf.d        httpd.conf  mods-enabled    sites-available

/etc/apache2$ grep ^Include apache2.conf
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/
Include /etc/apache2/sites-enabled/ 

/etc/apache2$ ls -l sites-enabled
total 0
lrwxrwxrwx 1 root root 26 Dec 26 12:30 000-default -> ../sites-available/default

Assim, as poucas configurações que você provavelmente terá mais interesse agora estão em /etc/apache2/sites-available/default .

Eu posso ver que isso é consistente com a documentação do Ubuntu para o Apache que eu recomendo que você leia primeiro . Se você tem outra documentação para versões mais antigas do Apache (ou outras distribuições), você pode adaptar essa informação para se adequar ao modo como as coisas são organizadas no Ubuntu.

    
por 26.12.2010 / 17:23
-2

O Apache no linux pode ser instalado por dois tipos. um é pelo apt-get e outro arquivo tar de download e extrair .... Assim, no processo do apt-get, os sites são servidos a partir da pasta / etc / apache2 / sites-enabled, pois cada site que serve para o mundo externo é configurado nesses arquivos .conf exemplo 000-default.conf é um site padrão habilitado para mostrar o apache trabalho .

assim, criando qualquer arquivo .conf em sites habilitados e direcionando-o para a localização do conteúdo. Esse site é servido.

Portanto, para adicionar um novo site estático, um novo arquivo .conf deve ser criado na pasta habilitada para sites, com o nome example.conf. e tem que adicionar as linhas abaixo nele

    ServerAdmin webmaster @ localhost     DocumentRoot / var / www / html     ErrorLog $ {APACHE_LOG_DIR} /error.log     CustomLog $ {APACHE_LOG_DIR} /access.log combinado   

Onde, *: 80 indica "aberto para o mundo através da porta 80"  DocumentRoot / var / www / html indica "caminho do conteúdo do site"

    
por 28.11.2014 / 11:40