# Mailman installation bestehendes ISPConfig 3



## planet_fox (2. Nov. 2011)

Nachdem nun Mailman verwaltet werden kann über ISCPConfig3 würde ich gerne dies auch nutzen. Wie muss ich Mailman dafür Installieren.

Gruß

alex


----------



## Till (3. Nov. 2011)

Die perfect setup guides werden demnächst um die mailman Installationsanweisungen ergänzt. Generell musst Du mailman nur installieren, dann die master mailingliste erzeugen so wie es der mailman Installer vorschlägt und dann das ispconfig Update durchführen.


----------



## planet_fox (3. Nov. 2011)

Wenn ich des Update schon habe ? Drüber Installieren ?


----------



## Till (3. Nov. 2011)

Ja, einfach update nochmal machen. So wie in den manuellen Update Instruktionen in den release notes beschrieben.


----------



## mascoxx (10. Jan. 2012)

Hi,

ich denke, dass die Schritte auch für 3.0.4.2 zutreffen?
-> apt-get install mailman
-> newlist mailman
-> ispconfig_update.sh

Die Administration selbst sollte danach über http://URL/cgi-bin/mailman/admin/listname erfolgen?!
Sind die Listnames eindeutig?

LG
Clemens


----------



## Soeldner (17. Okt. 2012)

*Mailman ISPconfig3*

Hi in die Runde,

auch wenn der Beitrag schon etwas älter ist, hier mein "Problem".

System:
Server: Debian
Pakete: "Perfekte Server Guide" Courier, Postfix, Apache2, FTP, SASL usw.
ISPc: 3.0.4.6

Installation Mailman:
Vorgehen nach dem ISP Handbuch.


Mailman installieren
newlist mailman
mailman.conf in /etc/apache2/conf.d/mailman.conf gelinkt
Services neu starten
update ISPc händisch (php -q /tmp/ispconfig_install/install/update.php)
 Beim update von ISPc


> Reconfigure Services? (yes,no) [yes]:
> 
> Configuring Postfix
> Configuring *Mailman*
> Configuring Jailkit


sieht alles gut aus.
In ISPc neue Mailingliste erstellt (nach Handbuch) und benutzer via E-Mail Befehl eingetragen (-request adresse, Subject: subscribe address=meine@mail.adresse)

Funktioniert alles super. 

Jetzt zu meinem "Problem". Ich erreiche die Oberfläche nicht über die VHosts wo die Maillist eingerichtet wurde.

Ich richte zum Beispiel die Liste testliste1 unter der Domain testdomain1.de ein.
In der Begrüßungsmail kommen alle Links (Wie auch gewollt) mit

http://testdomain1.de/cgi-bin/mailman/admin/testliste1

Beim anklicken erscheint 


> The requested URL /cgi-bin/mailman/admin/testliste1 was not found on this server.


Über meinen Server Hostname erreiche ich diese Liste aber.

http://server1.meinedomain.de/cgi-bin/mailman/admin/testliste1

Ich habe schon folgendes versucht:


suexec aus
aliases geprüft
mailman.conf aktivieren von


```
## The following describes how to configure mailman on
## a dedicated virtual host, courtesy Marco d'Itri.

# Add these lines in /etc/mailman/mm_cfg.py:
#DEFAULT_EMAIL_HOST = 'lists.example.net'
#DEFAULT_URL_HOST = 'lists.example.net'
#DEFAULT_URL_PATTERN = 'http://%s/'

#<VirtualHost *>
#ServerName lists.example.net
#DocumentRoot /var/www/lists
#ErrorLog /var/log/apache2/lists-error.log
#CustomLog /var/log/apache2/lists-access.log combined
#
#<Directory /var/lib/mailman/archives/>
#    Options FollowSymLinks
#    AllowOverride None
#</Directory>
#
#Alias /pipermail/ /var/lib/mailman/archives/public/
#Alias /images/mailman/ /usr/share/images/mailman/
#ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin
#ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb
#ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm
#ScriptAlias /create /usr/lib/cgi-bin/mailman/create
#ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml
#ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo
#ScriptAlias /options /usr/lib/cgi-bin/mailman/options
#ScriptAlias /private /usr/lib/cgi-bin/mailman/private
#ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist
#ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster
#ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe
#ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
#</VirtualHost>
```
Danach erreiche ich aber keine einzige Webseite mehr. Auch nachvollziehbar da VHost *

Hat noch irgend wer eine Idee? Ratschlag? Oder irgend wie eine Vermutung ??


----------



## Till (17. Okt. 2012)

Ist cgi in der webseite an oder aus?


----------



## Soeldner (17. Okt. 2012)

CGI ist an.

Weiterhin
SSI
SuEXEC

Auto Subdomain: www
PHP: Fast-CGI

Umleitung SEO: nicht www -> www


----------



## Till (17. Okt. 2012)

Dann schalte mal cgi aus. Wenn cgi an ist, adn erwartet er dass alle cgi scripte der Domain im lokalen cgi-bin Ordner der Domain liegen und nicht im globalen wie mailman.


----------



## Soeldner (17. Okt. 2012)

PHP open_basedir muss aber dann nicht zusätzlich eingerichtet werden?

Jetzt bekomme ich schonmal Logs  Ist doch was. Bestätigen sogar deine Aussage 



> [Wed Oct 17 14:44:23 2012] [error] [client xxx.xxx.xxx.xxx] File does not exist: /var/www/meinewebseite.de/web/www1/cgi-bin


Ansonsten alles beim alten



> The requested URL /cgi-bin/mailman/listinfo/testliste1 was not found on this server.


Ich warte mal meine 5 Minuten


----------



## Soeldner (17. Okt. 2012)

Selbst nach einem Neustart und zusätzlichem restart der Services keine Änderung 



> [Wed Oct 17 15:21:19 2012] [error] [client xxx.xxx.xxx.xxx] File does not exist: /var/www/meinedomain.de/web/www1/cgi-bin


Cache, Cop usw. alles geleert. Browser gewechselt, logs von /var/log/apache sowie mailman geprüft nix.
Er geht immer wieder auf die /cgi.. der Domain.

Sollte in der /etc/apache2/sites-enabled/100-meineseite.de.vhost nicht wenigstens ein Vermerk über /cgi-bin/mailman stehen


----------



## Soeldner (17. Okt. 2012)

Ich hab was gefunden ... Muss aber ein wenig weiter ausholen ...

IST Zustand bei Fehler:

Domain: meineseite.de
Umleitung: SEO nicht www -> www
Mod: SuEXEC, CGI, SSI und eigene Fehlerseiten
System: CMS JOOMLA!

Subdomain: www.meineseite.de
          Redirect Typ: L
          Redirect Pfad: /www1/

IST Zustand ohne Fehler:

Domain: meineseite.de
Umleitung: SEO nicht www -> www
Mod: eigene Fehlerseiten
System JOOMLA!

Subdomain: wurde deaktiviert

Inhalt von /web/www1/ nach /web/ kopiert. Pfade angepasst, Rechte gebogen und geht.
Das CMS läd seit dem ausschalten von SuEXEC nur sehr langsam. Aber zu diesem Thema findet Onkel Google ja jede menge Treffer. Also SuEXEC im Zusammenhang mit JOOMLA!.
Aktiviere ich SuEXEC, erhalte ich bei mailman einen 500er error. Wie mans macht ists falsch. Wie daheim hier 

Ich werde es vorerst so akzeptieren müssen. Danke Till für deine Hilfe !!
Bin weiterhin für jeden Tipp mit der SuEXEC Problematik dankbar!
*
EDIT die 1.*
Ohne SuEXEC bekomme ich weder ein CMS noch Blog ans laufen. Typo und Contao lassen sich zwar installiern, aber ich kann keine configs mehr speichern. Rechteproblem.

Schalte ich SuEXEC wieder ein, erhalte ich bei mailman den 500er wieder


> [2012-10-17 16:22:04]: uid: (5050/web127) gid: (5011/client2) cmd: listinfo
> [2012-10-17 16:22:04]: command not in docroot (/usr/lib/cgi-bin/mailman/listinfo)


Ein eintrag in die openbasedir (/usr/lib/cgi-bin/mailman/listinfo) bringt auch nichts 

Heißt das jetzt, das ich eine separate Domain für Mailman einrichten muss ???

*EDIT die 2.*
so, ich hab die Domain jetzt auf suPHP umgestellt. CGI ist aus sowie SuEXEC. Wobei SuEXEC keinen Einfluss auf suPHP hätte meine ich.
Jetzt bekomme ich wenigstens Drupal und joomla ans laufen.

Ich habe auch apache2-suexec-custom gefunden. Jemand damit Erfahrung ob man SuEXEC dahingehen verbiegen kann?


> Paket: apache2-suexec-custom
> Neu: ja
> Zustand: nicht installiert
> Version: 2.2.16-6+squeeze8
> ...


----------



## Till (18. Okt. 2012)

Die Sache mit suexec ist ganz einfach dass die mailman cgi scripte der Linux Distribution nicht innerhalb des in suexec einkompilierten Verzeichnisses /var/www liegen und suexec somit richtigerweise die Ausführung verweigert. Für Deine cms brauchst Du aber unbeding suexec, suphp ist keine Alternative da zu langsam.

Ich würde das Problem einfach dadurch lösen dass Du auf mailman über den Server Hostnamen zugreifst, D kannst die Pfage in den Mailman emails ja anpassen. Die Vorlage liegt in /usr/local/ispconfig/server/conf/mm_cfg.py.master, kopiere sie nach /usr/local/ispconfig/server/conf-custom/mm_cfg.py.master  und ersteze in der zeile 

DEFAULT_URL_PATTERN = 'http://%s/cgi-bin/mailman/'

%s durch Deinen Server Hostnamen.


----------



## Soeldner (18. Okt. 2012)

Das wäre natürlich auch noch eine Lösung. Danke Till !!

Ich bin seit gestern an dem apache2-suexec-custom Paket dran.
Deine Lösung funktioniert super. Hab ich separat mal in einer anderen Testumgebung angepasst.


----------



## Soeldner (18. Okt. 2012)

OK, läuft doch nicht so rund mit dem anpassen.


> Ich würde das Problem einfach dadurch lösen dass Du auf mailman über den  Server Hostnamen zugreifst, D kannst die Pfage in den Mailman emails ja  anpassen. Die Vorlage liegt in  /usr/local/ispconfig/server/conf/mm_cfg.py.master, kopiere sie nach  /usr/local/ispconfig/server/conf-custom/mm_cfg.py.master  und ersteze in  der zeile
> 
> DEFAULT_URL_PATTERN = 'http://%s/cgi-bin/mailman/'
> 
> %s durch Deinen Server Hostnamen.


Logs:


```
admin(15944): [----- Mailman Version: 2.1.13 -----]
admin(15944): [----- Traceback ------]
admin(15944): Traceback (most recent call last):
admin(15944):   File "/var/lib/mailman/scripts/driver", line 112, in run_main
admin(15944):     main()
admin(15944):   File "/var/lib/mailman/Mailman/Cgi/admin.py", line 74, in main
admin(15944):     admin_overview(_('No such list <em>%(safelistname)s</em>'))
admin(15944):   File "/var/lib/mailman/Mailman/Cgi/admin.py", line 264, in admin_overview
admin(15944):     creatorurl = Utils.ScriptURL('create')
admin(15944):   File "/var/lib/mailman/Mailman/Utils.py", line 261, in ScriptURL
admin(15944):     web_page_url = mm_cfg.DEFAULT_URL_PATTERN % get_domain()
admin(15944): TypeError: not all arguments converted during string formatting
admin(15944): [----- Python Information -----]
admin(15944): sys.version     =   2.6.6 (r266:84292, Dec 26 2010, 22:31:48)
[GCC 4.4.5]
admin(15944): sys.executable  =   /usr/bin/python
admin(15944): sys.prefix      =   /usr
admin(15944): sys.exec_prefix =   /usr
admin(15944): sys.path        =   /usr
admin(15944): sys.platform    =   linux2
admin(15944): [----- Environment Variables -----]
admin(15944):   HTTP_COOKIE: rs-bali-6c+admin=28020000006933887e50732800000034313365363566393530613231653738616430343336653934633231316632306462393339643836; __utma=73562434.1302910197.1349345257.1350293964.1350378945.4; __utmz=73562434.1349345257.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
admin(15944):   SERVER_SOFTWARE: Apache/2.2.16 (Debian) DAV/2 SVN/1.6.12 mod_fcgid/2.3.6 PHP/5.3.17-1~dotdeb.0 with Suhosin-Patch mod_python/3.3.1 Python/2.6.6 mod_ruby/1.2.6 Ruby/1.8.7(2010-08-16) mod_ssl/2.2.16 OpenSSL/0.9.8o mod_perl/2.0.4 Perl/v5.10.1
admin(15944):   SCRIPT_NAME: /cgi-bin/mailman/admin
admin(15944):   SERVER_SIGNATURE: <address>Apache/2.2.16 (Debian) DAV/2 SVN/1.6.12 mod_fcgid/2.3.6 PHP/5.3.17-1~dotdeb.0 with Suhosin-Patch mod_python/3.3.1 Python/2.6.6 mod_ruby/1.2.6 Ruby/1.8.7(2010-08-16) mod_ssl/2.2.16 OpenSSL/0.9.8o mod_perl/2.0.4 Perl/v5.10.1 Server at hostname.domain.de Port 80</address>
admin(15944):
admin(15944):   REQUEST_METHOD: GET
admin(15944):   PATH_INFO: /rs-bali
admin(15944):   SERVER_PROTOCOL: HTTP/1.0
admin(15944):   QUERY_STRING:
admin(15944):   HTTP_USER_AGENT: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0
admin(15944):   HTTP_CONNECTION: keep-alive
admin(15944):   SERVER_NAME: hostname.domain.de
admin(15944):   REMOTE_ADDR: 91.43.167.243
admin(15944):   PATH_TRANSLATED: /var/www/rs-bali
admin(15944):   SERVER_PORT: 80
admin(15944):   SERVER_ADDR: 178.63.93.85
admin(15944):   DOCUMENT_ROOT: /var/www
admin(15944):   PYTHONPATH: /var/lib/mailman
admin(15944):   SCRIPT_FILENAME: /usr/lib/cgi-bin/mailman/admin
admin(15944):   SERVER_ADMIN: webmaster@localhost
admin(15944):   HTTP_HOST: hostname.domain.de
admin(15944):   HTTP_CACHE_CONTROL: max-age=0
admin(15944):   REQUEST_URI: /cgi-bin/mailman/admin/rs-bali
admin(15944):   HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
admin(15944):   GATEWAY_INTERFACE: CGI/1.1
admin(15944):   REMOTE_PORT: 56381
admin(15944):   HTTP_ACCEPT_LANGUAGE: de-DE,de;q=0.8,en-US;q=0.5,en;q=0.3
admin(15944):   HTTP_ACCEPT_ENCODING: gzip, deflate
Oct 18 15:30:01 2012 qrunner(16227): Traceback (most recent call last):
Oct 18 15:30:01 2012 qrunner(16229): Traceback (most recent call last):
Oct 18 15:30:01 2012 qrunner(16227):   File "/var/lib/mailman/bin/qrunner", line 278, in <module>
Oct 18 15:30:01 2012 qrunner(16229):   File "/var/lib/mailman/bin/qrunner", line 278, in <module>
Oct 18 15:30:01 2012 qrunner(16227):      main()
Oct 18 15:30:01 2012 qrunner(16229):      main()
Oct 18 15:30:01 2012 qrunner(16227):   File "/var/lib/mailman/bin/qrunner", line 225, in main
Oct 18 15:30:01 2012 qrunner(16229):   File "/var/lib/mailman/bin/qrunner", line 225, in main
Oct 18 15:30:01 2012 qrunner(16227):      qrunner = make_qrunner(*runners[0])
Oct 18 15:30:01 2012 qrunner(16227):   File "/var/lib/mailman/bin/qrunner", line 108, in make_qrunner
Oct 18 15:30:01 2012 qrunner(16229):      qrunner = make_qrunner(*runners[0])
Oct 18 15:30:01 2012 qrunner(16227):      __import__(modulename)
Oct 18 15:30:01 2012 qrunner(16229):   File "/var/lib/mailman/bin/qrunner", line 108, in make_qrunner
Oct 18 15:30:01 2012 qrunner(16227):   File "/var/lib/mailman/Mailman/Queue/VirginRunner.py", line 26, in <module>
Oct 18 15:30:01 2012 qrunner(16229):      __import__(modulename)
Oct 18 15:30:01 2012 qrunner(16227):      from Mailman.Queue.Runner import Runner
Oct 18 15:30:01 2012 qrunner(16229):   File "/var/lib/mailman/Mailman/Queue/IncomingRunner.py", line 103, in <module>
Oct 18 15:30:01 2012 qrunner(16227):   File "/var/lib/mailman/Mailman/Queue/Runner.py", line 23, in <module>
Oct 18 15:30:01 2012 qrunner(16229):      from Mailman import LockFile
Oct 18 15:30:01 2012 qrunner(16227):      import weakref
Oct 18 15:30:01 2012 qrunner(16229):   File "/var/lib/mailman/Mailman/LockFile.py", line 62, in <module>
Oct 18 15:30:01 2012 qrunner(16227):   File "/usr/lib/python2.6/weakref.py", line 6, in <module>
Oct 18 15:30:01 2012 qrunner(16229):      import socket
Oct 18 15:30:01 2012 qrunner(16229):   File "/usr/lib/python2.6/socket.py", line 176, in <module>
Oct 18 15:30:02 2012 qrunner(16227):      """
Oct 18 15:30:02 2012 qrunner(16227): KeyboardInterrupt
Oct 18 15:30:02 2012 qrunner(16229):      class _socketobject(object):
Oct 18 15:30:02 2012 qrunner(16229):   File "/usr/lib/python2.6/socket.py", line 221, in _socketobject
Oct 18 15:30:02 2012 qrunner(16229):      exec _s % (_m, _m, _m, _m)
Oct 18 15:30:02 2012 qrunner(16229):   File "<string>", line 1, in <module>
Oct 18 15:30:02 2012 qrunner(16229): KeyboardInterrupt
```
Kannst Du damit etwas anfangen?
Die Meldung im Browser ist:


> *Bug in Mailman version 2.1.13*
> 
> *We're sorry, we hit a bug!*
> 
> Please inform the webmaster for this site of this problem.  Printing of traceback and other system information has been explicitly inhibited, but the webmaster can find this information in the Mailman error logs.


Logs siehe oben


----------



## Brainfood (4. Dez. 2012)

@Soeldner

Ich habe mich die halbe Nacht mit der Nachinstallation von mailman herumgeschlagen und exakt ähnliche Fehler wie deine beobachten können, diesen Thread hier hab ich eben erst entdeckt ...

Das selbe Problem:

server1.domain.tld = ISPConfig3
meinedomain.tld = Kundendomain mit CGI / SSI / Ruby / Python / SuEXEC / Eigene Fehlerseiten # Auto-Subdomain = None # PHP = SuPHP
Websoftware = das übliche SuEXEC Gerassel, Wordpress, Typo3 etc.

Nach dem einrichten von Mailman erzeugt man im Initialisierungsprozess die "newlist mailman"

ich habe mich für eine Subdomain Variante entschlossen

per DNS:
A = lists.domain.tld
AAAA = lists.domain.tld
MX = 1 2 3 Server

unter ISPConfig3 ist keine subdomain für lists.domain.tld angelegt

die /etc/mailman/mm_cfg.py sieht so aus:


```
#-------------------------------------------------------------
# If you change these, you have to configure your http server
# accordingly (Alias and ScriptAlias directives in most httpds)
DEFAULT_URL_PATTERN = [B]'http://%s/cgi-bin/mailman/'[/B]
PRIVATE_ARCHIVE_URL = '/cgi-bin/mailman/private'
IMAGE_LOGOS         = '/images/mailman/'

#-------------------------------------------------------------
# Default domain for email addresses of newly created MLs
DEFAULT_EMAIL_HOST = [B]'server1.domain.tld'[/B]
#-------------------------------------------------------------
# Default host for web interface of newly created MLs
DEFAULT_URL_HOST   = [B]'server1.domain.tld'[/B]
#-------------------------------------------------------------
# Required when setting any of its arguments.
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)

#-------------------------------------------------------------
# The default language for this server.
DEFAULT_SERVER_LANGUAGE = [B]'en'[/B]
```
öffne ich die Root Domain vom Server:

http://server1.domain.tld/cgi-bin/mailman/listinfo

klappt alles

öffne ich die ispconfig definitionslose subdomain lists:

http://lists.domain.tld/cgi-bin/mailman/listinfo

klappt es auch

- Erstelle ich jetzt jedoch per ISPConfig eine domainspezifische Mailingliste:

http://meinedomain.tld/cgi-bin/mailman/listinfo

folgt entweder *404*er oder bei deaktivierem ISPConfig CGI dann *500*er Fehler

Das kopieren von /usr/lib/cgi-bin/mailman nach /var/www/meinedomain.tld/cgi-bin und setzen der Rechte entweder auf:
webXX:clientXX mailman
www-data:www-data mailman

bringt nur den letzten genannten Fehler von dir Soeldner

ISPConfig3 erzeugt ja die Mailinglisten "kunden"/"domain" spezifisch
die Dinger werden also unter http://server.domain.tld erst gar nicht aufgelistet, und es macht auch keinen Sinn für alle laufenden Domänen nur eine einzige Sammelstelle für Mailinglisten zu haben, dass ganze soll schon über die einzelnen Kundendomänen funktionieren ...

... das SuEXEC Problem muss irgendwie geklärt werden


----------



## Brainfood (4. Dez. 2012)

/etc/mailman/mm_cfg.py


```
#-------------------------------------------------------------
# If you change these, you have to configure your http server
# accordingly (Alias and ScriptAlias directives in most httpds)
# DEFAULT_URL_PATTERN = '[B]http://%s/mailman/[/B]'
DEFAULT_URL_PATTERN = '[B]http://%s/mailman/[/B]'
PRIVATE_ARCHIVE_URL = '[B]/mailman/private[/B]'
IMAGE_LOGOS         = '[B]/images/mailman/[/B]'

#-------------------------------------------------------------
# Default domain for email addresses of newly created MLs
DEFAULT_EMAIL_HOST = '[B]srv1.domain.tld[/B]'
#-------------------------------------------------------------
# Default host for web interface of newly created MLs
DEFAULT_URL_HOST   = '[B]srv1.domain.tld[/B]'
#-------------------------------------------------------------
# Required when setting any of its arguments.
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)

#-------------------------------------------------------------
# The default language for this server.
DEFAULT_SERVER_LANGUAGE = '[B]en[/B]'
```
/etc/apache2/conf.d/mailman.conf


```
# We can find mailman here:
[B]ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/[/B]
# And the public archives:
[B]Alias /pipermail/ /var/lib/mailman/archives/public/[/B]
# Logos:
[B]Alias /images/mailman/ /usr/share/images/mailman/[/B]
```
srv1.domain.tld/mailman/listinfo = *geht*
meinedomain.tld/mailman/listinfo = *ERROR 500*

ändert man:

DEFAULT_URL_PATTERN = '*http://%s/mailman/*'
nach
DEFAULT_URL_PATTERN = '*http://srv1.domain.tld/mailman/*'

kommt:



> *Bug in Mailman version 2.1.13
> 
> We're sorry, we hit a bug!
> 
> Please inform the webmaster for this site of this problem. Printing of traceback and other system information has been explicitly inhibited, but the webmaster can find this information in the Mailman error logs.*


/var/log/mailman/error


```
Dec 04 16:23:47 2012 admin(15092): @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
admin(15092): [----- Mailman Version: 2.1.13 -----] 
admin(15092): [----- Traceback ------] 
admin(15092): Traceback (most recent call last):
admin(15092):   File "/var/lib/mailman/scripts/driver", line 112, in run_main
admin(15092):     main()
admin(15092):   File "/var/lib/mailman/Mailman/Cgi/listinfo.py", line 43, in main
admin(15092):     listinfo_overview()
admin(15092):   File "/var/lib/mailman/Mailman/Cgi/listinfo.py", line 124, in listinfo_overview
admin(15092):     Link(Utils.ScriptURL('admin'),
admin(15092):   File "/var/lib/mailman/Mailman/Utils.py", line 262, in ScriptURL
admin(15092):     web_page_url = mm_cfg.DEFAULT_URL_PATTERN % get_domain()
admin(15092): TypeError: not all arguments converted during string formatting
admin(15092): [----- Python Information -----] 
admin(15092): sys.version     =   2.6.6 (r266:84292, Dec 26 2010, 22:31:48) 
[GCC 4.4.5] 
admin(15092): sys.executable  =   /usr/bin/python 
admin(15092): sys.prefix      =   /usr 
admin(15092): sys.exec_prefix =   /usr 
admin(15092): sys.path        =   /usr 
admin(15092): sys.platform    =   linux2 
admin(15092): [----- Environment Variables -----] 
admin(15092): 	HTTP_COOKIE: PHPSESSID=ficip... 
admin(15092): 	SERVER_SOFTWARE: Apache/2.2.16 (Debian) 
admin(15092): 	SCRIPT_NAME: /mailman/listinfo 
admin(15092): 	SERVER_SIGNATURE: <address>Apache/2.2.16 (Debian) Server at srv1.domain.tld Port 80</address>
admin(15092): 
admin(15092): 	REQUEST_METHOD: GET 
admin(15092): 	SERVER_PROTOCOL: HTTP/1.1 
admin(15092): 	QUERY_STRING:  
admin(15092): 	HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.17 (KHTML, like Gecko) Version/6.0.2 Safari/536.26.17 
admin(15092): 	HTTP_CONNECTION: keep-alive 
admin(15092): 	SERVER_NAME: srv1.domain.tld 
admin(15092): 	REMOTE_ADDR: 2001:470:... 
admin(15092): 	SERVER_PORT: 80 
admin(15092): 	SERVER_ADDR: 2001:...
admin(15092): 	DOCUMENT_ROOT: /var/www 
admin(15092): 	PYTHONPATH: /var/lib/mailman 
admin(15092): 	SCRIPT_FILENAME: /usr/lib/cgi-bin/mailman/listinfo 
admin(15092): 	SERVER_ADMIN: webmaster@localhost 
admin(15092): 	HTTP_HOST: srv1.domain.tld
admin(15092): 	REQUEST_URI: /mailman/listinfo 
admin(15092): 	HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
admin(15092): 	GATEWAY_INTERFACE: CGI/1.1 
admin(15092): 	REMOTE_PORT: 64097 
admin(15092): 	HTTP_ACCEPT_LANGUAGE: de-de 
admin(15092): 	HTTP_ACCEPT_ENCODING: gzip, deflate
```


----------



## Brainfood (4. Dez. 2012)

Thomas

deine:

pythagoras.domain.tld/cgi-bin/mailman/listinfo

geht, entferne mal dein www redirect

Grüße vom Schnüffelbrain


----------



## Soeldner (4. Dez. 2012)

Bei der Serverdomain ja. Ich hab die betreffende Domain jetzt Testweise unter suPHP laufen. 

Testdomain ist ja auch kein Geheimnis:
Mailinglisten auf www.elternstammtisch.org

Leider keine Chance unter FastCGI und SuEXEC
Ich hatte auch noch nicht die Zeit weiter zu suchen  Wochenende klappt es vielleicht.

Zwecks *We're sorry, we hit a bug! *hatte ich mich auch schon an die Mailman Mailliste gewandt. Nur noch keine Antwort bis jetzt. 

Gruß


----------



## Brainfood (4. Dez. 2012)

Mailman muss meiner Meinung nach unabhängig von den eingestellten Optionen laufen ...

egal ob FastCGI / SuPHP / SuEXEC usw. ... man kann nicht wegen einer einzigen Software seine komplette ISPConfig für Kunden verkrüppeln ...

@Till wie wäre es ... wenn man das ganze /var/lib/... /usr/... mailman Gerassel nach /var/www/... bzw. /var/www/domain.tld/cgi-bin/... verfrachtet?


----------



## Soeldner (4. Dez. 2012)

Zitat von Brainfood:


> Mailman muss meiner Meinung nach unabhängig von den eingestellten Optionen laufen ...
> 
> egal ob FastCGI / SuPHP / SuEXEC usw. ... man kann nicht wegen einer einzigen Software seine komplette ISPConfig für Kunden verkrüppeln ...
> ...


Bin ich dafür.


----------



## Till (4. Dez. 2012)

Mailman ist leider nicht wirklich für Hosting Server mit mehreren Kunden geeignet, da es sowas wie virtuelle Accounts bzw. Trennung von accounts nach Domänen etc. nicht voll unterstützt und man auch bei Mailinglistennamen immer Probleme bekommt sobabld 2 Kunden Ihre Liste "newletter" oder ähnlich nennen wollen. An sich benötigt Mailman einen eigenen Server pro Kunde, was aber für einen Webhoster nicht wirklich machbar sein dürfte.

Da das mailman Interface ein cgi script ist, wird es von suexec beeinflusst und das suexec mailman blockt ist auch ganz richtig, denn die mailman scripte haben halt den falschen User. Damit man das mailman Interface mit kundendomains einsetzen kann müsste man es wahrscheinlich auf einens eparaten Server installieren auf dem keine Kundenwebs laufen.

Leider ist mir keine verbreitete OS Mailinglsitensoftware bekannt die besser für Hoster funktioniert, denn dann würde ich mailman austauschen.


----------



## Brainfood (4. Dez. 2012)

Till über den Schutzmechanismus von SuEXEC sind wir uns einig, die Frage ist ... wie komfortabel der Umgang mit Mailinglisten auf Multidomain Hosting Servern wird, wenn nur eine primäre Verwaltungsadresse zur Verfügung steht ...

wie gesagt ... wenn eine funktionsfähige Subdomain auf DNS Seite erstellt wird, diese jedoch nicht explizit als Subdomain unter ISPConfig3 eingerichtet wurde, funktioniert der mailman Redirect von Apache ServerRoot sauber ...

statt dem Kunden jetzt ein:

http://srv123.domain.tld/cgi-bin/mailman/listinfo

anbieten zu müssen, geht ein eleganterer Pfad zu:

*http://lists.masterdomain.tld/cgi-bin/mailman/listinfo*

unter /etc/apache2/conf.d/mailman.conf könnte man ja ohne weiteres ein:


```
<IfModule mod_rewrite.c>
  <IfModule mod_ssl.c>
    <Location /mailman>
      RewriteEngine on
      RewriteCond %{HTTP} !^on$ [NC]
      RewriteRule . http://lists.masterdomain.tld/cgi-bin/mailman/listinfo  [L]
    </Location>
  </IfModule>
</IfModule>
```
eintragen ...

Im ISPConfig3 richtet man wie gehabt die domänenspezifischen Mailinglisten ein, mit der Prämisse: der Kunde soll immer eine eindeutige Kennung vor seinem eigentlichen Listennamen beifügen:

z.B.

meinedomain1-announce@meinedomain1.tld

Der Kunde 1 könnte jetzt ohne weiteres z.B.:

http://lists.masterdomain.tld/cgi-bin/mailman/listinfo/meinedomain1-announce

als Link in seine Projekte integrieren ...


Kunde 2 hingegen nimmt z.B.:

meinedomain2-announce@meinedomain2.tld

http://lists.masterdomain.tld/cgi-bin/mailman/listinfo/meinedomain2-announce

Die Mailman CGIs dienen ja lediglich nur zur komfortablen An/Abmeldung der Listen ... die Postverteilung sollte wie gehabt spezifisch per Postfix domänenbezogen sein

... zu guter Letzt werden die eigentlichen ISPConfig3 Webseiteneinstellungen davon unberührt bleiben, sodass SuEXEC und Co. weiter vor sich hin frönen könnten ...


----------



## Brainfood (4. Dez. 2012)

Eh noch besser:

wenn Kunden Mailinglisten benutzen wollen, richtet man einfach immer jeweils eine eigene Subdomain-Hierarchie dafür ein ...

*Kunde 1*

DNSseitig:

lists.kundendomain1.tld
A Record
AAAA Record
MX Record
TXT / SPF Record

im ISPConfig3 die Subdomain als Maildomain einrichten ...

... List1 anlegen ...

*Kunde 2*

DNSseitig:

lists.kundendomain2.tld
A Record
AAAA Record
MX Record
TXT / SPF Record

im ISPConfig3 die Subdomain als Maildomain einrichten ...

... Liste 2 anlegen ...

das wars ... Till, oder ist Mailman dafür bekannt bei gleichen Listennamen/jedoch unterschiedlichen Domainnamen herum zu spinnen?


----------



## Till (4. Dez. 2012)

Das sollte so gehen, solange die verwendete Domain nicht als web existiert. Den Hostnamen zu nehmen war ja nur eine Möglichkeit, es geht natürlich auch jede andere beliebige (sub) domain. Das Problem was bleibt ist das default url pattern. Es ergibt für mich wenig Sinn dass Mailman dort immer einen %s Platzhalter verlangt, denn dann kann man nicht mit einer Masterdomain arbeiten. Was man versuchen könnte ist das %s hinter ein # am Ende der URL zu packen, so dass es vom Browser ignoriert wird, so in der Art:

DEFAULT_URL_PATTERN = 'http://http://lists.masterdomain.tld/cgi-bin/mailman/#%s'

Nicht elegant aber es könnte gehen, besser wäre natürlich wenn die Mailman Entwickler einen Patch dafür hätten um das Pattern ohne Platzhalter verwenden zu können.


----------



## Till (4. Dez. 2012)

> Till, oder ist Mailman dafür bekannt bei gleichen Listennamen/jedoch unterschiedlichen Domainnamen herum zu spinnen?


Mailman kennt sowas wie unterschiedliche Domains meines Wissens nach nicht, er geht ausschließlich nach dem Listennamen und der muss eindeutig für den ganzen Server sein und darf kein @ enthalten.


----------



## Soeldner (4. Dez. 2012)

Ich hatte wie gesagt damals auf der Mailman Liste zwecks Virtuellen Domains diskutiert. Essenz war das Script

postfix-to-mailman.py

Eine Anleitung für Fedora:
Mailman, Postfix, Mysql und virtuelle Domains

Diskussion bei Lunchpad bezüglich ISPconfig und Mailman mit diesem Script
https://answers.launchpad.net/mailman/+question/82815
https://answers.launchpad.net/mailman/+question/82816
Sind halt schon älter.

Ich komme wie gesagt nicht vor dem Wochenende zum testen. Ich weiß noch nicht einmal ob das eine generelle Lösung wäre. 
Oftmals enden diese Diskussionen mit dem aufsetzen eines separaten maillist Servers. 

@Brainfood
natürlich auch eine Lösung. Muss man ISPconfig im Kern nicht verbiegen.


----------



## Brainfood (4. Dez. 2012)

Ich habe gerade eben 2 identische Mailinglisten aufgesetzt (samt DNS/Einstellungsgerassel)


```
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-admin@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-bounces@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-confirm@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-join@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-leave@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-owner@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-request@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-subscribe@lists.domain.tld"
Dec  4 19:14:02 srv3 postfix/postmap[19606]: warning: /var/lib/mailman/data/virtual-mailman.db: duplicate entry: "announce-unsubscribe@lists.domain.tld"
```
@Till, wäre es nicht für ISPConfig3 - 3.0.5 & höher sinnvoll, im Interface das anlegen von doppelten Mailinglistennamen zu verbieten?


----------



## Till (5. Dez. 2012)

> @Till, wäre es nicht für ISPConfig3 - 3.0.5 & höher sinnvoll, im Interface das anlegen von doppelten Mailinglistennamen zu verbieten?


Ja, an sich sollte man die nicht doppelt anlegen können da mailman dies nicht unterstützt. Sehe ich mir mal an und hab es im Bugtracker aufgenommen.


----------



## HSorgYves (21. Apr. 2013)

Zitat von Till:


> Das Problem was bleibt ist das default url pattern. Es ergibt für mich wenig Sinn dass Mailman dort immer einen %s Platzhalter verlangt, denn dann kann man nicht mit einer Masterdomain arbeiten. Was man versuchen könnte ist das %s hinter ein # am Ende der URL zu packen, so dass es vom Browser ignoriert wird, so in der Art:
> 
> DEFAULT_URL_PATTERN = 'http://http://lists.masterdomain.tld/cgi-bin/mailman/#%s'
> 
> Nicht elegant aber es könnte gehen, besser wäre natürlich wenn die Mailman Entwickler einen Patch dafür hätten um das Pattern ohne Platzhalter verwenden zu können.


Ich schlage vor ISPConfig um eine Einstellung bzgl. Mailman zu erweitern: die Wahl ob Masterdomain oder Kundenseite.

Im ersten Fall sollte in der /usr/local/ispconfig/server/plugins-available/mailman_plugin.inc.php in der Zeile 76 kein URL_HOST mitgeschickt werden, also anstatt

```
exec("nohup /usr/lib/mailman/bin/newlist -u ".escapeshellcmd($data["new"]["domain"])." -e ".escapeshellcmd($data["new"]["domain"])." ".escapeshellcmd($data["new"]["listname"])." ".escapeshellcmd($data["new"]["email"])." ".escapeshellcmd($data["new"]["password"])." >/dev/null 2>&1 &");
```
sollte das Kommando lauten:

```
exec("nohup /usr/lib/mailman/bin/newlist -e ".escapeshellcmd($data["new"]["domain"])." ".escapeshellcmd($data["new"]["listname"])." ".escapeshellcmd($data["new"]["email"])." ".escapeshellcmd($data["new"]["password"])." >/dev/null 2>&1 &");
```
Dann wird nämlich %s in DEFAULT_URL_PATTERN durch DEFAULT_URL_HOST ersetzt und somit ist es problemlos möglich eine Masterdomain zu nutzen.


----------



## planet_fox (22. Apr. 2013)

Jemand auf der mailman  mailingliste angemeldet ist und des mal dort zur Diskussion stellen könnte ?


----------

