OpenEMM auf Port 80

Standardmässig läuft das Emailmarketingtool OpenEMM auf Port 8080 um nicht mit dem normalen Webserver wie Apache in Konflikt zu geraten. Die normale Installation reicht auch Anfangs. Aber viele Betreiber solcher System finden es nicht schön, dass die Links nicht www.dev-tec.de heißen, sondern www.dev-tec.de:8080, weil bei einer normalen Domain der Browser automatisch weiß, dass er den WWW-Dienst auf Port 80 erreichen kann. Man kann OpenEMM auch anfangs so einrichten, allerdings muss in der anfänglichen SQL-Datei der Port 8080 herausgelöscht werden.

Will man später umsteigen von Port 8080 auf 80, so muss die Firewall angepasst werden, dass alle eingehenden Anfragen von Port 80 auf Port 8080 intern umgemappt werden. Bei Linux ist das mit folgender Zeile möglich, die auch in der offizielen Dokumentation steht. Man sollte sich ein Script schreiben, das die Firewallconfiguration auch beim Bootvorgang startet . Das ganze muss mit Superuser-Rechten passieren:

iptables -A PREROUTING –t nat -i eth+ -p tcp --dport 80 -j REDIRECT --to-port 8080

Allerdings werden manche Rewritings und Weiterleitungen nicht automatisch umgeschrieben, da sie von der Software ausgewertet werden, die vom Port 8080 ausgeht. Dies muss also manuell in der Datenbank geschehen. Die entsprechenden Einträge lassen sich mit folgenden SQL-Befehlen suchen:

SELECT * FROM company_tbl;
SELECT full_url FROM rdir_url_tbl WHERE full_url LIKE "%:8080%";
SELECT dyn_content FROM dyn_content_tbl WHERE dyn_content LIKE "%:8080%";

Die erste Zeile zeigt alle Kunden und  Urls der Installation an. Die zweite Zeile zeigt die dynamischen Adressen und die dritte den dynmischen Inhalt.

Geändert wird es mit den unten stehenden, für die ich keine Garantie übernehme. Besser vorher ein Backup der Datenbank machen.

Als erstes per Console auf die Datenbank verbinden.

mysql -u USER -p

Datenbank auswählen – hier openemm.

use openemm;

Update durchführen.

UPDATE company_tbl SET rdir_domain='http://newsletter.ihre-url.com' WHERE company_id=1;
UPDATE rdir_url_tbl SET full_url=REPLACE(full_url, ':8080', '') WHERE full_url LIKE "%8080%";
UPDATE dyn_content_tbl SET dyn_content=REPLACE(dyn_content, ':8080', '') WHERE dyn_content LIKE "%:8080%";

Ausloggen

exit

Das wars. Jetzt werden die Anfragen korrekt ohne 8080 in der Url angenommen und weitergeleitet.

Comments (2)

MarcoJanuar 6th, 2010 at 4:38 pm

danke für deine hilfe!

MichaelNovember 11th, 2014 at 9:55 am

Da Google bei der Suche nach „OpenEMM auf Port 80“ diesen Post weit oben aufführt, hier eine aktuelle Ergänzung: Bei iptables muss die zu manipulierende Tabelle (unter Ubunut) als Erstes angegeben werden. Die Befehlszeile lautet daher:

iptables –t nat -A PREROUTING -i eth+ -p tcp –dport 80 -j REDIRECT –to-port 8080

Leave a comment

Your comment