Respostas:
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.
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 a2ensite
e a2dissite
)
Você pretende usar esses diretórios para VirtualHost
s.
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 é ...
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.conf
arquivo de configuração de amostra, que é instalado por padrão em /usr/local/etc/httpd
ou /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 httpd
para apache2
. Assim, em um sistema Debian, você encontrará um arquivo de configuração nomeado apache2.conf
em 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.conf
que é Include
d apache2.conf
no 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.
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.
Se apache2.conf
não estiver vazio e httpd.conf
estiver 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.
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.
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