这些是我启用的mod:
alias auth_basic authz_default authz_groupfile authz_host authz_user autoindex deflate dir env mime negotiation php5 reqtimeout rewrite setenvif status
我正试图尽可能地减少Apache的内存占用。
任何人都可以指导我正确的方向,我绝对需要哪些,哪些是可选的?我计划运行Symfony,但是我找不到任何关于symfony的要求让它全部工作。
谢谢!
答案 0 :(得分:9)
好吧,您可以先禁用所有auth
/ authz
模块,除非您打算让Apache为您执行身份验证,在这种情况下只启用auth
模块你实际上会使用它。
您可能不需要autoindex
模块;如果你想让Apache自动生成索引文件,你只需要它。
deflate
- 你真的想要这样,所以Apache可以在发送回客户端之前对数据进行gzip压缩(大大减少流量)。
reqtimeout
- 这是实验性的。不确定你是否有意包括它。
答案 1 :(得分:2)
我最近阅读了一个详细介绍which Apache modules can be safely removed的网页。他认为最常见的用例,但您应该始终检查并重新启用您需要的内容:
这是作者启用的模块列表:
core_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
mpm_event_module (static)
http_module (static)
so_module (static)
auth_basic_module (shared)
authn_file_module (shared)
authz_host_module (shared)
authz_user_module (shared)
expires_module (shared)
deflate_module (shared)
headers_module (shared)
dir_module (shared)
mime_module (shared)
setenvif_module (shared)
rewrite_module (shared)
proxy_module (shared)
proxy_fcgi_module (shared)
该页面包含CentOS和Ubuntu服务器的详细信息。我强烈建议您阅读整个页面,因为它包含有关为什么某些软件包被丢弃或被禁用的详细信息,以及提示。
答案 2 :(得分:1)
我只使用: dir,php5,authz_host,mime,rewrite。
禁用无用的模块将为您节省大量资源。
我建议您逐个禁用并每次重启apache并进行测试。另请注意,如果出现错误,您可以在开始时使用哪些模块将其还原为
答案 3 :(得分:1)
我创建了一个小的python脚本来帮助您。 请看看https://github.com/zioalex/unused_apache_modules
这是您可以期望得到的:
curl http://localhost/server-info > http_modules_test.txt
cat http_modules_test.txt| python find_unused_apache_mod.py
1
Module name mod_python.c
Configuration Phase Participation: 4
Request Phase Participation: 11
Current Configuration: 3
2
Module name mod_version.c
Configuration Phase Participation: 0
Request Phase Participation: 0
Current Configuration: 1
3
Module name mod_proxy_connect.c
Configuration Phase Participation: 0
Request Phase Participation: 0
Current Configuration: 0
To remove safely:
['mod_proxy_connect.c']
POPPED: mod_proxy_connect.c
To KEEP: ['mod_python.c', 'mod_version.c', 'mod_proxy_connect.c']
答案 4 :(得分:0)
注释掉或禁用所有模块。
while fails $(apachectl configtest) # or apache2ctl configtest on debian
do
if directive needed
Add in the module that supplies the directive complained about.
else
delete directive
fi
done
比逐一评论它们更容易,最终得到最小值。之后测试一切都有效,但我已经将它作为一个过程使用了几次而没有出现重大问题,但是一个免配置模块理论上可能会失败(如果存在这样的事情)。
答案 5 :(得分:0)
我将已启用模块的列表从actions alias auth_basic auth_digest authn_file authz_default authz_groupfile authz_host authz_user autoindex cgi dav dav_fs dav_svn deflate dir env fcgid mime negotiation php5 proxy proxy_balancer proxy_connect proxy_http reqtimeout rewrite ruby setenvif ssl status suexec
大幅缩减为更轻的authz_host deflate dir fcgid mime php5 rewrite
。