¿Cómo verificar qué módulos están activos en mi servidor?

8

Al intentar resolver un problema en mi sitio web, una recomendación sobre mi archivo .htaccess que obtuve fue

En primer lugar, verifique en el servidor todos los módulos diferentes si están habilitados, y una vez que lo estén, quite el

<IfModule
 ...></IfModule>

bloques Están poniendo una tensión innecesaria en su servidor.

No sé dónde debo mirar para ver si los módulos están activos: ¿está en el CMS? en el archivo httpd.conf? en los archivos en mi servidor? ¿Debo hacer una ligera modificación en el .htaccess como prueba? Pero más que eso, ¿podría la propia recomendación no ser apropiada? Gracias.

Aquí está el archivo .htaccess para el que se ha hecho la recomendación:

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
fuente
Creo que necesita más información de la persona que dijo eso. Que modulos Módulos de Apache? ¿Qué quieren decir con "bloques"?
Paulmorriss
Lo sentimos, tienes razón, agregué el archivo .htaccess en función del cual la persona hizo la recomendación. Realmente no entiendo lo que significan y no pude obtener más detalles al respecto de ellos, es por eso que pregunto aquí, pensé que las personas con más conocimiento que yo podrían entenderlo más fácilmente. Solo un segundo, solo ahora veo que la pregunta se ha editado antes de ser publicada; debería haber usado etiquetas de código en la etiqueta de cita. ¡Se editará de inmediato!
keiki
1
He corregido la pregunta, ahora la recomendación contiene toda la información original.
keiki
La forma de encontrar lo que está activo depende de su servidor. Algunos estarán en el archivo http.conf, pero otros pueden cargarse dinámicamente. ¿Tiene algún tipo de panel de control o tiene acceso al servidor en sí?
paulmorriss
Es un sitio web de Wordpress, así que supongo que es un servidor Apache. Tengo acceso FTP a los archivos del sitio web, detalles de acceso al CMS de LunarPages y acceso a la interfaz de Wordpress.
keiki

Respuestas:

4

Si PHP se ejecuta como módulo apache, puede usar la phpinfo()función. Busque la sección Apache (generalmente apache2handler) y busque la fila con "Módulos cargados":

sección apache2handler de phpinfo ()

Lekensteyn
fuente
2
No aparece en mi alojamiento compartido, desafortunadamente.
Django Reinhardt
2
@DjangoReinhardt Es posible que su alojamiento compartido no esté usando Apache + mod_php, sino nginx / Apache / ... con php-fpm o incluso php-cgi. Busque la línea API del servidor en la parte superior de la página (la mía dice FPM / FastCGI para php-fpm).
Lekensteyn
3

Suponiendo que se refiere a módulos de apache, puede ejecutar lo siguiente para enumerar qué módulos ha cargado:

apachectl -t -D DUMP_MODULES
masa
fuente
1
-bash: apachectl: command not foundsollozo :(
Django Reinhardt
Podrías probar:find / apachectl | grep apachectl
masa
1
ModSecurity: Failed to open debug log file: /var/log/apache2/modsec_debug.logluego cat: /var/log/apache2/modsec_debug.log: Permission deniedsollozo :(
JosiahYoder-deactive excepto ..
2

Si no tiene esos módulos cargados, entonces no parece que nada se rompa en su sitio, simplemente no tendrá la mejor configuración de control de caché. Así que omita los ifmodules, ya que ni siquiera puede cargarlos si no están cargados. El sitio web de apache dice

En funcionamiento normal, las directivas no necesitan colocarse en secciones.

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

Paulmorriss
fuente
1

En primer lugar, compruebe en el servidor todos los módulos diferentes si están habilitados, y una vez que lo estén, elimine el <IfModule ...> </IfModule>

Acerca de su consulta: debe verificar si esos módulos están habilitados en el servidor, y si lo están, puede eliminar la condición if de htaccess:

por ejemplo, si el módulo mod_expires.c está habilitado, entonces puede eliminar el <IfModule mod_expires.c></IfModule>y mantendrá solo esta parte:

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

así que ya no verificará si ese módulo está habilitado porque ya lo hizo.

Daniel
fuente
0

1) solo agregue a .htaccess

<ifModule mod_expires.c>
deny from YOUR.IP 


</ifModule>

2) actualice su sitio web
3) si está fuera del juego ahora, mod_expiresestá activo
4) eliminar deny from YOUR.IPde ifModule mod_expires.c

el dia
fuente