Apache mod_wcm.so configuration for Fedora Core and version 7 (or later) of RedHat, CentOS & Oracle Linux


This page documents the configuration of mod_wcm.so for Fedora Core and versions 7 (or later) of RedHat, CentOS and Oracle Linux.
For information on configuring mod_wcm.so on versions 5 & 6 of RedHat, CentOS or Oracle Linux see Apache mod_wcm.so configuration for versions 5 & 6 of RedHat, Oracle Linux, & CentOS

The mod_wcm_24.so is compatible with the 64-bit, prefork MPM, version of Apache 2.4 that is available as an installable package for the RedHat family of Linux systems. 32-bit versions of Apache 2.4 are not supported nor are versions of Apache configured to use the event or worker MPMs.

To start and stop Apache, use the systemctl start|stop httpd.service command. Operating systems that use systemd, eg Oracle Linux 7 & Fedora Core 18 (or later), may require the httpd service to be enabled by running

$ systemctl enable httpd
so that the Apache server starts during boot.

On modern distrubutions, such as Fedora Core 27 (or later) & Oracle Linux 8, the default configuration for Apache 2.4 is to use the event MPM, which is not compatible with mod_wcm_24.so. This can be easily changed to use the prefork MPM by commenting out the LoadModule entry for modules/mod_mpm_event.so in /etc/httpd/conf.modules.d/00-mpm.conf and then uncommenting the entry for modules/mod_mpm_prefork.so

The configuration of Apache has been separated out from /etc/httpd/conf/httpd.conf into a set of include files that reside in the /etc/httpd/conf.d & /etc/httpd/conf.modules.d/ directories. The /etc/httpd/conf.modules.d directory contains configuration files that just define what modules Apache loads when it starts. The names of configuration files are usually prefixed with a two digit number so that they are loaded in a specific sequence. For example 00-mpm.conf will be loaded before 01-cgi.conf so that latter can choose which module to load depending on which MPM had been enabled in the former. As mod_wcm.so does not provide a dependency for other Apache modules it can be loaded last, so a name of 99-wcm.conf can be used. The file just needs to contain a single LoadModule directive:-

LoadModule wcm_module modules/mod_wcm.so

Module pathnames are relative to the /etc/httpd directory.

The remainder of the configuration for mod_wcm.so resides in a file in the /etc/httpd/conf.d directory. For example, mod_wcm.so's configuration would be stored in the file /etc/httpd/conf.d/k8.conf:

# Configuration of mod_wcm.so for K8
<Location /K8_CVS6 >
	Order allow,deny
	Allow from all
	# mod_filter and mod_deflate must be loaded
	AddOutputFilterByType deflate text/plain text/html text/css text/xml application/soap+xml
</Location>
<Location /K8_CVS6/KCMLTest >
	SetHandler kcml-soap
	KcmlSOAPServers localhost:790
</Location>

As /etc/httpd/conf.modules.d/99-wcm.conf has done the LoadModule directive for mod_wcm.so then multiple configuration files for mod_wcm.so can used in /etc/httpd/conf.d/. So another application's configuration can be added to Apache, without affecting the above configuration, by creating the configuration file /etc/httpd/conf.d/rev8.conf with the contents:-

# Configuration of mod_wcm.so for Rev8
<Location /Rev830 >
	Order allow,deny
	Allow from all
	# mod_deflate must be loaded
	AddOutputFilterByType deflate text/plain text/html text/css text/xml application/soap+xml
</Location>
<Location /Rev830/CLOCKSERVER >
	SetHandler kcml-soap
	KcmlSOAPServers localhost:790
</Location>

and then restarting Apache with the command

$ systemctl restart httpd.service