Httpd Modules
Internal
Overview
Static Modules vs Dynamic Modules
Support for a specific module can be statically linked into the httpd binary at compilation, by specifying it with a configuration option similar to "--enable-proxy", or the module can be loaded at runtime, if the Dynamic Shared Object (DSO) capability is enabled.
It is preferable to use shared modules which are loaded as needed with the LoadModule directive.
If a module is compiled with the intention to load it dynamically, the corresponding "enable" compilation flag should carry the "shared" value (example "--enable-proxy=shared"). Note that in order to be able to load modules dynamically, httpd must be compiled with the Dynamic Shared Object (DSO) capability enabled, which is turned by the --enable-so compilation flag.
The attempt to dynamically load a module that was statically linked into the binary stops the server boot with an error message:
httpd: Syntax error on line 56 of .../httpd.conf: module proxy_module is built-in and can't be loaded
Dynamic Shared Object (DSO) capability is enabled at compilation by using "--enable-so" option.