This is a weird one. I think of myself as knowing my way around Mailman pretty well for a user/admin/installer/upgrader. I'm upgrading to a Debian 9 system from CentOS 6.5. Debian's Apache configs took a bit of getting used to, but I actually like them better. It uses Apache 2.4.2.
I wanted to install Mailman from source, since the latest version is 2.1.26, Debian has 2.1.23, and IIRC that's too old to have some screen reader optimizations I want. So I built, installed, all working well. I copied over the Mailman config from my CentOS system to use in Apache, making some changes so it'd work under 2.4.2. Here it is:
# # httpd configuration settings for use with mailman. #
ScriptAlias /mailman/ /usr/lib/mailman/cgi-bin/ <Directory /usr/lib/mailman/cgi-bin/> AllowOverride None Options ExecCGI Require all granted
Alias /pipermail/ /var/lib/mailman/archives/public/ <Directory /var/lib/mailman/archives/public> Options Indexes MultiViews FollowSymLinks AllowOverride None Require all granted AddDefaultCharset Off
# Uncomment the following line, to redirect queries to /mailman to the # listinfo page (recommended).
# RedirectMatch ^/mailman[/]*$ /mailman/listinfo
The problem is that the CGI isn't working. If I go to http://temphostname/mailman/listinfo/mailman for example, Apache says /usr/lib/mailman/cgi-bin/listinfo/mailman doesn't exist. If I just go to /mailman/listinfo I get an Elf binary thrown at me, rather than the page saying there are no advertised lists. If I do the same thing from the server using the Lynx web browser, I get the same binary thrown at me, with a page title, "Mailman CGI error!" It sounds to me like Apache 2.4.2 isn't seeing that /usr/lib/mailman/cgi-bin is, in fact, CGI scripts, and is trying to treat them like regular files. Has something else changed between Apache versions?