Ubuntu Apache: httpd.conf ou apache2.conf?

43

qual desses dois arquivos devo usar para configurar o Apache?

O httpd.confestá vazio, enquanto apache2.confnão está.

Isso me confunde!

ajsie
fonte

Respostas:

46

O httpd.conf foi projetado para configurações do usuário. Você realmente não deve editar o apache2.conf, pois ele pode ser atualizado em futuras atualizações.

Uma opção adicional é apenas colocar sua configuração personalizada em /etc/apache2/conf.d, todos os arquivos neste diretório também estão incluídos.

Rob Di Marco
fonte
5
Não tenho um arquivo chamado apapche2.conf
Doug Molineux
18

Essas não são suas únicas opções. No Ubuntu / Debian, o Apache também processa todos os arquivos /etc/apache2/sites-enabled/(que devem ser links simbólicos para os arquivos no sites-available/diretório, gerenciados pelos programas a2ensitee a2dissite)

Você pretende usar esses diretórios para VirtualHosts.

Powerlord
fonte
1
Essa é a resposta correta ! e também os arquivos de configuração de ports / mods disponíveis, se você quiser elaborar sua resposta
Sudhi
5

apache2.conf inclui httpd.conf:

a@test$:/etc/apache2$ cat apache2.conf | grep httpd.conf 
Include /etc/apache2/httpd.conf

Eu acho que o httpd.conf está obsoleto, mas apenas foi deixado lá para pessoas conservadoras, para que elas encontrem o caminho ... :)

EDITAR:

Depois de ler a resposta de Rob, fiz um grep melhor:

a@test:/etc/apache2$ grep -C 1 httpd.conf apache2.conf 
# Include all the user configurations:
Include /etc/apache2/httpd.conf

Configurações do usuário é ...

Alexander T
fonte
6
+1 "httpd.conf está obsoleto"
feeela 27/07/12
1

A Apache Software Foundation publica muitos bits de software, um dos quais é um servidor web chamado httpd. As fontes do projeto httpd incluem, entre outras coisas, um httpd.confarquivo de configuração de amostra, que é instalado por padrão em /usr/local/etc/httpdou /etc/httpd. Você encontrará o httpd nomeado como tal na maioria dos sistemas.

No entanto, há muito tempo e muito longe, alguém na distribuição Debian GNU / Linux decidiu mudar o nome do software nessa distribuição de httpdpara apache2. Assim, em um sistema Debian, você encontrará um arquivo de configuração nomeado apache2.confem um diretório chamado /etc/apache2. Não sei quem fez isso ou por quê, mas é uma fonte perene de confusão, a par de chamar o Windows "Microsoft" ou ESXi "VMware". Distribuições baseadas no Debian, como o Ubuntu, herdam essa estranheza. Ainda mais estranho, eles incluem um arquivo /etc/apache2/httpd.confque é Included apache2.confno qual os usuários podem colocar configurações personalizadas.

Portanto, a resposta é que, se você estiver em um sistema baseado no Debian, inclina seu cérebro para fazer as coisas da maneira que o Debian deseja que você faça. Caso contrário, você geralmente faz as coisas da maneira normal, como o projeto httpd upstream.

Michael Hampton
fonte
1

Apache 2.4

Encharcar:

Coloque as configurações personalizadas em /etc/apache2/conf-available/{name}.conf

Ativar / desativar sua configuração usando sudo a2enconf {name}ou sudo a2disconf {name}.

(Em seguida, reinicie o serviço apache2.)

Não use:

httpd.conf está obsoleto e você NÃO deve mais vê-lo - se estiver, deixe-o vazio como instalado.

apache2.conf ainda está instalado, mas deixe em branco se desejar atualizar o Apache de forma limpa / fácil.

-

Qualquer coisa que você possa ver em uma configuração 'global' do Apache pode ser adicionada / substituída na sua configuração personalizada, conforme descrito acima.

Mais: https://stackoverflow.com/a/11687212/503621

bshea
fonte
0

Se apache2.confnão estiver vazio e httpd.confestiver vazio, você provavelmente deve usar apache2.conf;-)

Mas suponho que um inclua o outro (e que um deles seja mantido apenas por razões de compatibilidade com versões anteriores) - portanto, não deve mudar muito.


Ainda assim, se você deseja adicionar algo, como um novo VirtualHost: não há outro subdiretório no qual você possa colocar seu arquivo e incluí-lo?

Provavelmente seria uma solução melhor: você não modificaria o arquivo padrão - o que simplificaria as atualizações.

Pascal MARTIN
fonte
Como mencionado por Pascal, se você deseja adicionar um novo VirtualHost, adicione um novo arquivo em sites-disponíveis e, em seguida, faça com que o link simbólico nos sites seja ativado com o comando a2ensite - help.ubuntu.com/6.06/ubuntu/serverguide/ C / httpd.html
ccheneson
0

basta abrir apache2.conf e olhar para o conteúdo:

Include /etc/apache2/mod-enabled/*.conf
Include /etc/apache2/httpd.conf

Portanto, se você deseja incluir sua própria configuração, adicione-a ao httpd.conf e o apache2.conf a obterá automaticamente.

Como outros dizem, o apache2.conf pode ser gerado automaticamente e é melhor não tocá-lo.

Para mais informações, geralmente o Ubuntu usa apache2.conf e o Centos usa httpd.conf. Portanto, todos esses arquivos dependem de qual sistema operacional você possui.

Kazi Tanvir Ahsan
fonte
-2

Para encontrar o nome e o local do arquivo de configuração, você teria que:

1) Pesquise como o processo é chamado, neste caso, trabalhando com o usuário apache:

ps -ef | grep apache

(neste exemplo, retorna: httpd)

2) Mostre as variáveis ​​usadas pelo binário:

httpd -V | grep 'HTTPD_ROOT' && httpd -V | grep 'SERVER_CONFIG_FILE'

Extraído e capturas de tela em: http://www.sysadmit.com/2016/12/linux-apache-donde-esta-httpdconf-apache2conf.html

Ray Tatooine
fonte
Olá, Parece-me que você respondeu uma pergunta já respondida, uma que foi respondida anos atrás. Além disso, sua solução não está ajudando o questionador original a resolver o problema, qual arquivo de configuração é a melhor prática a ser usada.
M. Glatki