Qual é a maneira mais elegante de verificar quais módulos apache estão ativados?
380
Qual é a maneira mais elegante de verificar quais módulos apache estão ativados?
Você está no Ubuntu, então tente:
apache2ctl -M
apache2: bad user name ${APACHE_RUN_USER}
sudo apache2ctl -M | sort
apache2ctl
mas elas não estão listadas na página de manual nem emapache2ctl --help
. Isso é porque eles são entregues ahttpd
. Eles estão listados apenas na documentação httpd .httpd -M
dirá quais módulos são integrados ou compartilhados.fonte
httpd
executável.apache2
e nãohttpd
, e é por isso que não foi encontrado.Nada das respostas acima funciona se você não puder executar comandos no servidor remoto. Se você tiver apenas privilégios de "usuário" ou nenhum, tente criar um
test.php
script:Embora funcione apenas se o PHP estiver instalado como
mod_php
.fonte
Talvez isto ajude para algumas pessoas em hosts compartilhados sem acesso a
httpd
,apachectl
ou processos:Módulos ativados:
ls /etc/apache2/mods-enabled/
Módulos disponíveis:
ls /etc/apache2/mods-available/
fonte
Você também pode usar apachectl
fonte
Eu acho que há realmente três perguntas aqui. Não tenho certeza do que você está perguntando.
Isso seria (normalmente) no diretório modules da sua distribuição apache, geralmente / etc / httpd / modules /
Isso pode ser verificado com / usr / sbin / httpd -M, pelo menos para o apache do sistema básico. Se você deseja verificar um arquivo de configuração específico / usr / sbin / httpd -M -f / path / to / config / file
Para obter muitas informações, você pode vê-las com http: // nome da máquina / informações do servidor / Isso não está configurado por padrão, você precisa configurá- las. É um vazamento de informações, então configure-o para que apenas as pessoas locais possam vê-lo.
Se você estiver na máquina e tiver acesso para ser o usuário em execução, também poderá ver o que está carregado, verificando o processo. Você pode encontrar o processo pai com:
Então confira
fonte
Se você estiver no Redhat / CentOS,
httpd
é usado no lugar deapache2ctl
.Isso significa que você precisa usar o
No entanto,
httpd
quase nunca está no caminho que você espera.Posso confirmar no CentOS 5.8 o caminho real
/usr/sbin/httpd
.Mas se esse não for o caminho, você poderá descobri-lo. Aqui está como eu pude fazê-lo.
Primeiro, verifiquei o daemon sendo usado para controlá-lo.
Em torno da linha 40ish
O que me disse exatamente onde encontrá-lo. Espero que isto ajude.
fonte
Listar todos os módulos ativados
fonte
No meu gentoo, eu posso executar
apache2ctl modules
e ver os módulos listados.fonte
Verificando dentro do script php (para mod_xsendfile):
A verificação do PHP_SAPI é para excluir quando o php estiver sendo executado como CGI, pois apache_get_modules () não funciona nesse contexto. Além disso, se isso for executado no php <5.0.0, apenas o
apache2handler
contexto produzirá o resultado esperado.fonte
Eu criei um pequeno script python para ajudá-lo. Consulte https://github.com/zioalex/unused_apache_modules
É isso que você pode esperar:
fonte