Wie überprüfe ich, welche Module auf meinem Server aktiv sind?

8

Beim Versuch, ein Problem auf meiner Website zu lösen, wurde eine Empfehlung zu meiner .htaccess-Datei gegeben

Überprüfen Sie zunächst auf dem Server, ob alle verschiedenen Module aktiviert sind, und entfernen Sie sie, sobald sie aktiviert sind

<IfModule
 ...></IfModule>

Blöcke. Sie belasten Ihren Server unnötig.

Ich weiß nicht, wo ich nachsehen soll, ob Module aktiv sind - befindet es sich im CMS? in der httpd.conf Datei? in den Dateien auf meinem Server? sollte ich als Test eine geringfügige Änderung im .htaccess vornehmen? Aber darüber hinaus könnte die Empfehlung selbst nicht angemessen sein? Vielen Dank.

Hier ist die .htaccess-Datei, für die die Empfehlung abgegeben wurde:

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
quelle
Ich denke, Sie brauchen mehr Informationen von der Person, die das gesagt hat. Welche Module? Apache-Module? Was meinen sie mit "Blöcken"?
Paulmorriss
Entschuldigung, Sie haben Recht, ich habe die .htaccess-Datei hinzugefügt, auf deren Grundlage die Person die Empfehlung abgegeben hat. Ich verstehe nicht wirklich, was sie bedeuten und könnte nicht mehr Details darüber von ihnen bekommen, deshalb frage ich hier, dachte, dass Leute mit mehr Wissen als ich das leichter verstehen könnten. Nur eine Sekunde, ich sehe erst jetzt, dass die Frage vor dem Posten bearbeitet wurde - ich hätte Code-Tags im Anführungszeichen verwenden sollen. Wird sofort bearbeitet!
Keiki
1
Ich habe die Frage korrigiert, jetzt enthält die Empfehlung alle Originalinformationen.
Keiki
Wie Sie herausfinden, was aktiv ist, hängt von Ihrem Server ab. Einige befinden sich in der Datei http.conf, andere werden möglicherweise dynamisch geladen. Haben Sie eine Art Systemsteuerung oder haben Sie Zugriff auf den Server selbst?
Paulmorriss
Es ist eine Wordpress-Website - ich denke, es ist ein Apache-Server. Ich habe FTP-Zugriff auf die Dateien der Website, Zugriff auf Details zum LunarPages-CMS und Zugriff auf die Wordpress-Oberfläche.
Keiki

Antworten:

4

Wenn PHP als Apache-Modul ausgeführt wird, können Sie die phpinfo()Funktion verwenden. Suchen Sie (normalerweise apache2handler) nach dem Apache-Abschnitt und suchen Sie nach der Zeile mit "Loaded Modules":

apache2handler Abschnitt von phpinfo ()

Lekensteyn
quelle
1
Leider nicht in meinem Shared Hosting aufgeführt.
Django Reinhardt
2
@DjangoReinhardt Es ist möglich, dass Ihr Shared Hosting nicht Apache + mod_php verwendet, sondern nginx / Apache / ... mit php-fpm oder sogar php-cgi. Suchen Sie oben auf der Seite nach der Server-API- Zeile (meine sagt FPM / FastCGI für php-fpm).
Lekensteyn
3

Angenommen, Sie meinen Apache-Module, können Sie Folgendes ausführen, um aufzulisten, welche Module Sie geladen haben:

apachectl -t -D DUMP_MODULES
Teig
quelle
1
-bash: apachectl: command not foundschluchzen :(
Django Reinhardt
Sie könnten versuchen:find / apachectl | grep apachectl
Teig
1
ModSecurity: Failed to open debug log file: /var/log/apache2/modsec_debug.logdann cat: /var/log/apache2/modsec_debug.log: Permission deniedschluchzen :(
JosiahYoder-Deaktiv außer ..
2

Wenn Sie diese Module nicht geladen haben, sieht es so aus, als würde auf Ihrer Site nichts kaputt gehen. Es werden nur nicht die besten Einstellungen für die Cache-Steuerung angezeigt. Lassen Sie also die if-Module weg, da Sie sie nicht einmal laden können, wenn sie nicht geladen sind. Die Apache-Website sagt

Im normalen Betrieb müssen Anweisungen nicht in Abschnitte unterteilt werden.

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

Paulmorriss
quelle
1

Überprüfen Sie zunächst auf dem Server, ob alle verschiedenen Module aktiviert sind, und entfernen Sie anschließend das <IfModule ...> </ IfModule>

Informationen zu Ihrer Abfrage: Sie müssen überprüfen, ob diese Module auf dem Server aktiviert sind. Wenn dies der Fall ist, können Sie die if-Bedingung aus htaccess entfernen:

Wenn beispielsweise das Modul mod_expires.c aktiviert ist, können Sie das entfernen <IfModule mod_expires.c></IfModule>und behalten nur diesen Teil:

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

Sie überprüfen also nicht mehr, ob dieses Modul aktiviert ist, da Sie dies bereits getan haben.

Daniel
quelle
0

1) einfach hinzufügen .htaccess

<ifModule mod_expires.c>
deny from YOUR.IP 


</ifModule>

2) Aktualisiere deine Website
3) Wenn du jetzt nicht im Spiel bist, mod_expiresist aktiv
4) Lösche deny from YOUR.IPaus ifModule mod_expires.c

fday
quelle