On 8/12/21 12:01 AM, Richard Rosner wrote:
Mark Sapiro wrote:
But whatever is listening on port 8001 is apparently not Mailman's rest server. What does ps -fww 14080 or whatever PID is currently listening on port 8001 show.
UID PID PPID C STIME TTY STAT TIME CMD list 15972 15963 0 Aug11 ? Sl 0:13 /usr/bin/python3 /usr/lib/mailman3/bin/runner -C /etc/mailman3/mailman.cfg --runner=rest:0:1
I had asked "What does ps -fwwa|grep rest show?" and it didn't find this. That was my error. I meant 'ps -fwwA|grep rest'
OK. Perhaps instead you should have uid: list gid: list in your uwsgi configuration if you don't already.
Tried that while also switching mailman3-web.service to list:list, exactly the same error. Also, I have /run/mailman3-web/uwsgi.sock owned by list:list now instead of www-data:www-data.
All the mailman processes should run as list
and all mailman related
things should be readable and writable by list
.
I'm not familiar enough with this form of ProxyPass using sockets to understand what the localhost:8001 does in this context, but uwsgi should not be doing anything with port 8001. In a configuration using TCP, it would listen on port 8000. Port 8001 is where Mailman's REST API server listens. uwsgi should receive connects in your case via the unix socket and then pass them to Django via the application in wsgi.py Also, you may want other paths proxied to uwsgi, namely at least some of hyperkitty, postorius, archives, accounts, admin and user-profile.
Ok, I removed that port again, now it's exctly like in the automatically generated config file. And you mean like
<IfModule mod_proxy_uwsgi.c> ProxyPass /mailman3/favicon.ico ! ProxyPass /mailman3/static ! ProxyPass /mailman3 unix:/run/mailman3-web/uwsgi.sock|uwsgi://localhost/ ProxyPass /hyperkitty unix:/run/mailman3-web/uwsgi.sock|uwsgi://localhost/ ProxyPass /postorius unix:/run/mailman3-web/uwsgi.sock|uwsgi://localhost/ ProxyPass /admin unix:/run/mailman3-web/uwsgi.sock|uwsgi://localhost/ ProxyPass /archives unix:/run/mailman3-web/uwsgi.sock|uwsgi://localhost/ ProxyPass /accounts unix:/run/mailman3-web/uwsgi.sock|uwsgi://localhost/ ProxyPass /user-profile unix:/run/mailman3-web/uwsgi.sock|uwsgi://localhost/ </IfModule>
Yes, I meant if you want those URLs to work, you have to pass them to
uwsgi. You don't need all of them. mailman2
and postorius
are
synonyms as are archives
and hyperkitty
However, you could try using TCP to communicate with uwsgi rather than a Unix socket.
This means replacing
uwsgi-socket = /run/mailman3-web/uwsgi.sock
with
uwsgi-socket = 0.0.0.0:8000
in your uwsgi.ini file and using directives like
ProxyPass "/postorius" "http://127.0.0.1:8000/postorius"
ProxyPass "/hyperkitty" "http://127.0.0.1:8000/hyperkitty"
ProxyPass "/accounts" "http://127.0.0.1:8000/accounts"
ProxyPass "/django" "http://127.0.0.1:8000/django"
ProxyPass "/user-profile" "http://127.0.0.1:8000/user-profile"
ProxyPass "/mailman3" "http://127.0.0.1:8000/mailman3"
ProxyPass "/archives" "http://127.0.0.1:8000/archives"
in apache.
I am not familiar enough with apache/uwsgi configuration to be of more help. Have you seen https://wiki.list.org/x/12812344 and have you asked Debian for help with their package. They are the ones who should be supporting it <https://www.debian.org/support>.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan