サーバーでアクティブなモジュールを確認するにはどうすればよいですか?


8

私のウェブサイトで問題を解決しようとしているときに、入手した.htaccessファイルに関する推奨事項は

まず、有効になっている場合は、すべての異なるモジュールについてサーバーで確認し、有効になったら、

<IfModule
 ...></IfModule>

ブロック。彼らはあなたのサーバーに不必要な負担をかけています。

モジュールがアクティブであるかどうかをどこで確認すればよいのかわかりません。CMS内ですか?httpd.confファイル内?私のサーバー上のファイルで?テストとして.htaccessを少し変更する必要がありますか?しかし、それ以上に、レコメンデーション自体は適切ではないのでしょうか?ありがとう。

推奨が作成された.htaccessファイルは次のとおりです。

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

そう言った人からもっと情報が必要だと思います。どのモジュール?Apacheモジュール?「ブロック」とはどういう意味ですか?
paulmorriss

申し訳ありませんが、そのとおりです。その人が推奨した.htaccessファイルを追加しました。私は彼らが何を意味するのか本当に理解できず、彼らからそれについて詳細を得ることができなかったので、私がここで尋ねたのは、私よりも知識のある人はそれを理解しやすいと思ったからです。ちょっと待って、投稿される前に質問が編集されたことがわかりました-引用タグでコードタグを使用する必要がありました。すぐに編集します!
ケイキ

1
質問を修正しましたが、推奨には元の情報がすべて含まれています。
ケイキ

アクティブなものを見つける方法は、サーバーによって異なります。一部はhttp.confファイルに含まれますが、動的にロードされるものもあります。なんらかのコントロールパネルがありますか、それともサーバー自体にアクセスできますか?
paulmorriss

これはWordpressのWebサイトです。Apacheサーバーだと思います。私はウェブサイトのファイルへのFTPアクセス、LunarPages CMSへの詳細へのアクセス、Wordpressインターフェースへのアクセスを持っています。
ケイキ

回答:


4

PHPがapacheモジュールとして実行されている場合、phpinfo()関数を使用できます。Apacheセクション(通常はapache2handler)を検索し、「ロードされたモジュール」の行を探します。

phpinfo()のapache2handlerセクション


2
残念ながら、共有ホスティングにリストされていません。
Django Reinhardt

2
@DjangoReinhardt共有ホスティングがApache + mod_phpではなく、nginx / Apache / ...をphp-fpmまたはphp-cgiで使用している可能性があります。ページの上部にあるサーバーAPI行を探します(私の記事では、php-fpmのFPM / FastCGIと述べています)。
Lekensteyn

3

あなたがApacheモジュールを意味すると仮定すると、以下を実行してロードしたモジュールをリストできます:

apachectl -t -D DUMP_MODULES

1
-bash: apachectl: command not foundsob :(
Django Reinhardt

あなたが試すことができます:find / apachectl | grep apachectl
生地

1
ModSecurity: Failed to open debug log file: /var/log/apache2/modsec_debug.log次にcat: /var/log/apache2/modsec_debug.log: Permission deniedsob :(
JosiahYoder-deactiveを除いて..

2

これらのモジュールがロードされていない場合は、サイトで何も壊れていないように見えますが、最適なキャッシュ制御設定がないだけです。ロードされていない場合はロードできないので、ifmodulesは省略してください。Apacheのウェブサイトは言う

通常の操作では、ディレクティブをセクションに配置する必要はありません。

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


1

まず、有効になっているすべての異なるモジュールについてサーバーで確認し、有効になったら<IfModule ...> </ IfModule>を削除します

クエリについて:これらのモジュールがサーバーで有効になっているかどうかを確認する必要があります。有効になっている場合は、htaccessからif条件を削除できます。

たとえば、モジュールmod_expires.cが有効になっている場合は、を削除して<IfModule mod_expires.c></IfModule>、この部分のみを保持できます。

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

つまり、すでに有効になっているため、そのモジュールが有効になっているかどうかを確認する必要はもうありません。


0

1)に追加する .htaccess

<ifModule mod_expires.c>
deny from YOUR.IP 


</ifModule>

2)ウェブサイトを更新します
。3)ゲームに出ていない場合、mod_expiresアクティブです
。4)deny from YOUR.IPから削除します。 ifModule mod_expires.c

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.