I was trying to understand how my HTTPD configuration worked, and which file something was in. I was pleasantly surprised to find how easy it was to get this information. Rather than just list the configuration files as they were read, the data is displayed by function. This means I can see all the configuration information about “Environment variables”, or SAF.
- You can change the startup to display the configuration at startup… but…
- To display it online, you need to configure HTTPD
It displays all the configuration keywords. For example for Module Name:mod_ibm_ssl.c it displays
- SSLDisable – SSL is disabled for this server
- SSLSNIMap – Add a new SNI/label mapping
- SSLEnable – SSL is enabled for this server
- SSLServerCert – Certificate within keyfile for this server
- SSLClientAuth – The type of Client Authentication
- …
Values are substituted, in my configuration files I had
colin.conf:define urls https://10.1.1.2
...
RewriteRule "¬/(AdmRootca|Rootca)/ssl-cgi/(.*) ${urls}/$1/ssl-cgi-bin/$2 [R,NE,L] "
This was displayed as
RewriteRule "^/(AdmRootca|Rootca)/ssl-cgi/(.*) https://10.1.1.2/$1/ssl-cgi-bin/$2 [R,NE,L] "
and I could check my configuration was correct.
You can change the startup to display the configuration at startup… but…
The documentation says you can add -DDUMP_CONFIG to the startup parameters. But when I tried this, it made the parameter list too long for the PARM=…
I had to change
//HTTPCP PROC ACTION='start -DDUMP_CONFIG ', // DIR='/usr/lpp/ihsa_zos', // CONF='/u/mqweb2/conf/httpd.conf' //IHS EXEC PGM=BPXBATCH,REGION=0M, // PARM='SH &DIR/bin/apachectl -k &ACTION -f &CONF -DNO_DETACH ', // MEMLIMIT=1236M
to
//HTTPCP PROC // EXPORT SYMLIST=* // SET ACTION='start -DDUMP_CONFIG ' // SET DIR='/usr/lpp/ihsa_zos' // SET CONF='/u/mqweb2/conf/httpd.conf' //IHS EXEC PGM=BPXBATCH,REGION=0M,PARMDD=PARMDD, // MEMLIMIT=1236M //PARMDD DD *,SYMBOLS=EXECSYS SH &DIR/bin/apachectl -k &ACTION -f &CONF -DNO_DETACH -DDUMP_CONFIG /*
Then I got the configuration in STDOUT – though without the HTML links.
To display it online, you need to configure HTTPD
In my colin.conf file I had
LoadModule info_module modules/mod_info.so
<IfModule mod_info.c>
<Location /info>
SetHandler server-info
# Require all denied
# To allow access from a specific IP:
# Require ip 192.168.1
</Location>
</IfModule>
Of course you’ll enable security once it works…
I used
and it displayed the configuration. It has sections on
- Loaded modules (I was pleased to see mod_info.so in the list)
- Server settings
- Hooks and providers
- What I call “function type parameters” with the relevant configuration. For example for mod_alias.c it shows
- Module directives
- Alias – a fakename and a realname, or a realname in a Location
- ScriptAlias – a fakename and a realname, or a realname in a Location
- Redirect – an optional status, then document to be redirected and destination URL
- …
- Current configuration – and the information applicable to the function. For Module Name:mod_alias.c
- In file: /u/mqweb2/conf/httpd.conf
- 467: Alias /icons/ “/u/mqweb2/icons/”
- 483: ScriptAlias /cgi-bin/ “/u/mqweb2/cgi-bin/”
- In file: /u/mqweb2/conf/vhost80.conf
- 23: <VirtualHost *:80>
- 44: ScriptAliasMatch /(PKIServ|Customers)/public-cgi/(.*) /usr/lpp/pkiserv/PKIServ/public-cgi/$
- 2 : </VirtualHost>
- In file: /u/mqweb2/conf/httpd.conf
- For Module Name:mod_env.c
- In file: /u/mqweb2/conf/vhost80.conf
- 23: <VirtualHost *:80>
- 27: SetEnv LIBPATH “/usr/lpp/pkiserv/lib:/usr/lpp/ihsa_zos/lib:/usr/lpp/ihsa_zos/modules:/usr/lpp/ihsa_zos”
- 28: SetEnv _PKISERV_CONFIG_PATH “/etc/pkiserv”
- : </VirtualHost>
- In file: /u/mqweb2/conf/vhost443.conf
- 27: <VirtualHost *:443>
- 28: SetEnv LIBPATH “/usr/lpp/pkiserv/lib:/usr/lpp/ihsa_zos/lib:/usr/lpp/ihsa_zos/modules:/usr/lpp/ihsa_zos”
- 29: SetEnv _PKISERV_CONFIG_PATH “/etc/pkiserv”
- : </VirtualHost>
- In file: /u/mqweb2/conf/vhost80.conf
- Module directives
This is all very well thought through and easy to use.