如何验证服务器上哪些模块处于活动状态?


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 2011年

抱歉,您是对的,我添加了.htaccess文件,此人是根据该文件提出建议的。我真的不明白他们的意思,也无法从他们那里得到更多的细节,这就是为什么我在这里问,认为知识比我更多的人会更容易理解。只需一秒钟,我现在才看到问题在发布之前已经过编辑-我应该在quote标签中使用代码标签。将立即编辑!
keiki

1
我已经纠正了这个问题,现在推荐包含所有原始信息。
keiki

查找活动内容的方式取决于您的服务器。有些将位于http.conf文件中,但其他一些则可以动态加载。您有某种控制面板,还是可以访问服务器本身?
paulmorriss 2011年

这是一个Wordpress网站-所以我猜它是一个Apache服务器。我可以通过FTP访问网站的文件,可以访问LunarPages CMS的详细信息,还可以访问Wordpress界面。
keiki

Answers:


4

如果PHP作为apache模块运行,则可以使用该phpinfo()函数。搜索Apache部分(通常为apache2handler),然后查找带有“ Loaded Modules”的行:

phpinfo()的apache2handler部分


2
不幸的是,我的共享主机上没有列出。
Django Reinhardt

2
@DjangoReinhardt您的共享主机可能没有使用Apache + mod_php,而是使用ng-x / 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 denied抽泣:(
JosiahYoder无效,..

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.