Como verificar quais módulos estão ativos no meu servidor?

8

Ao tentar resolver um problema no meu site, uma recomendação sobre o meu arquivo .htaccess que recebi foi

Antes de mais nada, verifique no servidor todos os diferentes módulos, se estiverem ativados e, uma vez removidos, remova o

<IfModule
 ...></IfModule>

blocos. Eles estão colocando uma pressão desnecessária no seu servidor.

Não sei onde devo procurar para ver se os módulos estão ativos - está no CMS? no arquivo httpd.conf? nos arquivos do meu servidor? devo fazer uma ligeira modificação no .htaccess como teste? Mas mais do que isso, a própria recomendação poderia não ser apropriada? Obrigado.

Aqui está o arquivo .htaccess para o qual a recomendação foi feita:

Options +FollowSymLinks -MultiViews
RewriteEngine on
AddHandler x-httpd-php .html .htm

<ifModule mod_gzip.c>
  mod_gzip_on Yes
  mod_gzip_dechunk Yes
  mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
  mod_gzip_item_include handler ^cgi-script$
  mod_gzip_item_include mime ^text/.*
  mod_gzip_item_include mime ^application/x-javascript.*
  mod_gzip_item_exclude mime ^image/.*
  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

<ifModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType text/html "access plus 1 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 2592000 seconds"
  ExpiresByType text/javascript "access plus 216000 seconds"
  ExpiresByType application/x-javascript "access plus 216000 seconds"
</ifModule>

<ifModule mod_headers.c>
  <filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
    Header set Cache-Control "max-age=2592000, public"
  </filesMatch>

  <filesMatch "\\.(css)$">
    Header set Cache-Control "max-age=2592000, public"
  </filesMatch>

  <filesMatch "\\.(js)$">
    Header set Cache-Control "max-age=216000, private"
  </filesMatch>

  <filesMatch "\\.(xml|txt)$">
    Header set Cache-Control "max-age=216000, public, must-revalidate"
  </filesMatch>

  <filesMatch "\\.(html|htm|php)$">
    Header set Cache-Control "max-age=1, private, must-revalidate"
  </filesMatch>
</ifModule>

<ifModule mod_headers.c>
  Header unset ETag
</ifModule>

FileETag None

<ifModule mod_headers.c>
  Header unset Last-Modified
</ifModule>

RewriteCond %{HTTP_HOST} !^(www\.)?foo\.com$
RewriteRule .? http://foo.com%{REQUEST_URI} [R=301,L]

#BEGIN WordPress
<IfModule mod_rewrite.c>

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php

</IfModule>
# END WordPress
keiki
fonte
Eu acho que você precisa de mais informações da pessoa que disse isso. Quais módulos? Módulos Apache? O que eles querem dizer com "blocos"?
paulmorriss
Desculpe, você está certo, adicionamos o arquivo .htaccess com base no qual a pessoa fez a recomendação. Eu realmente não entendo o que eles significam e não pude obter mais detalhes sobre isso, é por isso que pergunto aqui, pensei que pessoas com mais conhecimento do que eu poderiam entender isso mais facilmente. Só um segundo, só agora vejo que a pergunta foi editada antes de ser postada - eu deveria ter usado tags de código na tag de citação. Editará imediatamente!
keiki
11
Corrigi a pergunta, agora a recomendação contém todas as informações originais.
keiki
A maneira de descobrir o que está ativo depende do seu servidor. Alguns estarão no arquivo http.conf, mas outros podem ser carregados dinamicamente. Você tem algum tipo de painel de controle ou tem acesso ao próprio servidor?
paulmorriss
É um site do Wordpress - então eu acho que é um servidor Apache. Tenho acesso FTP aos arquivos do site, detalhes de acesso ao LunarPages CMS e acesso à interface do Wordpress.
keiki

Respostas:

4

Se o PHP for executado como módulo apache, você poderá usar a phpinfo()função Procure a seção Apache (normalmente apache2handler) e procure a linha com "Loaded Modules":

seção apache2handler do phpinfo ()

Lekensteyn
fonte
2
Infelizmente não listado na minha hospedagem compartilhada.
Django Reinhardt
2
@DjangoReinhardt É possível que sua hospedagem compartilhada não esteja usando Apache + mod_php, mas sim nginx / Apache / ... com php-fpm ou mesmo php-cgi. Procure a linha da API do servidor na parte superior da página (a minha diz FPM / FastCGI para php-fpm).
Lekensteyn 17/09/2015
3

Supondo que você queira dizer módulos apache, você pode executar o abaixo para listar quais módulos você carregou:

apachectl -t -D DUMP_MODULES
massa
fonte
11
-bash: apachectl: command not found
Django Reinhardt
Você pode tentar:find / apachectl | grep apachectl
dough
11
ModSecurity: Failed to open debug log file: /var/log/apache2/modsec_debug.logentão cat: /var/log/apache2/modsec_debug.log: Permission deniedsoluço :(
JosiahYoder desativado. ..
2

Se você não tiver esses módulos carregados, parece que nada vai quebrar no seu site, mas não terá as melhores configurações de controle de cache. Portanto, deixe de fora os módulos if, pois você não pode carregá-los se eles não estiverem carregados. O site apache diz

Em operação normal, as diretivas não precisam ser colocadas em seções.

http://httpd.apache.org/docs/2.0/mod/core.html#ifmodule

paulmorriss
fonte
1

Antes de tudo, verifique no servidor todos os diferentes módulos, se estiverem ativados e, uma vez removidos, remova o <IfModule ...> </IfModule>

Sobre sua consulta: você precisa verificar se esses módulos estão ativados no servidor e, se estiverem, pode remover a condição if do htaccess:

por exemplo, se o módulo mod_expires.c estiver ativado, você poderá remover o <IfModule mod_expires.c></IfModule>e manterá apenas esta parte:

ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"

então você não está mais verificando se esse módulo está ativado porque você já fez isso.

Daniel
fonte
0

1) basta adicionar a .htaccess

<ifModule mod_expires.c>
deny from YOUR.IP 


</ifModule>

2) atualize seu site
3) se você estiver fora de jogo agora, mod_expiresestiver ativo
4) exclua deny from YOUR.IPde ifModule mod_expires.c

fday
fonte