Linux禁用Apache中不需要的模块以节省内存

时间:2020-01-09 10:40:10  来源:igfitidea点击:

问题描述:如何在Debian Linux下禁用不需要的Apache模块?

解决方法:您可以禁用Apache中所有不需要的模块,以节省内存并提高性能。
这也可能导致改善的安全性。
不同的Linux发行版采用不同的方法来禁用模块。

Debian/Ubuntu Linux禁用模块

Debian/Ubuntu Linux带有两个脚本:
(a)a2enmod是一个脚本,用于启用apache2配置中的指定模块。
它通过在/etc/apache2/mods-enabled中创建符号链接来实现。

(b)a2dismod通过删除那些符号链接来禁用模块。
启用已启用的模块或禁用已禁用的模块不是错误。

语法:

a2dismod {模块名称}

例如,禁用名为foo或mime_magic的模块,执行:

# a2dismod foo
# a2dismod mime_magic

再次启用模块

如果您需要重新启用禁用的模块,请使用a2enmod命令,如下所示:

语法:

a2enmod {module-name}

例如,启用imagemap模块,执行:

# a2enmod imagemap

注意,如果不知道模块名称,它将显示所有可用模块的列表:

# a2enmod

输出:

Which module would you like to disable?
Your choices are: alias auth_basic authn_file authz_default authz_groupfile authz_host authz_user autoindex cgi dir env fastcgi mime negotiation php5 setenvif status userdir
Module name?  authz_user

CentOS/Redhat(RHEL)/Fedora Linux禁用模块

在基于Redhat的Linux发行版下,您需要修改/etc/httpd/conf.d/目录中存储的* .conf文件。

Apache在启动时会扫描带有.conf后缀的文件。

因此,如果系统不需要使用mod_python,请将python.conf重命名为python.bak并使用命令服务httpd restart重新启动Apache,以禁用该特定模块并节省内存。

# cd /etc/httpd/conf.d/
# mv perl.conf no.perl.bak
# /etc/init.d/httpd restart

启用模块

要重新启用模块,只需将它们重命名为其原始名称,然后重新启动Apache以获取模块功能:

# cd /etc/httpd/conf.d/
# mv no.perl.bak perl.conf
# /etc/init.d/httpd restart

有关/etc/httpd/conf.d/目录的更多信息

该目录包含Apache 2.0模块特定的配置文件。
此目录中所有扩展名为.conf的文件都将被视为Apache配置文件。
文件是按字母顺序处理的,因此,如果使用依赖于例如mod_perl的配置指令,请确保这些文件在文件名中的排列顺序比perl.conf要晚。

  • manual.conf:此配置文件允许在http://localhost/manual /上访问该手册
  • perl.conf:mod_perl将Perl解释器合并到Apache Web服务器中,以便Apache Web服务器可以直接执行Perl代码。
  • php.conf:php5的php5模块
  • proxy_ajp.conf:加载后,mod_proxy_ajp模块增加了对代理到AJP/1.3后端服务器(例如Tomcat)的支持。
  • python.conf:mod_python是一个模块,它将Python语言解释器嵌入服务器中,从而允许用Python编写Apache处理程序。
  • squid.conf:访问Squid缓存管理器
  • ssl.conf:Apache SSL服务器配置
  • webalizer.conf:Webalizer统计配置
  • welcome.conf:如果根URL没有默认的索引页面,则此配置文件将启用默认的Welcome页面。