Httpd Modules: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 7: Line 7:
=Static Modules vs Dynamic Modules=
=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_.28DSO.29|Dynamic Shared Object (DSO)]]] capability is enabled.
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_.28DSO.29|Dynamic Shared Object (DSO)]] capability is enabled.


It is preferable to use shared modules which are loaded as needed with the [[httpd LoadModule|LoadModule]] directive.  
It is preferable to use shared modules which are loaded as needed with the [[httpd LoadModule|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").
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.


==Dynamic Shared Object (DSO)==
==Dynamic Shared Object (DSO)==

Revision as of 18:10, 5 January 2017

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.

Dynamic Shared Object (DSO)

http://httpd.apache.org/docs/current/dso.html

Dynamic Shared Object (DSO) capability is enabled at compilation by using "--enable-so" option.

Modules