Okay, now I feel like a total dummy. No, Suexec wasn't enabled as far as I can tell. Yes, the CGI scripts are owned by mailman:mailman. Yes, the permissions are correct. So what was the problem, you ask.
It seems that by default, Debian's Apache install doesn't enable the CGI module. Somehow, it sort of works better if you enable CGI. It works better if you plug it in.
Head…desk. I'd spent hours trying to troubleshoot this! Sometimes the most obvious things escape the best of us.
On 5/6/2018 11:10 PM, Mark Sapiro wrote:
On 05/06/2018 07:16 PM, Jayson Smith wrote:
ScriptAlias /mailman/ /usr/lib/mailman/cgi-bin/ <Directory /usr/lib/mailman/cgi-bin/> AllowOverride None Options ExecCGI Require all granted
This looks correct.
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?
Is Suexec enabled? That could explain it. If that isn't it, are the various compiled wrappers in /usr/lib/mailman/cgi-bin/ all in Mailman's group (probably 'mailman' if you installed from source, but Debian likes 'list') and permissions like -rwxr-sr-x (o+x is I think the important one here).
And are there any other Directory blocks in the apache config for /, /usr, /usr/lib or /usr/lib/mailman?