我和许多人一样,有一个相对开箱即用的Apache安装,有很多默认的“LoadModule”行。
从一开始,我就安装了很多软件,说实话,我不知道哪个软件使用哪个模块。
我想减less我的Apache实例的内存占用,要做到这一点,我想删除模块使用。 我知道确定一个模块是否正在使用的唯一方法是从configuration中删除它,看看是否有什么中断。 这比我有时间描述更糟糕。
我想知道是否有人知道如何让Apache能够报告哪些模块已被使用 ,或者如果有另一种方式来以编程方式确定模块是否可以安全地取消configuration 。
我所做的是build立一个testing服务器,阅读文档 ,并从一个空白页面开始。
以下模块是强制性的:
然后我注释掉了所有剩下的模块并重新启动Apache。 它会听起来是否有什么事情发生,例如:
Starting httpd: Syntax error on line 10 of /etc/httpd/conf.d/squid.conf: Invalid command 'order', perhaps misspelled or defined by a module not included in the server configuration
与其他模块一样。 通过使用这种方法,下面是一些通常不需要的模块:
如果您不使用LDAP进行身份validation,则可以禁用此function:
启用时应考虑以下模块:
之前的postbuild议禁用这些模块,直到出现问题。 虽然这在生产系统上肯定是愚蠢的,但这个人是正确的,因为无论如何你需要做回归testing。
所以在这种情况下:
这可能是简化Apacheconfiguration的最简单的方法。 否则,你将不得不看每个模块,确定其function,并通过网站search,看看哪一个使用该function。 这将需要更长的时间。
另外,这可能会给你一个很好的机会转换更 轻量级的东西:
我没有直接回答你的问题,但是据我所知,互联网上有很多“小”的AMP包,不包括大部分的预装模块。 所以,我会先看看它们作为参考。
这2个链接可能会让你开始:
我知道你在问关于Apache的问题,但是考虑到系统的内存限制,通过将Apache交换为Nginx,Lighthttpd或其他小型的Web服务器,可能会更好。 与Nginx,Lighthttpd,Cherokee,G-WAN等年轻的Web服务器相比,Apache对模块的支持非常好,但是内存不足。