--- /dev/null
+class apache::default_mods (
+ $all = true,
+ $mods = undef,
+ $apache_version = $::apache::apache_version
+) {
+ # These are modules required to run the default configuration.
+ # They are not configurable at this time, so we just include
+ # them to make sure it works.
+ case $::osfamily {
+ 'redhat': {
+ ::apache::mod { 'log_config': }
+ if versioncmp($apache_version, '2.4') >= 0 {
+ # Lets fork it
+ # Do not try to load mod_systemd on RHEL/CentOS 6 SCL.
+ if ( !($::osfamily == 'redhat' and versioncmp($::operatingsystemrelease, '7.0') == -1) and !($::operatingsystem == 'Amazon') ) {
+ ::apache::mod { 'systemd': }
+ }
+ ::apache::mod { 'unixd': }
+ }
+ }
+ 'freebsd': {
+ ::apache::mod { 'log_config': }
+ ::apache::mod { 'unixd': }
+ }
+ 'Suse': {
+ ::apache::mod { 'log_config': }
+ }
+ default: {}
+ }
+ case $::osfamily {
+ 'gentoo': {}
+ default: {
+ ::apache::mod { 'authz_host': }
+ }
+ }
+ # The rest of the modules only get loaded if we want all modules enabled
+ if $all {
+ case $::osfamily {
+ 'debian': {
+ include ::apache::mod::authn_core
+ include ::apache::mod::reqtimeout
+ }
+ 'redhat': {
+ include ::apache::mod::actions
+ include ::apache::mod::authn_core
+ include ::apache::mod::cache
+ include ::apache::mod::mime
+ include ::apache::mod::mime_magic
+ include ::apache::mod::rewrite
+ include ::apache::mod::speling
+ include ::apache::mod::suexec
+ include ::apache::mod::version
+ include ::apache::mod::vhost_alias
+ ::apache::mod { 'auth_digest': }
+ ::apache::mod { 'authn_anon': }
+ ::apache::mod { 'authn_dbm': }
+ ::apache::mod { 'authz_dbm': }
+ ::apache::mod { 'authz_owner': }
+ ::apache::mod { 'expires': }
+ ::apache::mod { 'ext_filter': }
+ ::apache::mod { 'include': }
+ ::apache::mod { 'logio': }
+ ::apache::mod { 'substitute': }
+ ::apache::mod { 'usertrack': }
+
+ if versioncmp($apache_version, '2.4') < 0 {
+ ::apache::mod { 'authn_alias': }
+ ::apache::mod { 'authn_default': }
+ }
+ }
+ 'freebsd': {
+ include ::apache::mod::actions
+ include ::apache::mod::authn_core
+ include ::apache::mod::cache
+ include ::apache::mod::disk_cache
+ include ::apache::mod::headers
+ include ::apache::mod::info
+ include ::apache::mod::mime_magic
+ include ::apache::mod::reqtimeout
+ include ::apache::mod::rewrite
+ include ::apache::mod::userdir
+ include ::apache::mod::version
+ include ::apache::mod::vhost_alias
+ include ::apache::mod::speling
+ include ::apache::mod::filter
+
+ ::apache::mod { 'asis': }
+ ::apache::mod { 'auth_digest': }
+ ::apache::mod { 'auth_form': }
+ ::apache::mod { 'authn_anon': }
+ ::apache::mod { 'authn_dbm': }
+ ::apache::mod { 'authn_socache': }
+ ::apache::mod { 'authz_dbd': }
+ ::apache::mod { 'authz_dbm': }
+ ::apache::mod { 'authz_owner': }
+ ::apache::mod { 'dumpio': }
+ ::apache::mod { 'expires': }
+ ::apache::mod { 'file_cache': }
+ ::apache::mod { 'imagemap':}
+ ::apache::mod { 'include': }
+ ::apache::mod { 'logio': }
+ ::apache::mod { 'request': }
+ ::apache::mod { 'session': }
+ ::apache::mod { 'unique_id': }
+ }
+ default: {}
+ }
+ case $::apache::mpm_module {
+ 'prefork': {
+ include ::apache::mod::cgi
+ }
+ 'worker': {
+ include ::apache::mod::cgid
+ }
+ default: {
+ # do nothing
+ }
+ }
+ include ::apache::mod::alias
+ include ::apache::mod::authn_file
+ include ::apache::mod::autoindex
+ include ::apache::mod::dav
+ include ::apache::mod::dav_fs
+ include ::apache::mod::deflate
+ include ::apache::mod::dir
+ include ::apache::mod::mime
+ include ::apache::mod::negotiation
+ include ::apache::mod::setenvif
+ ::apache::mod { 'auth_basic': }
+
+ if versioncmp($apache_version, '2.4') >= 0 {
+ # filter is needed by mod_deflate
+ include ::apache::mod::filter
+
+ # authz_core is needed for 'Require' directive
+ ::apache::mod { 'authz_core':
+ id => 'authz_core_module',
+ }
+
+ # lots of stuff seems to break without access_compat
+ ::apache::mod { 'access_compat': }
+ } else {
+ include ::apache::mod::authz_default
+ }
+
+ include ::apache::mod::authz_user
+
+ ::apache::mod { 'authz_groupfile': }
+ ::apache::mod { 'env': }
+ } elsif $mods {
+ ::apache::default_mods::load { $mods: }
+
+ if versioncmp($apache_version, '2.4') >= 0 {
+ # authz_core is needed for 'Require' directive
+ ::apache::mod { 'authz_core':
+ id => 'authz_core_module',
+ }
+
+ # filter is needed by mod_deflate
+ include ::apache::mod::filter
+ }
+ } else {
+ if versioncmp($apache_version, '2.4') >= 0 {
+ # authz_core is needed for 'Require' directive
+ ::apache::mod { 'authz_core':
+ id => 'authz_core_module',
+ }
+
+ # filter is needed by mod_deflate
+ include ::apache::mod::filter
+ }
+ }
+}