Na minha VM Ubuntu 16.4, configurei o Apache 2.4 com sucesso e tenho vários vhosts configurados. Quero ver o status do servidor, mas meu primeiro vhost continua impedindo isso. Eu li e reli os documentos do Apache 2.4 sobre isso. Coloquei o seguinte em meu /etc/apache2/apache.conf, depois em /etc/apache2/mods-enabled/status.conf e finalmente em /etc/apache2/sites-enabled/0firstvhost.conf
<Location "/server-status">
SetHandler server-status
Require ip 10.211.55.0/24
</Location>
Ao ler muitas postagens sobre esse assunto nos documentos do Apache e no ServerFault, tentei muitas variações que são aplicáveis ao Apache 2.4
Posso verificar se o mod_status está em execução vendo-o durante a execução
sudo apachectl -M | grep status
Claro, eu verifiquei o configtest do apachectl todas as vezes e reiniciei o serviço apache2 para ver se consigo navegar até 10.211.55.3/server-status, mas o aplicativo Drupal PHP continua interferindo. Não há .htaccess na raiz deste vhost.
Coloquei esta directiva dentro e fora da directiva.
Eu verifico um navegador no endereço IP da VM e também dentro da execução da VM
curl localhost/server-status
curl 10.211.55.3/server-status
O aplicativo Drupal é lido primeiro. O que tentar a seguir? obrigado, Sam
Responder1
Encontrei isto que sugeriuo .htaccess para o site padrão estava impedindo mod_statusde trabalhar. A solução deles não funcionou para mim, mas como estou trabalhando com hosts virtuais, eu poderia criar um host virtual sem um .htaccess. Eu adicionei um host arbitrário no arquivo /etc/hosts do Debian:
127.0.0.1 foo.org
Criei um diretório vazio entre meus outros hosts virtuais e criei um novo site e o habilitei.
<Directory /home/foo.org>
</Directory>
<Location /server-status>
SetHandler server-status
Require local
Require ip 127.0.0.1
Require ip ::1
</Location>
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName foo.org
</VirtualHost>
Então, no localhost eu posso ver os dados
curl foo.org/server-status
Responder2
Eu também tive o problema do meuHost Virtual /etc/sites-enabled/example.conf
lidando com solicitações para http://localhost/server-info, que eu realmente queria que fosse tratadomod_info.
# File /etc/sites-enabled/example.conf
<VirtualHost *:80>
ServerName example.com
# ...
</VirtualHost>
O problema foi IMHO que o Apache tem um comportamento padrão de manipulação de solicitação de fallback se alguma solicitação não corresponder a nenhuma configuraçãoHost VirtualdeNome do servidor(ver1,2). Comomod_infoarquivos de configuração padrão /etc/apache2/mods-available/info.load
e /etc/apache2/mods-available/info.conf
não especificam seus própriosHost VirtualeNome do servidor, acho que o substituto do Apache entrou em ação, tendo meuexemplo.conf VirtualHostlidar com a solicitação de http://localhost/server-info.
Resolvi o problema da seguinte maneira:
Crie um arquivo /etc/apache2/mods-available/localhost-server-info.load
(percebermods-available
). Isto é umcópia dedo original info.load
:
LoadModule info_module /usr/lib/apache2/modules/mod_info.so
Crie um arquivo /etc/apache2/sites-available/localhost-server-info.conf
(percebersites-available
). Esta é uma adaptação do original info.conf
, envolvendo seu conteúdo dentro de umHost Virtuale proporcionando umNome do servidor:
# Get mod_info information by requesting http://localhost/server-info
#
# Enable by executing
# service apache2 stop
# a2dismod info
# a2enmod localhost-server-info
# a2ensite localhost-server-info
# service apache2 start
#
# Disable by executing
# service apache2 stop
# a2dissite localhost-server-info
# a2dismod localhost-server-info
# service apache2 start
<IfModule mod_info.c>
<VirtualHost *:80>
# Adapt ServerName to your needs
# Avoid ServerName collision with any other active VirtualHosts
ServerName localhost
<Location /server-info>
SetHandler server-info
# Adapt Require to your needs
# Require local
# Require ip 192.0.2.0/24
</Location>
</virtualHost>
</IfModule>
Desative o originalinformaçõesmódulo (caso ainda esteja habilitado) e habilite o novoinformações do servidor localhostmóduloesite:
service apache2 stop
a2dismod info
a2enmod localhost-server-info
a2ensite localhost-server-info
service apache2 start
- http://example.com/server-infoagora deverá ser tratado peloexemplo.comVirtualHost (provavelmente mostrando uma página 404).
- http://localhost/server-info agora deve ser tratado pormod_info.
- http://127.0.0.1/server-infoe outros não configuradosNome do servidors devem ser tratados de acordo com o tratamento de fallback do Apache, por exemplo, no meu exemplo peloexemplo.comVirtualHost (provavelmente mostrando uma página 404).