<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ara00-wp</id>
	<title>Hostsharing Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ara00-wp"/>
	<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spezial:Beitr%C3%A4ge/Ara00-wp"/>
	<updated>2026-04-25T20:09:24Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Nameserver&amp;diff=5068</id>
		<title>Nameserver</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Nameserver&amp;diff=5068"/>
		<updated>2019-12-11T07:26:53Z</updated>

		<summary type="html">&lt;p&gt;Ara00-wp: /* Bug */ Präzisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Für Domains, die bei Hostsharing registriert sind, gibt es drei redundante Nameserver, die auf Anfrage die Zuordnung Domainname (z.B. www.example.com) -&amp;gt; IP-Adresse (z.B. 1.2.3.4) vornehmen. Diese Nameserver stehen aus Gründen der Zuverlässigkeit und Ausfallsicherheit in drei verschiedenen autonomen Systemen (AS siehe http://de.wikipedia.org/wiki/Autonomes_System) an verschiedenen Standorten. Die Namen dieser Nameserver lauten:&lt;br /&gt;
&lt;br /&gt;
* dns1.hostsharing.net&lt;br /&gt;
* dns2.hostsharing.net&lt;br /&gt;
* dns3.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
Jede Nutzung eines Dienstes (z.B. E-Mail, WWW, FTP, SSH und viele andere) im Internet, die über den Domainnamen des zugehörigen Rechners erfolgt, benötigt einen Nameserver, der die Frage nach der IP-Adresse des Rechners beantwortet.&lt;br /&gt;
&lt;br /&gt;
Ohne Nameserver kann der Dienst natürlich auch erreicht werden, und zwar direkt über seine IP-Adresse. Aber nur die Existenz des Nameservers erlaubt es, den Dienst über seinen Domainnamen aufzurufen.&lt;br /&gt;
&lt;br /&gt;
===Häufige Frage===&lt;br /&gt;
Manchmal werden im Domainbestellsystem Einträge für secondary Domainserver nicht  angenommen. Das könnte daran liegen, dass die nötigen Schritte nicht in der nötigen Reihenfolge abgearbeitet wurden. &lt;br /&gt;
&lt;br /&gt;
Anleitung: [https://doc.hostsharing.net/users/anleitung/domain.html Domain bestellen]&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[Verwalten der Zonendaten]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Zonefile]]&lt;br /&gt;
[[Kategorie:DNS]]&lt;br /&gt;
[[Kategorie:Domains]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Ara00-wp</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=FAQ&amp;diff=5067</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=FAQ&amp;diff=5067"/>
		<updated>2019-12-08T16:51:14Z</updated>

		<summary type="html">&lt;p&gt;Ara00-wp: /* Email */ Schreibweise für eMail, Email zu E-Mail vereinheitlicht&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HSDoku-Links}}&lt;br /&gt;
&lt;br /&gt;
FAQ heißt Frequently Asked Questions - Fragen, die immer wieder gestellt werden. Hier ist der Platz, sie zu beantworten.&lt;br /&gt;
&lt;br /&gt;
== Domains ==&lt;br /&gt;
&lt;br /&gt;
=== Domain bei anderem Provider, Subdomain bei HS und umgekehrt ===&lt;br /&gt;
:Fall A -&amp;gt; Domain example.com bei Anbieter XY&lt;br /&gt;
:Subdomain test.example.com bei Hostsharing&lt;br /&gt;
:Was ist zu tun?&lt;br /&gt;
:* Bei Anbieter XY sollten DNS-Einträge geschaltet werden, damit Hostsharing die Subdomain verwalten kann:&lt;br /&gt;
&lt;br /&gt;
:test.example.com.	IN	NS	dns1.hostsharing.net.&lt;br /&gt;
:test.example.com.	IN	NS	dns2.hostsharing.net.&lt;br /&gt;
:test.example.com.	IN	NS	dns3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
:* Bei Hostsharing kann die Domain test.example.com nun via HSAdmin hinzugefügt werden. Im Domainbestellsystem ist keine Aktion erforderlich, da es sich nicht um eine Domain-Registrierung handelt.&lt;br /&gt;
&lt;br /&gt;
:Welche Voraussetzungen sind zu erfüllen?&lt;br /&gt;
:Anbieter XY muss die entsprechend DNS-Schaltung ermöglichen.&lt;br /&gt;
&lt;br /&gt;
:Welche Kosten fallen an?&lt;br /&gt;
:Bei Hostsharing fallen keine Kosten an, abgesehen vom Webspace- und Traffic-Bedarf des Angebots unter test.example.com.&lt;br /&gt;
&lt;br /&gt;
:Fall B -&amp;gt; Domain example.com bei Hostsharing&lt;br /&gt;
:Subdomain test.example.com bei Anbieter XY&lt;br /&gt;
&lt;br /&gt;
:Was ist zu tun?&lt;br /&gt;
:* Bei Hostsharing sollten über die Zonefile-Verwaltung DNS-Einträge geschaltet werden, so dass der Anbieter XY die Subdomain verwalten kann.&lt;br /&gt;
&lt;br /&gt;
:test.example.com.	IN	NS	&amp;lt;DNS-Server 1 des Anbieters&amp;gt;&lt;br /&gt;
:test.example.com.	IN	NS	&amp;lt;DNS-Server 2 des Anbieters&amp;gt;&lt;br /&gt;
:...&lt;br /&gt;
&lt;br /&gt;
:Die Angaben sind bei dem entsprechenden Anbieter zu erfragen.&lt;br /&gt;
:* Die Subdomain kann anschließend bei bei Anbieter XY geschaltet werden.&lt;br /&gt;
&lt;br /&gt;
:Welche Voraussetzungen sind zu erfüllen?&lt;br /&gt;
:Anbieter XY muss Aufschaltung von Subdomains unterstützen.&lt;br /&gt;
&lt;br /&gt;
:Welche Kosten fallen an?&lt;br /&gt;
:Bei Hostsharing fallen keine Kosten an, abgesehen vom ohnehin zu leistenden Entgelt für die Domain example.com.&lt;br /&gt;
&lt;br /&gt;
=== Wie komme ich an einen Auth Code für eine hier gehostete .com/.de Domain? ===&lt;br /&gt;
&lt;br /&gt;
: Kann im Account des [https://domain-bestellsystem.de  Domain-Bestellsystem ] selbst abgefragt, bzw. erzeugt werden:&lt;br /&gt;
&amp;quot;Auftragsübersicht&amp;quot; wählen, dort die Domain anklicken, unter &amp;quot;Ausführbare Aktionen&amp;quot;. (nicht im KK-Center.)&lt;br /&gt;
&lt;br /&gt;
=== Was sind CNO-Domains? === &lt;br /&gt;
:CNO steht für &amp;quot;COM&amp;quot;, &amp;quot;NET&amp;quot; und &amp;quot;ORG&amp;quot;. Im Gegensatz zu DE-Domains,welche auf &amp;quot;.de&amp;quot; enden (z.B. hostsharing.de), enden CNO - Domains auf &amp;quot;.com&amp;quot;, &amp;quot;.net&amp;quot; oder &amp;quot;.org&amp;quot; (z.B. hostsharing.net).&lt;br /&gt;
:Im Allgemeinen steht .com für ein kommerzielles Angebot und .org für eine nicht kommerzielle Organisation. Die Endung .net wird heute oft genutzt, wenn die entsprechende .com - Domain bereits vergeben ist und ist weit verbreitet.&lt;br /&gt;
&lt;br /&gt;
=== Wie mache ich zwei Domain-Verzeichnisse identisch, die zwei unterschiedlichen usern gehören? ===&lt;br /&gt;
&lt;br /&gt;
:Das ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
=== Wie ändere ich den Domain Admin ? ===&lt;br /&gt;
&lt;br /&gt;
:Als Domainadmin informiere Deinen Paketadmin. &lt;br /&gt;
:Als Paketadmin siehe https://doc.hostsharing.net/users/administration/domain/index.html.&lt;br /&gt;
&lt;br /&gt;
=== Wie ändere Ich Adress-Daten vom Domain Inhaber / Admin? (whois)===&lt;br /&gt;
Im Feb 2010 wurden an alle HS Mitglieder die Zugangsdaten für unser&lt;br /&gt;
[https://domain-bestellsystem.de  Domain-Bestellsystem ] versendet.&lt;br /&gt;
Dort kann auch die gesamte Adresse oder nur Telefon und E-Mail Daten geändert werden.&lt;br /&gt;
Wer diese Zugangsdaten nicht mehr hat kurze E-Mail an service@hostsharing.net&lt;br /&gt;
:Nach der Anmeldung auf Menüpunkt &amp;quot;Handleverwaltung&amp;quot;&lt;br /&gt;
:Dann bei &amp;quot;Suchen&amp;quot; die HandleID und bei im Feld &amp;quot;Handle-ID&amp;quot; auswählen -&amp;gt; Button &amp;quot;suchen&amp;quot;&lt;br /&gt;
:Die aktuelle HandleID über Menü &amp;quot;Auftragsübersicht&amp;quot; und dann auf die &amp;quot;Domain&amp;quot; klicken.&lt;br /&gt;
&lt;br /&gt;
== E-Mail ==&lt;br /&gt;
&lt;br /&gt;
=== Meine E-Mail wurde abgelehnt, obwohl sie kleiner als 128 MB ist ===&lt;br /&gt;
:Du hast nicht bedacht, dass der Anhang durch die Kodierung an Größe zunimmt. Siehe [[Größenbeschränkung von E-Mails]]&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet die Fehlermeldung &amp;lt;strong&amp;gt;554 hop-count exceeded&amp;lt;/strong&amp;gt; in einer E-Mail ? ===&lt;br /&gt;
: Eine E-Mail ist zwischen zwei Adressen weitergeleitet und es entstand eine Weiterleitungsschleife. Im Mailserver gibt es die Einstellung: hopcount_limit = 50. Wenn eine Mail über 50 Emailserver ging, dann wird die gebounced. Damit verhindert man solche Schleifen.&lt;br /&gt;
&lt;br /&gt;
=== Nutzung der E-Mail Postfächer in HS Paketen ===&lt;br /&gt;
:Kann ich E-Mail-Adr deren Domain in einem WEB-Paket ist in einem SW-Paket nutzen?&lt;br /&gt;
&lt;br /&gt;
:Ja, folgende beiden Möglichkeiten gibt es&amp;lt;br /&amp;gt;a) Die Subdomain mail.example.org ins SW legen und per Catch-All von @example.org nach @mail.example.org leiten und dort passende E-Mail-Adressen Postfächer einrichten. (Leichter nachträglich einzurichten.)&amp;lt;br /&amp;gt;b) Die Domain example.org im SW aufschalten und www.example.org im WEB aufschalten. E-Mail dann direkt im SW abhandeln. (Technisch besser.)&lt;br /&gt;
&lt;br /&gt;
=== Eigener Mailserver: status=bounced host mailin[x].hostsharing.net ... said: Relay access denied===&lt;br /&gt;
:Wer einen eigenen Mailserver zum Einliefern von E-Mail benutzt und über die Mailserver von Hostsharing als Relayhost (weiterleitenden Mailserver) senden möchte, liefert die Mail an das Paket xyz.hostsharing.net. Dabei ist unbedingt zu vermeiden, dass der einliefernde Mailserver MX-Lookups macht. Bei Postfix geht das, indem der Relayhost in der Konfiguration eckigen Klammern angegeben wird: relayhost = [xyz01.hostsharing.net]&lt;br /&gt;
:Siehe https://lists.hostsharing.net/archiv/global-announce/2012-October/000566.html&lt;br /&gt;
&lt;br /&gt;
== WWW ==&lt;br /&gt;
&lt;br /&gt;
=== Meine Webseite ist nicht erreichbar ===&lt;br /&gt;
&lt;br /&gt;
: Schau auf http://status.hostsharing.net - da kannst Du sehen, ob es ein Problem auf dem Server von HS gibt. Siehe [[Überwachung der HS-Dienste]]&lt;br /&gt;
&lt;br /&gt;
=== Wieviel Speicherplatz haben meine User in meinem Paket belegt? ===&lt;br /&gt;
&lt;br /&gt;
:siehe [[Speicherbelegung]].&lt;br /&gt;
&lt;br /&gt;
=== kein Verzeichnislisting anzeigen ===&lt;br /&gt;
&lt;br /&gt;
: Am elegantesten erledigt man das mit einer [[.htaccess]] Datei.&lt;br /&gt;
: Eine andere Möglichkeit besteht darin, einfach eine Datei index.html in das Verzeichnis zu legen. Sie kann leer sein oder einen Hinweis der Art: Diese Seite wurde absichtlich leer gelassen enthalten.&lt;br /&gt;
&lt;br /&gt;
=== Wie unterscheide ich, ob ein Script per https angesprochen wurde? ===&lt;br /&gt;
&lt;br /&gt;
:Weil https über einen eigenen Port läuft, ist das recht einfach. Diese php-Abfrage prüft das ab:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$cfgPmaAbsoluteUri = &#039;http&#039;.(($_SERVER[&#039;SERVER_PORT&#039;]==443)?&#039;s&#039;:&#039;&#039;).&#039;://hostsharing.net/&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:und baut entweder ein s in den String ein oder eben nichts (&#039;&#039;). &lt;br /&gt;
:Das Ergebnis ist dann entweder &#039;http://hostsharing.net&#039; oder &#039;https://hostsharing.net&#039;. &lt;br /&gt;
:&lt;br /&gt;
:Mehr auch unter [[.htaccess]] oder ggf auch [[TLS_/_SSL|SSL]] .&lt;br /&gt;
&lt;br /&gt;
=== winscp installiert, bekomme aber anstatt eines Zugriffs nur die Warnung: &amp;quot;Public key packet not received&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
: Dein Programm kann nur/ist auf Protokoll Version 1.5 eingestellt. Du brauchst aber Protokoll Version 2.0.&lt;br /&gt;
&lt;br /&gt;
== Datenbank ==&lt;br /&gt;
&lt;br /&gt;
=== Wie bekomme ich meinen dump in die mysql-Datenbank? ===&lt;br /&gt;
&lt;br /&gt;
:Du kopierst den dump auf den hs Rechner. Egal wohin!&lt;br /&gt;
:Dann:&lt;br /&gt;
&lt;br /&gt;
 mysql -u xyz00_dbuser -p xyz00_dbname &amp;lt; name_des_dumps. &lt;br /&gt;
 Jetzt dein Passwort der Datenbank angeben.&lt;br /&gt;
&lt;br /&gt;
== Host / Server ==&lt;br /&gt;
&lt;br /&gt;
=== Wie heißt auf dem Host das Kommando, welches ...? ===&lt;br /&gt;
=== Haben wir auf unserm Server ein Programm für ... ? ===&lt;br /&gt;
&lt;br /&gt;
:Wie man sowas findet:&lt;br /&gt;
&lt;br /&gt;
:Finde ein möglichst spezielles Stichwort zum Thema (vorzugsweise in englisch):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. auf unserem Server einloggen,&lt;br /&gt;
&lt;br /&gt;
2. apropos stichwort eingeben,&lt;br /&gt;
&lt;br /&gt;
3. für jedes interessant klingende Programm man Programmname eingeben, lesen.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pakete allg. ==&lt;br /&gt;
&lt;br /&gt;
=== Sind für Pakete auch besondere Konfigurationen zu erhalten? ===&lt;br /&gt;
&lt;br /&gt;
Da die Betreuung von Sonderkonfigurationen einen erheblichen Aufwand bedeutet, versuchen wir diese Wünsche entweder in die Standardkonfiguration einzubauen oder zumindest konfigurierbar zu machen. Die Entscheidung treffen in letzter Instanz die Hostmaster.&lt;br /&gt;
&lt;br /&gt;
=== Welche Parameter müssen angegeben werden, wenn über FTP auf ein Paket zugegriffen werden soll? ===&lt;br /&gt;
&lt;br /&gt;
Der Zugriff ist entweder über die IP-Nummer oder dem Domainnamen (z.B. ftp.example.com) möglich. Username und Passwort wurden bei bei der Einrichtung des Paketes mitgeteilt oder selbst vergeben.&lt;br /&gt;
&lt;br /&gt;
Für Windows-Nutzer: &lt;br /&gt;
&lt;br /&gt;
Für die Datenübertragung immer auf Unix einstellen wenn die Option vorhanden ist (z.b. bei WS-FTP). Scripte und Konfigurationsdateien IMMER im ASCII-Modus übertragen! Sonst können sie evtl. nicht richtig verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Generell raten wir von FTP aus Sicherheitsgründen ab.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;/div&gt;</summary>
		<author><name>Ara00-wp</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=FAQ&amp;diff=5066</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=FAQ&amp;diff=5066"/>
		<updated>2019-12-08T16:49:51Z</updated>

		<summary type="html">&lt;p&gt;Ara00-wp: /* Wie ändere Ich Adress-Daten vom Domain Inhaber / Admin? (whois) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HSDoku-Links}}&lt;br /&gt;
&lt;br /&gt;
FAQ heißt Frequently Asked Questions - Fragen, die immer wieder gestellt werden. Hier ist der Platz, sie zu beantworten.&lt;br /&gt;
&lt;br /&gt;
== Domains ==&lt;br /&gt;
&lt;br /&gt;
=== Domain bei anderem Provider, Subdomain bei HS und umgekehrt ===&lt;br /&gt;
:Fall A -&amp;gt; Domain example.com bei Anbieter XY&lt;br /&gt;
:Subdomain test.example.com bei Hostsharing&lt;br /&gt;
:Was ist zu tun?&lt;br /&gt;
:* Bei Anbieter XY sollten DNS-Einträge geschaltet werden, damit Hostsharing die Subdomain verwalten kann:&lt;br /&gt;
&lt;br /&gt;
:test.example.com.	IN	NS	dns1.hostsharing.net.&lt;br /&gt;
:test.example.com.	IN	NS	dns2.hostsharing.net.&lt;br /&gt;
:test.example.com.	IN	NS	dns3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
:* Bei Hostsharing kann die Domain test.example.com nun via HSAdmin hinzugefügt werden. Im Domainbestellsystem ist keine Aktion erforderlich, da es sich nicht um eine Domain-Registrierung handelt.&lt;br /&gt;
&lt;br /&gt;
:Welche Voraussetzungen sind zu erfüllen?&lt;br /&gt;
:Anbieter XY muss die entsprechend DNS-Schaltung ermöglichen.&lt;br /&gt;
&lt;br /&gt;
:Welche Kosten fallen an?&lt;br /&gt;
:Bei Hostsharing fallen keine Kosten an, abgesehen vom Webspace- und Traffic-Bedarf des Angebots unter test.example.com.&lt;br /&gt;
&lt;br /&gt;
:Fall B -&amp;gt; Domain example.com bei Hostsharing&lt;br /&gt;
:Subdomain test.example.com bei Anbieter XY&lt;br /&gt;
&lt;br /&gt;
:Was ist zu tun?&lt;br /&gt;
:* Bei Hostsharing sollten über die Zonefile-Verwaltung DNS-Einträge geschaltet werden, so dass der Anbieter XY die Subdomain verwalten kann.&lt;br /&gt;
&lt;br /&gt;
:test.example.com.	IN	NS	&amp;lt;DNS-Server 1 des Anbieters&amp;gt;&lt;br /&gt;
:test.example.com.	IN	NS	&amp;lt;DNS-Server 2 des Anbieters&amp;gt;&lt;br /&gt;
:...&lt;br /&gt;
&lt;br /&gt;
:Die Angaben sind bei dem entsprechenden Anbieter zu erfragen.&lt;br /&gt;
:* Die Subdomain kann anschließend bei bei Anbieter XY geschaltet werden.&lt;br /&gt;
&lt;br /&gt;
:Welche Voraussetzungen sind zu erfüllen?&lt;br /&gt;
:Anbieter XY muss Aufschaltung von Subdomains unterstützen.&lt;br /&gt;
&lt;br /&gt;
:Welche Kosten fallen an?&lt;br /&gt;
:Bei Hostsharing fallen keine Kosten an, abgesehen vom ohnehin zu leistenden Entgelt für die Domain example.com.&lt;br /&gt;
&lt;br /&gt;
=== Wie komme ich an einen Auth Code für eine hier gehostete .com/.de Domain? ===&lt;br /&gt;
&lt;br /&gt;
: Kann im Account des [https://domain-bestellsystem.de  Domain-Bestellsystem ] selbst abgefragt, bzw. erzeugt werden:&lt;br /&gt;
&amp;quot;Auftragsübersicht&amp;quot; wählen, dort die Domain anklicken, unter &amp;quot;Ausführbare Aktionen&amp;quot;. (nicht im KK-Center.)&lt;br /&gt;
&lt;br /&gt;
=== Was sind CNO-Domains? === &lt;br /&gt;
:CNO steht für &amp;quot;COM&amp;quot;, &amp;quot;NET&amp;quot; und &amp;quot;ORG&amp;quot;. Im Gegensatz zu DE-Domains,welche auf &amp;quot;.de&amp;quot; enden (z.B. hostsharing.de), enden CNO - Domains auf &amp;quot;.com&amp;quot;, &amp;quot;.net&amp;quot; oder &amp;quot;.org&amp;quot; (z.B. hostsharing.net).&lt;br /&gt;
:Im Allgemeinen steht .com für ein kommerzielles Angebot und .org für eine nicht kommerzielle Organisation. Die Endung .net wird heute oft genutzt, wenn die entsprechende .com - Domain bereits vergeben ist und ist weit verbreitet.&lt;br /&gt;
&lt;br /&gt;
=== Wie mache ich zwei Domain-Verzeichnisse identisch, die zwei unterschiedlichen usern gehören? ===&lt;br /&gt;
&lt;br /&gt;
:Das ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
=== Wie ändere ich den Domain Admin ? ===&lt;br /&gt;
&lt;br /&gt;
:Als Domainadmin informiere Deinen Paketadmin. &lt;br /&gt;
:Als Paketadmin siehe https://doc.hostsharing.net/users/administration/domain/index.html.&lt;br /&gt;
&lt;br /&gt;
=== Wie ändere Ich Adress-Daten vom Domain Inhaber / Admin? (whois)===&lt;br /&gt;
Im Feb 2010 wurden an alle HS Mitglieder die Zugangsdaten für unser&lt;br /&gt;
[https://domain-bestellsystem.de  Domain-Bestellsystem ] versendet.&lt;br /&gt;
Dort kann auch die gesamte Adresse oder nur Telefon und E-Mail Daten geändert werden.&lt;br /&gt;
Wer diese Zugangsdaten nicht mehr hat kurze E-Mail an service@hostsharing.net&lt;br /&gt;
:Nach der Anmeldung auf Menüpunkt &amp;quot;Handleverwaltung&amp;quot;&lt;br /&gt;
:Dann bei &amp;quot;Suchen&amp;quot; die HandleID und bei im Feld &amp;quot;Handle-ID&amp;quot; auswählen -&amp;gt; Button &amp;quot;suchen&amp;quot;&lt;br /&gt;
:Die aktuelle HandleID über Menü &amp;quot;Auftragsübersicht&amp;quot; und dann auf die &amp;quot;Domain&amp;quot; klicken.&lt;br /&gt;
&lt;br /&gt;
== Email ==&lt;br /&gt;
&lt;br /&gt;
=== Meine Email wurde abgelehnt, obwohl sie kleiner als 128 MB ist ===&lt;br /&gt;
:Du hast nicht bedacht, dass der Anhang durch die Kodierung an Größe zunimmt. Siehe [[Größenbeschränkung von E-Mails]]&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet die Fehlermeldung &amp;lt;strong&amp;gt;554 hop-count exceeded&amp;lt;/strong&amp;gt; in einer E-Mail ? ===&lt;br /&gt;
: Eine Mail ist zwischen zwei Adressen weitergeleitet und es entstand eine Weiterleitungsschleife. Im Mailserver gibt es die Einstellung: hopcount_limit = 50. Wenn eine Mail über 50 Emailserver ging, dann wird die gebounced. Damit verhindert man solche Schleifen.&lt;br /&gt;
&lt;br /&gt;
=== Nutzung der E-Mail Postfächer in HS Paketen ===&lt;br /&gt;
:Kann ich E-Mail-Adr deren Domain in einem WEB-Paket ist in einem SW-Paket nutzen?&lt;br /&gt;
&lt;br /&gt;
:Ja, folgende beiden Möglichkeiten gibt es&amp;lt;br /&amp;gt;a) Die Subdomain mail.example.org ins SW legen und per Catch-All von @example.org nach @mail.example.org leiten und dort passende E-Mail-Adressen Postfächer einrichten. (Leichter nachträglich einzurichten.)&amp;lt;br /&amp;gt;b) Die Domain example.org im SW aufschalten und www.example.org im WEB aufschalten. E-Mail dann direkt im SW abhandeln. (Technisch besser.)&lt;br /&gt;
&lt;br /&gt;
=== Eigener Mailserver: status=bounced host mailin[x].hostsharing.net ... said: Relay access denied===&lt;br /&gt;
:Wer einen eigenen Mailserver zum Einliefern von Mail benutzt und über die Mailserver von Hostsharing als Relayhost (weiterleitenden Mailserver) senden möchte, liefert die Mail an das Paket xyz.hostsharing.net. Dabei ist unbedingt zu vermeiden, dass der einliefernde Mailserver MX-Lookups macht. Bei Postfix geht das, indem der Relayhost in der Konfiguration eckigen Klammern angegeben wird: relayhost = [xyz01.hostsharing.net]&lt;br /&gt;
:Siehe https://lists.hostsharing.net/archiv/global-announce/2012-October/000566.html&lt;br /&gt;
&lt;br /&gt;
== WWW ==&lt;br /&gt;
&lt;br /&gt;
=== Meine Webseite ist nicht erreichbar ===&lt;br /&gt;
&lt;br /&gt;
: Schau auf http://status.hostsharing.net - da kannst Du sehen, ob es ein Problem auf dem Server von HS gibt. Siehe [[Überwachung der HS-Dienste]]&lt;br /&gt;
&lt;br /&gt;
=== Wieviel Speicherplatz haben meine User in meinem Paket belegt? ===&lt;br /&gt;
&lt;br /&gt;
:siehe [[Speicherbelegung]].&lt;br /&gt;
&lt;br /&gt;
=== kein Verzeichnislisting anzeigen ===&lt;br /&gt;
&lt;br /&gt;
: Am elegantesten erledigt man das mit einer [[.htaccess]] Datei.&lt;br /&gt;
: Eine andere Möglichkeit besteht darin, einfach eine Datei index.html in das Verzeichnis zu legen. Sie kann leer sein oder einen Hinweis der Art: Diese Seite wurde absichtlich leer gelassen enthalten.&lt;br /&gt;
&lt;br /&gt;
=== Wie unterscheide ich, ob ein Script per https angesprochen wurde? ===&lt;br /&gt;
&lt;br /&gt;
:Weil https über einen eigenen Port läuft, ist das recht einfach. Diese php-Abfrage prüft das ab:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$cfgPmaAbsoluteUri = &#039;http&#039;.(($_SERVER[&#039;SERVER_PORT&#039;]==443)?&#039;s&#039;:&#039;&#039;).&#039;://hostsharing.net/&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:und baut entweder ein s in den String ein oder eben nichts (&#039;&#039;). &lt;br /&gt;
:Das Ergebnis ist dann entweder &#039;http://hostsharing.net&#039; oder &#039;https://hostsharing.net&#039;. &lt;br /&gt;
:&lt;br /&gt;
:Mehr auch unter [[.htaccess]] oder ggf auch [[TLS_/_SSL|SSL]] .&lt;br /&gt;
&lt;br /&gt;
=== winscp installiert, bekomme aber anstatt eines Zugriffs nur die Warnung: &amp;quot;Public key packet not received&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
: Dein Programm kann nur/ist auf Protokoll Version 1.5 eingestellt. Du brauchst aber Protokoll Version 2.0.&lt;br /&gt;
&lt;br /&gt;
== Datenbank ==&lt;br /&gt;
&lt;br /&gt;
=== Wie bekomme ich meinen dump in die mysql-Datenbank? ===&lt;br /&gt;
&lt;br /&gt;
:Du kopierst den dump auf den hs Rechner. Egal wohin!&lt;br /&gt;
:Dann:&lt;br /&gt;
&lt;br /&gt;
 mysql -u xyz00_dbuser -p xyz00_dbname &amp;lt; name_des_dumps. &lt;br /&gt;
 Jetzt dein Passwort der Datenbank angeben.&lt;br /&gt;
&lt;br /&gt;
== Host / Server ==&lt;br /&gt;
&lt;br /&gt;
=== Wie heißt auf dem Host das Kommando, welches ...? ===&lt;br /&gt;
=== Haben wir auf unserm Server ein Programm für ... ? ===&lt;br /&gt;
&lt;br /&gt;
:Wie man sowas findet:&lt;br /&gt;
&lt;br /&gt;
:Finde ein möglichst spezielles Stichwort zum Thema (vorzugsweise in englisch):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. auf unserem Server einloggen,&lt;br /&gt;
&lt;br /&gt;
2. apropos stichwort eingeben,&lt;br /&gt;
&lt;br /&gt;
3. für jedes interessant klingende Programm man Programmname eingeben, lesen.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pakete allg. ==&lt;br /&gt;
&lt;br /&gt;
=== Sind für Pakete auch besondere Konfigurationen zu erhalten? ===&lt;br /&gt;
&lt;br /&gt;
Da die Betreuung von Sonderkonfigurationen einen erheblichen Aufwand bedeutet, versuchen wir diese Wünsche entweder in die Standardkonfiguration einzubauen oder zumindest konfigurierbar zu machen. Die Entscheidung treffen in letzter Instanz die Hostmaster.&lt;br /&gt;
&lt;br /&gt;
=== Welche Parameter müssen angegeben werden, wenn über FTP auf ein Paket zugegriffen werden soll? ===&lt;br /&gt;
&lt;br /&gt;
Der Zugriff ist entweder über die IP-Nummer oder dem Domainnamen (z.B. ftp.example.com) möglich. Username und Passwort wurden bei bei der Einrichtung des Paketes mitgeteilt oder selbst vergeben.&lt;br /&gt;
&lt;br /&gt;
Für Windows-Nutzer: &lt;br /&gt;
&lt;br /&gt;
Für die Datenübertragung immer auf Unix einstellen wenn die Option vorhanden ist (z.b. bei WS-FTP). Scripte und Konfigurationsdateien IMMER im ASCII-Modus übertragen! Sonst können sie evtl. nicht richtig verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Generell raten wir von FTP aus Sicherheitsgründen ab.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;/div&gt;</summary>
		<author><name>Ara00-wp</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=DAViCal_installieren&amp;diff=5065</id>
		<title>DAViCal installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=DAViCal_installieren&amp;diff=5065"/>
		<updated>2019-12-08T16:48:38Z</updated>

		<summary type="html">&lt;p&gt;Ara00-wp: /* Beispiel Thunderbird */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Allgemein ==&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
[http://www.davical.org/ DAViCal] ist ein Server für die Verwaltung von Kalendern über das [http://caldav.calconnect.org/ CalDAV-Protokoll]. Die Kalenderdaten können mit allen CalDAV-fähigen Client-Programmen gelesen und geschrieben werden, z.B. Thunderbird mit [http://www.mozilla.org/projects/calendar/lightning/ Lightning], Evolution, Mulberry, iCal, oder iPhone.&lt;br /&gt;
&lt;br /&gt;
Das CalDAV-Protokoll bietet viele Funktionen, die noch nicht von allen Clients unterstützt werden, darunter Serien, Erinnerungen, Einladungen, Ressourcen, Arbeitsgruppen etc.&lt;br /&gt;
&lt;br /&gt;
DAViCal ist in PHP geschrieben, lizensiert unter GPL.&lt;br /&gt;
&lt;br /&gt;
DAViCal erlaubt auch über das WebDAV-Protokoll Kalender zu lesen, aber nicht zu modifizieren.&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
&lt;br /&gt;
DAViCal erfordert folgende technische Ressourcen:&lt;br /&gt;
* PostgreSQL&lt;br /&gt;
* Webserver mit PHP5&lt;br /&gt;
* Perl für den Installationsvorgang&lt;br /&gt;
* Ein Dateisystem mit erweiterten Attributen.&lt;br /&gt;
&lt;br /&gt;
Die Installations-Anleitung auf der Projekt-Homepage geht davon aus, daß mal als Administrator auf den Server zugreifen kann. Die Anleitung hier beschreibt, wie man konkret DAViCal in der Shared-Hosting-Umgebung bei Hostsharing installiert und betreibt.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Design ===&lt;br /&gt;
&lt;br /&gt;
Diese Installationsanleitung beschreibt, wie DAViCal in einer eigens dafür [[Domainverwaltung#Lokale_Subdomains_durch_Aufschalten.3B_Delegieren|aufgeschalteten Subdomain]] über SSL betrieben wird. Für andere Konfigurationen, wie z.B. die Installation von DAViCal in einer als Unterverzeichnis von &amp;lt;tt&amp;gt;~/doms/&#039;&#039;domain&#039;&#039;/subs/&amp;lt;/tt&amp;gt; erstellten Subdomain, muß dieses Verfahren leicht angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
Der Vorteil einer Installation in einer aufgeschalteten Subdomain ist, daß die Installation leicht von anderen Domaininhalten, PHP-Konfigurationen, oder sogar von anderen Domain-Administratoren, isoliert werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Subdomain aufschalten ===&lt;br /&gt;
&lt;br /&gt;
Im Folgenden werden folgende Domainkonfigurationsdaten als Beispiel verwendet:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe5&amp;quot;&lt;br /&gt;
! Typ                                          !! Wert                                !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| Subdomain || &amp;lt;tt&amp;gt;cal.example.org&amp;lt;/tt&amp;gt;  || Die Subdomain, unter der ein DAViCal-Server laufen soll&lt;br /&gt;
|-&lt;br /&gt;
| Domain-Admin || &amp;lt;tt&amp;gt;xyz00-hans&amp;lt;/tt&amp;gt; || Der User, dem die Subdomain delegiert wurde&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Quellen ===&lt;br /&gt;
&lt;br /&gt;
Neben dem Sourcecode vom eigentlichen DAViCal-Programm wird auch die PHP-Bibliothek [http://andrew.mcmillan.net.nz/projects/awl &#039;&#039;Andrew&#039;s Web Libraries&#039;&#039;] benötigt. Diese stammt vom gleichen Entwickler.&lt;br /&gt;
&lt;br /&gt;
Die jeweils neusten Versionen befinden sich unter:&lt;br /&gt;
* DAViCal: http://debian.mcmillan.net.nz/packages/davical/&lt;br /&gt;
* AWL: http://debian.mcmillan.net.nz/packages/awl/&lt;br /&gt;
&lt;br /&gt;
Hier jeweils die Source-Dateien (&amp;lt;tt&amp;gt;*.tar.gz&amp;lt;/tt&amp;gt;) benutzen.&lt;br /&gt;
&lt;br /&gt;
==== Download ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cd ~/doms/cal.example.org/var&lt;br /&gt;
$ wget http://debian.mcmillan.net.nz/packages/awl/awl-0.53.tar.gz&lt;br /&gt;
$ wget http://debian.mcmillan.net.nz/packages/davical/davical-1.1.1.tar.gz&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Auspacken ====&lt;br /&gt;
&lt;br /&gt;
Um die Dateien für den Betrieb in der Serverumgebung lesbar zu machen, die Dateierzeungsmaske temporär auf 022 setzen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ umask 022&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann die heruntergeladenen Tarballs mit &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; auspacken:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ tar xfvz awl-0.46.tar.gz&lt;br /&gt;
$ tar xfvz davical-0.9.9.4.tar.gz&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann zwei symbolische Links mit den generischen Namen &amp;lt;tt&amp;gt;davical&amp;lt;/tt&amp;gt; und &amp;lt;tt&amp;gt;awl&amp;lt;/tt&amp;gt; erzeugen, die auf die installierten Versionen zeigen (dies erleichtert einen späteren Versionswechsel):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ ln -s  awl-0.53  awl&lt;br /&gt;
$ ln -s  davical-1.1.1  davical&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und zum Schluß die ursprüngliche Dateierzeugungsmaske wiederherstellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ umask 077&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL vorbereiten ===&lt;br /&gt;
&lt;br /&gt;
DAViCal benötigt eine eigene PostgreSQL-Datenbank sowie 2 Datenbanknutzer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DAViCal enthält ein eigenes Installations-Skript, das die erforderlichen Datenbank, Datenbanknutzer, prozedurale Sprache, und Datenbanktabellen anlegt und initialisiert. Dies liegt unter &amp;lt;tt&amp;gt;davical/dba/create-database.sh&amp;lt;/tt&amp;gt;. Allerdings basiert das Skript auf der Annahme, daß man Superuser-Rechte hat, was in der Shared-Hosting-Umgebung nicht der Fall ist. In diesem Abschnitt wird deshalb beschrieben, wie man die entsprechenden Vorgänge in Hostsharing &amp;quot;von Hand&amp;quot; bewerkstelligt.&lt;br /&gt;
&lt;br /&gt;
==== Datenbank und Datenbanknutzer anlegen ====&lt;br /&gt;
&lt;br /&gt;
In dieser Anleitung werden folgende Namen für die Datenbank und deren Nutzer verwendet. Das Paket-Kürzel &amp;lt;tt&amp;gt;xyz00&amp;lt;/tt&amp;gt; ist natürlich durch das des betreffenden Pakets zu ersetzen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe5&amp;quot;&lt;br /&gt;
! Typ                                          !! Wert                                !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| DB-Admin || &amp;lt;tt&amp;gt;xyz00_davical_dba&amp;lt;/tt&amp;gt; || Der PostgreSQL-Nutzer, dem die Datenbank gehört und der administrative Tätigkeiten durchführt.&lt;br /&gt;
|-&lt;br /&gt;
| DB-Nutzer || &amp;lt;tt&amp;gt;xyz00_davical_app&amp;lt;/tt&amp;gt; || Der PostgreSQL-Nutzername, den DAViCal benutzt, um in der Datenbank zu lesen und zu schreiben.&lt;br /&gt;
|-&lt;br /&gt;
| Datenbank || &amp;lt;tt&amp;gt;xyz00_davical&amp;lt;/tt&amp;gt;  || Die PostgreSQL-Datenbank, die DAViCals Daten enthält.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Umgebungsvariablen und PostgreSQL-Paßwort ====&lt;br /&gt;
&lt;br /&gt;
Die Nutzer und die Datenbank können über [[Hsadmin]] angelegt werden. Siehe dazu die Anleitungen auf der Seite [[PostgreSQL]] und [[Datenbanken]]. Diese Schritte müssen ggf. vom Paket-Admin vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ su xyz00&lt;br /&gt;
$ hsadmin -c postgresqluser.add --set:name=xyz00_davical_dba --set:password=geheim&lt;br /&gt;
$ hsadmin -c postgresqluser.add --set:name=xyz00_davical_app --set:password=geheim&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als Besitzer der DAViCal-Datenbank &amp;lt;tt&amp;gt;xyz00_davical_dba&amp;lt;/tt&amp;gt; angeben; als Zeichenkodierung ist das Default &amp;lt;tt&amp;gt;UTF-8&amp;lt;/tt&amp;gt; richtig:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ hsadmin -c postgresqldb.add --set:name=xyz00_davical --set:owner=xyz00_davical_dba&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sowohl für die weitere Installation als auch für den Betrieb des Servers ist es am einfachsten, die Passwörter in eine &amp;lt;tt&amp;gt;[http://www.postgresql.org/docs/9.0/interactive/libpq-pgpass.html .pgpass]&amp;lt;/tt&amp;gt;-Datei zu schreiben: so müssen sie weder in den PHP-Dateien angegeben noch während der Installation manuell eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ echo &amp;quot;localhost:5432:*:xyz00_davical_dba:geheimes_passwort&amp;quot; &amp;gt;&amp;gt; ~/.pgpass&lt;br /&gt;
$ echo &amp;quot;localhost:5432:*:xyz00_davical_app:geheimes_passwort&amp;quot; &amp;gt;&amp;gt; ~/.pgpass&lt;br /&gt;
$ chmod 0600 ~/.pgpass&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur weiteren Bequemlichkeit Umgebungsvariablen setzen, so daß beim Aufruf von &amp;lt;tt&amp;gt;psql&amp;lt;/tt&amp;gt; über die Kommandozeile keine Datenbank- und Nutzernamen eingegeben werden müssen. Diese Angaben gehen mit Beenden der Shell-Sitzung verloren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ PGHOST=localhost &lt;br /&gt;
$ PGUSER=xyz00_davical_dba&lt;br /&gt;
$ PGDATABASE=xyz00_davical &lt;br /&gt;
$ export PGHOST PGUSER PGDATABASE &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== PL/pgSQL installieren ====&lt;br /&gt;
&lt;br /&gt;
In der Datenbank wird die prozedurale Sprache PL/pgSQL benötigt. Diese wird durch den folgenden Befehl angelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ psql -A -c &amp;quot;CREATE LANGUAGE plpgsql;&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Datenbank-Tabellen anlegen und initialisieren ====&lt;br /&gt;
&lt;br /&gt;
Die folgenden Befehle zum Anlegen der Datenbanktabellen können in dieser Form einfach nacheinander ausgeführt werden, wenn wie oben beschrieben die Umgebungsvariablen &amp;lt;tt&amp;gt;PGHOST&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;PGUSER&amp;lt;/tt&amp;gt; und &amp;lt;tt&amp;gt;PGDATABASE&amp;lt;/tt&amp;gt; gesetzt wurden und die &amp;lt;tt&amp;gt;.pgpass&amp;lt;/tt&amp;gt;-Datei geschrieben wurde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ psql -A -f awl/dba/awl-tables.sql&lt;br /&gt;
$ psql -A -f awl/dba/schema-management.sql&lt;br /&gt;
$ psql -A -f davical/dba/davical.sql&lt;br /&gt;
$ ./davical/dba/update-davical-database –dbhost=${PGHOST} –dbuser=${PGUSER} –dbname=${PGDATABASE} --appuser=${PGDATABASE}_app&lt;br /&gt;
$ psql -A -f davical/dba/base-data.sql&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für den DAViCal-Admin muß noch ein Passwort gesetzt werden &amp;amp;ndash; &#039;&amp;lt;tt&amp;gt;**&amp;lt;/tt&amp;gt;&#039; vor dem Passwort ist hier wichtig.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ psql -A -c &amp;quot;UPDATE usr SET password = &#039;**geheim&#039; WHERE user_no = 1;&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
DAViCal wird durch Angaben in der PHP-Datei &amp;lt;tt&amp;gt;davical/config/config.php&amp;lt;/tt&amp;gt; konfiguriert. Der folgende Befehl erzeugt eine Beispiel-Datei; weitere Beispiele befinden sich im Verzeichnis &amp;lt;tt&amp;gt;davical/config/&amp;lt;/tt&amp;gt;. Die Konfigurationsparameter sind im [http://wiki.davical.org/w/Configuration DAViCal-Wiki] beschrieben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cat &amp;gt; davical/config/config.php&lt;br /&gt;
   $c-&amp;gt;pg_connect[] = &amp;quot;dbname=xyz00_davical user=xyz00_davical_app host=localhost&amp;quot;; &lt;br /&gt;
   $c-&amp;gt;use_persistent = true; &lt;br /&gt;
   $c-&amp;gt;sysabbr     = &#039;cal@example.org&#039;; &lt;br /&gt;
   $c-&amp;gt;admin_email = &#039;admin@cal.example.org&#039;; &lt;br /&gt;
   $c-&amp;gt;system_name = &#039;CalDAV Server example.org&#039;; &lt;br /&gt;
   $c-&amp;gt;default_locale = &#039;de_DE&#039;; &lt;br /&gt;
   $c-&amp;gt;template_usr = array( &#039;active&#039; =&amp;gt; true, &lt;br /&gt;
                             &#039;locale&#039; =&amp;gt; &#039;de_DE&#039;, &lt;br /&gt;
                             &#039;date_format_type&#039; =&amp;gt; &#039;E&#039;, &lt;br /&gt;
                             &#039;email_ok&#039; =&amp;gt; date(&#039;Y-m-d&#039;) &lt;br /&gt;
                           ); &lt;br /&gt;
^D&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fast-CGI-Patch ===&lt;br /&gt;
&lt;br /&gt;
Bei der Benutzung von Fast-CGI werden die HTTP_AUTHORIZATION-Zeilen der HTTP-Anfragen  normalerweise nicht weitergeleitet. Dieses Problem wird auch im DAViCal-Wiki in einem entsprechenden [http://wiki.davical.org/w/FastCGI FAQ-Eintrag] behandelt. Die dort angeführte Lösung beruht allerdings wieder einmal auf der Annahme, daß man Superuser-Rechte hat.&lt;br /&gt;
&lt;br /&gt;
In der Shared-Hosting-Umgebung von Hostsharing kann die notwendige Anpassung über eine Rewrite-Anweisung in der &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt;-Datei gemacht werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cd ~/doms/cal.example.org/var/davical/htdocs&lt;br /&gt;
$ cat &amp;gt;&amp;gt; .htaccess&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]&lt;br /&gt;
^D&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Zeit enthält die mit DAViCal mitgelieferte Datei &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt; nur auskommentierte Beispielanweisungen. Für alle Fälle sollte man aber darauf achten, daß man den bestehenden Inhalt von &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt; nicht überschreibt: d.h. die neuen Eingaben mit &amp;lt;tt&amp;gt;&amp;gt;&amp;gt;&amp;lt;/tt&amp;gt; der bestehenden Datei &#039;&#039;&#039;anhängen&#039;&#039;&#039;. Die neue Rewrite-Regel muß die letzte Regel in der &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt; sein. Die Datei muß zudem für Apache lesbar sein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ chmod 0644 .htaccess&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darüberhinaus muß noch die Datei &amp;lt;tt&amp;gt;davical/inc/HTTPAuthSession.php&amp;lt;/tt&amp;gt; angepasst werden. Hier ist die Variable &amp;lt;tt&amp;gt;$_SERVER[&amp;quot;AUTHORIZATION&amp;quot;]&amp;lt;/tt&amp;gt; ersetzt werden durch &amp;lt;tt&amp;gt;$_SERVER[&amp;quot;REDIRECT_HTTP_AUTHORIZATION&amp;quot;]&amp;lt;/tt&amp;gt;. Außerdem gibt es noch einen Bug: Es wird an einer Stelle &amp;lt;tt&amp;gt;split()&amp;lt;/tt&amp;gt; statt &amp;lt;tt&amp;gt;explode&amp;lt;/tt&amp;gt; benutzt. &amp;lt;tt&amp;gt;split()&amp;lt;/tt&amp;gt; ist seit PHP 5.3.0 &#039;&#039;deprecated&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 @@ -101,10 +101,10 @@&lt;br /&gt;
      /**&lt;br /&gt;
      * Get HTTP Auth to work with PHP+FastCGI&lt;br /&gt;
      */&lt;br /&gt;
      if ( !isset($_SERVER[&#039;AUTHORIZATION&#039;]) &amp;amp;&amp;amp; isset($_SERVER[&#039;HTTP_AUTHORIZATION&#039;]) &amp;amp;&amp;amp; !empty($_SERVER[&#039;HTTP_AUTHORIZATION&#039;]))&lt;br /&gt;
        $_SERVER[&#039;AUTHORIZATION&#039;] = $_SERVER[&#039;HTTP_AUTHORIZATION&#039;];&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:lightsalmon&amp;quot;&amp;gt;-    if (isset($_SERVER[&amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AUTHORIZATION&amp;lt;/span&amp;gt;&amp;quot;]) &amp;amp;&amp;amp; !empty($_SERVER[&amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AUTHORIZATION&amp;lt;/span&amp;gt;&amp;quot;])) {&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:lightsalmon&amp;quot;&amp;gt;-      list ($type, $cred) = &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;split&amp;lt;/span&amp;gt; (&amp;quot; &amp;quot;, $_SERVER[&#039;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AUTHORIZATION&amp;lt;/span&amp;gt;&#039;]);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:lightgreen&amp;quot;&amp;gt;+    if (isset($_SERVER[&amp;quot;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;REDIRECT_HTTP_AUTHORIZATION&amp;lt;/span&amp;gt;&amp;quot;]) &amp;amp;&amp;amp; !empty($_SERVER[&amp;quot;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;REDIRECT_HTTP_AUTHORIZATION&amp;lt;/span&amp;gt;&amp;quot;])) {&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:lightgreen&amp;quot;&amp;gt;+      list ($type, $cred) = &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;explode&amp;lt;/span&amp;gt; (&amp;quot; &amp;quot;, $_SERVER[&#039;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;REDIRECT_HTTP_AUTHORIZATION&amp;lt;/span&amp;gt;&#039;]);&amp;lt;/span&amp;gt;&lt;br /&gt;
        if ($type == &#039;Basic&#039;) {&lt;br /&gt;
          list ($user, $pass) = explode (&amp;quot;:&amp;quot;, base64_decode($cred));&lt;br /&gt;
          $_SERVER[&#039;PHP_AUTH_USER&#039;] = $user;                                                                                                    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Webspace aktivieren ===&lt;br /&gt;
&lt;br /&gt;
Schließlich muß die Installation noch mit dem Webspace verknüpft werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cd ~/doms/cal.example.org&lt;br /&gt;
$ rm -r htdocs-ssl&lt;br /&gt;
$ ln -s var/davical/htdocs htdocs-ssl&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:DAViCAl-home.png‎|miniatur|400px|right|Die Login-Seite der DAViCal-Web-Oberfläche]]&lt;br /&gt;
&lt;br /&gt;
Die URL des User-Interfaces lautet jetzt &#039;&#039;&#039;&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://cal.example.org/&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Wenn alles richtig gemacht wurde, erscheint an dieser URL die Login-Seite.&lt;br /&gt;
&lt;br /&gt;
Falls nicht, sorge mit &amp;lt;tt&amp;gt;chmod a+rx var/davical/htdocs&amp;lt;/tt&amp;gt; dafür, daß das Verzeichnis für Apache lesbar ist, und kontrolliere notfalls auch die Rechte der darin befindlichen Dateien.&lt;br /&gt;
&lt;br /&gt;
== Nutzung ==&lt;br /&gt;
&lt;br /&gt;
=== User anlegen und konfigurieren ===&lt;br /&gt;
&lt;br /&gt;
Im User-Interface muß man sich als Admin (oder Nutzer mit Adminrechten) einloggen um neue Nutzer anzulegen.&lt;br /&gt;
&lt;br /&gt;
Um einen neuen Nutzer anzulegen: &#039;&#039;&#039;Menu&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;User Functions&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;Create Principal&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe5&amp;quot;&lt;br /&gt;
! Feld                                          !! Wert                                !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| Principal ID || &#039;&#039;New Principal&#039;&#039;  || Bei neuen Nutzern wird das Feld automatisch beim Anlegen gefüllt&lt;br /&gt;
|-&lt;br /&gt;
| Username || hans || Nutzername für den Kalender. Der Username ist Bestandteil der Kalender-URL&lt;br /&gt;
|-&lt;br /&gt;
| Change Password || geheimespasswort || &lt;br /&gt;
|-&lt;br /&gt;
| Confirm Password || geheimespasswort || &lt;br /&gt;
|-&lt;br /&gt;
| Fullname || Hans Meier || Der Name des Nutzers&lt;br /&gt;
|-&lt;br /&gt;
| Email Address || hans@example.org || Über die E-Mail-Adresse ist der Nutzer für andere Nutzer im System zu finden, z.B. für Einladungen&lt;br /&gt;
|-&lt;br /&gt;
| Locale || Deutsch || &lt;br /&gt;
|-&lt;br /&gt;
| Date Format Style || European || &lt;br /&gt;
|-&lt;br /&gt;
| Principal Type || Person || Üblicherweise Person für einen natürlichen Nutzer (hier können auch Ressourcen und Gruppen angelegt werden)&lt;br /&gt;
|-&lt;br /&gt;
| Administrator || &amp;amp;ndash; || Falls der User Adminrechte bekommen soll&lt;br /&gt;
|-&lt;br /&gt;
| Active || X || Soll der Nutzer aktiv geführt werden?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Beim Anlegen des &#039;&#039;&#039;ersten&#039;&#039;&#039; Nutzers erscheint eine Fehlermeldung: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:lightsalmon&amp;quot;&amp;gt;ERROR: SQL error &amp;quot;23505&amp;quot; - ERROR: duplicate key value violates unique constraint &amp;quot;principal_pkey&amp;quot;&amp;quot; &lt;br /&gt;
 Home calendar added. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies ist ein Bug. Siehe auch [http://lists.morphoss.com/pipermail/davical-dev/2011/000117.html Thread in Dev-Mailingliste].&lt;br /&gt;
&lt;br /&gt;
Zum Umgehen des Bugs einfach den Nutzer nochmal anlegen und dann funktioniert alles ;-)&lt;br /&gt;
&lt;br /&gt;
=== Zugriff über Client-Programme ===&lt;br /&gt;
&lt;br /&gt;
Der Zugriff auf den Kalender erfolgt über die URL: &#039;&#039;&#039;&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://cal.example.org/caldav.php/user/home&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* user = Name des angelegte Nutzers, also z.B. &#039;&#039;&#039;&amp;lt;tt&amp;gt;hans&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* home = Name des angelegten Kalenders; dies ist standardmäßig &#039;&#039;&#039;&amp;lt;tt&amp;gt;home&amp;lt;/tt&amp;gt;&#039;&#039;&#039;. Andere Kalender (&#039;&#039;collection&#039;&#039;) können im User-Interface vom Nutzer angelegt werden, oder durch einen Client, der MKCALENDAR implementiert hat, so z.B. iCal oder Mulberry&lt;br /&gt;
&lt;br /&gt;
==== Beispiel Thunderbird ====&lt;br /&gt;
&lt;br /&gt;
Ist in Thunderbird die Lightning-Erweiterung installiert, dann kann der Kalender folgendermaßen eingerichtet werden:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Menu&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;Datei&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;Neu&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;Kalender&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Auf den Folgenden Seiten ist auszuwählen:&lt;br /&gt;
* &#039;&#039;Im Netzwerk&#039;&#039;&lt;br /&gt;
* &#039;&#039;CalDAV&#039;&#039;&lt;br /&gt;
* Spezifische Angaben&lt;br /&gt;
** Name: z.B. &#039;&#039;hans@example&#039;&#039;&lt;br /&gt;
** Farbe: auswählen in welcher Farbe der Kalender angezeigt werden soll&lt;br /&gt;
** Alarm: ja&lt;br /&gt;
** Email: E-Mail auswählen&lt;br /&gt;
&lt;br /&gt;
Zusätzlich wird es wahrscheinlich noch eine Wahrnung geben, daß das SSL-Zertifikat ungültig ist, da in der Standard Hostsharing Konfiguration das hostsharing-Zertifikat ausgeliefert wird. Dieses muß dann noch importiert und akzeptiert werden.&lt;br /&gt;
&lt;br /&gt;
Thunderbird fragt dann noch nach Nuternamen und Passwort und wenn man erlaubt diese im Programm zu speichern, dann loggt sich Thunderbird zukünfitg selbständig ein.&lt;br /&gt;
&lt;br /&gt;
===== Mehrere Kalender auf gleichem Server =====&lt;br /&gt;
&lt;br /&gt;
Hat man mehrere Kalender auf dem gleichen Server &amp;amp;ndash; also z.B. mehrere User oder für einen User mehrere &#039;&#039;collections&#039;&#039;, dann kann Thunderbird diese nicht unterscheiden. Der Passwort-Manager arbeitet auf Grundlage der Domain. Siehe auch [https://bugzilla.mozilla.org/show_bug.cgi?id=247486 Bugzilla].&lt;br /&gt;
&lt;br /&gt;
Diesen Bug kann man relativ einfach umgehen, indem man weitere Subdomains anlegt, die auf die gleiche Installation verweisen, also z.B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cd /home/doms/example.org/subs-ssl&lt;br /&gt;
$ mkdir cal1&lt;br /&gt;
$ mkdir cal2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und jeweils eine &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt; in die neuen Verzeichnis mit folgendem Inhalt schreibt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteRule ^.htaccess$ - [F]&lt;br /&gt;
RewriteRule ^(.*)$ https://cal.example.org/$1 [P]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nicht vergessen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
chmod 0644 cal1/.htaccess&lt;br /&gt;
chmod 0644 cal2/.htaccess&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hat man z.B. für User &amp;lt;tt&amp;gt;hans&amp;lt;/tt&amp;gt; die Kalender &amp;lt;tt&amp;gt;home&amp;lt;/tt&amp;gt; und &amp;lt;tt&amp;gt;work&amp;lt;/tt&amp;gt; und für User &amp;lt;tt&amp;gt;maria&amp;lt;/tt&amp;gt; den Kalender &amp;lt;tt&amp;gt;home&amp;lt;/tt&amp;gt; und möchte diese aus derselben Thunderbird-Instanz benutzen, können folgende URL&#039;s in Thundebrird konfiguriert werden:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://cal.example.org/caldav.php/hans/home&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://cal1.example.org/caldav.php/hans/work&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://cal2.example.org/caldav.php/maria/home&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== URL Rewriting für kürzere URL&#039;s ==&lt;br /&gt;
&lt;br /&gt;
TODO: .htaccess Beispiel&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
&lt;br /&gt;
* WIKI von DAViCal: http://wiki.davical.org&lt;br /&gt;
** [http://wiki.davical.org/w/CalDAV_Clients CalDAV Clients]&lt;br /&gt;
&lt;br /&gt;
* Alternativen&lt;br /&gt;
** [[RadicaleCalDAVServer]]&lt;br /&gt;
** [[ChandlerServer]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:CalDAV]]&lt;/div&gt;</summary>
		<author><name>Ara00-wp</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=DAViCal_installieren&amp;diff=5064</id>
		<title>DAViCal installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=DAViCal_installieren&amp;diff=5064"/>
		<updated>2019-12-08T16:47:44Z</updated>

		<summary type="html">&lt;p&gt;Ara00-wp: /* User anlegen und konfigurieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Allgemein ==&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
[http://www.davical.org/ DAViCal] ist ein Server für die Verwaltung von Kalendern über das [http://caldav.calconnect.org/ CalDAV-Protokoll]. Die Kalenderdaten können mit allen CalDAV-fähigen Client-Programmen gelesen und geschrieben werden, z.B. Thunderbird mit [http://www.mozilla.org/projects/calendar/lightning/ Lightning], Evolution, Mulberry, iCal, oder iPhone.&lt;br /&gt;
&lt;br /&gt;
Das CalDAV-Protokoll bietet viele Funktionen, die noch nicht von allen Clients unterstützt werden, darunter Serien, Erinnerungen, Einladungen, Ressourcen, Arbeitsgruppen etc.&lt;br /&gt;
&lt;br /&gt;
DAViCal ist in PHP geschrieben, lizensiert unter GPL.&lt;br /&gt;
&lt;br /&gt;
DAViCal erlaubt auch über das WebDAV-Protokoll Kalender zu lesen, aber nicht zu modifizieren.&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
&lt;br /&gt;
DAViCal erfordert folgende technische Ressourcen:&lt;br /&gt;
* PostgreSQL&lt;br /&gt;
* Webserver mit PHP5&lt;br /&gt;
* Perl für den Installationsvorgang&lt;br /&gt;
* Ein Dateisystem mit erweiterten Attributen.&lt;br /&gt;
&lt;br /&gt;
Die Installations-Anleitung auf der Projekt-Homepage geht davon aus, daß mal als Administrator auf den Server zugreifen kann. Die Anleitung hier beschreibt, wie man konkret DAViCal in der Shared-Hosting-Umgebung bei Hostsharing installiert und betreibt.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Design ===&lt;br /&gt;
&lt;br /&gt;
Diese Installationsanleitung beschreibt, wie DAViCal in einer eigens dafür [[Domainverwaltung#Lokale_Subdomains_durch_Aufschalten.3B_Delegieren|aufgeschalteten Subdomain]] über SSL betrieben wird. Für andere Konfigurationen, wie z.B. die Installation von DAViCal in einer als Unterverzeichnis von &amp;lt;tt&amp;gt;~/doms/&#039;&#039;domain&#039;&#039;/subs/&amp;lt;/tt&amp;gt; erstellten Subdomain, muß dieses Verfahren leicht angepaßt werden.&lt;br /&gt;
&lt;br /&gt;
Der Vorteil einer Installation in einer aufgeschalteten Subdomain ist, daß die Installation leicht von anderen Domaininhalten, PHP-Konfigurationen, oder sogar von anderen Domain-Administratoren, isoliert werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Subdomain aufschalten ===&lt;br /&gt;
&lt;br /&gt;
Im Folgenden werden folgende Domainkonfigurationsdaten als Beispiel verwendet:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe5&amp;quot;&lt;br /&gt;
! Typ                                          !! Wert                                !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| Subdomain || &amp;lt;tt&amp;gt;cal.example.org&amp;lt;/tt&amp;gt;  || Die Subdomain, unter der ein DAViCal-Server laufen soll&lt;br /&gt;
|-&lt;br /&gt;
| Domain-Admin || &amp;lt;tt&amp;gt;xyz00-hans&amp;lt;/tt&amp;gt; || Der User, dem die Subdomain delegiert wurde&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Quellen ===&lt;br /&gt;
&lt;br /&gt;
Neben dem Sourcecode vom eigentlichen DAViCal-Programm wird auch die PHP-Bibliothek [http://andrew.mcmillan.net.nz/projects/awl &#039;&#039;Andrew&#039;s Web Libraries&#039;&#039;] benötigt. Diese stammt vom gleichen Entwickler.&lt;br /&gt;
&lt;br /&gt;
Die jeweils neusten Versionen befinden sich unter:&lt;br /&gt;
* DAViCal: http://debian.mcmillan.net.nz/packages/davical/&lt;br /&gt;
* AWL: http://debian.mcmillan.net.nz/packages/awl/&lt;br /&gt;
&lt;br /&gt;
Hier jeweils die Source-Dateien (&amp;lt;tt&amp;gt;*.tar.gz&amp;lt;/tt&amp;gt;) benutzen.&lt;br /&gt;
&lt;br /&gt;
==== Download ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cd ~/doms/cal.example.org/var&lt;br /&gt;
$ wget http://debian.mcmillan.net.nz/packages/awl/awl-0.53.tar.gz&lt;br /&gt;
$ wget http://debian.mcmillan.net.nz/packages/davical/davical-1.1.1.tar.gz&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Auspacken ====&lt;br /&gt;
&lt;br /&gt;
Um die Dateien für den Betrieb in der Serverumgebung lesbar zu machen, die Dateierzeungsmaske temporär auf 022 setzen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ umask 022&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann die heruntergeladenen Tarballs mit &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; auspacken:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ tar xfvz awl-0.46.tar.gz&lt;br /&gt;
$ tar xfvz davical-0.9.9.4.tar.gz&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann zwei symbolische Links mit den generischen Namen &amp;lt;tt&amp;gt;davical&amp;lt;/tt&amp;gt; und &amp;lt;tt&amp;gt;awl&amp;lt;/tt&amp;gt; erzeugen, die auf die installierten Versionen zeigen (dies erleichtert einen späteren Versionswechsel):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ ln -s  awl-0.53  awl&lt;br /&gt;
$ ln -s  davical-1.1.1  davical&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und zum Schluß die ursprüngliche Dateierzeugungsmaske wiederherstellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ umask 077&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL vorbereiten ===&lt;br /&gt;
&lt;br /&gt;
DAViCal benötigt eine eigene PostgreSQL-Datenbank sowie 2 Datenbanknutzer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DAViCal enthält ein eigenes Installations-Skript, das die erforderlichen Datenbank, Datenbanknutzer, prozedurale Sprache, und Datenbanktabellen anlegt und initialisiert. Dies liegt unter &amp;lt;tt&amp;gt;davical/dba/create-database.sh&amp;lt;/tt&amp;gt;. Allerdings basiert das Skript auf der Annahme, daß man Superuser-Rechte hat, was in der Shared-Hosting-Umgebung nicht der Fall ist. In diesem Abschnitt wird deshalb beschrieben, wie man die entsprechenden Vorgänge in Hostsharing &amp;quot;von Hand&amp;quot; bewerkstelligt.&lt;br /&gt;
&lt;br /&gt;
==== Datenbank und Datenbanknutzer anlegen ====&lt;br /&gt;
&lt;br /&gt;
In dieser Anleitung werden folgende Namen für die Datenbank und deren Nutzer verwendet. Das Paket-Kürzel &amp;lt;tt&amp;gt;xyz00&amp;lt;/tt&amp;gt; ist natürlich durch das des betreffenden Pakets zu ersetzen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe5&amp;quot;&lt;br /&gt;
! Typ                                          !! Wert                                !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| DB-Admin || &amp;lt;tt&amp;gt;xyz00_davical_dba&amp;lt;/tt&amp;gt; || Der PostgreSQL-Nutzer, dem die Datenbank gehört und der administrative Tätigkeiten durchführt.&lt;br /&gt;
|-&lt;br /&gt;
| DB-Nutzer || &amp;lt;tt&amp;gt;xyz00_davical_app&amp;lt;/tt&amp;gt; || Der PostgreSQL-Nutzername, den DAViCal benutzt, um in der Datenbank zu lesen und zu schreiben.&lt;br /&gt;
|-&lt;br /&gt;
| Datenbank || &amp;lt;tt&amp;gt;xyz00_davical&amp;lt;/tt&amp;gt;  || Die PostgreSQL-Datenbank, die DAViCals Daten enthält.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Umgebungsvariablen und PostgreSQL-Paßwort ====&lt;br /&gt;
&lt;br /&gt;
Die Nutzer und die Datenbank können über [[Hsadmin]] angelegt werden. Siehe dazu die Anleitungen auf der Seite [[PostgreSQL]] und [[Datenbanken]]. Diese Schritte müssen ggf. vom Paket-Admin vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ su xyz00&lt;br /&gt;
$ hsadmin -c postgresqluser.add --set:name=xyz00_davical_dba --set:password=geheim&lt;br /&gt;
$ hsadmin -c postgresqluser.add --set:name=xyz00_davical_app --set:password=geheim&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als Besitzer der DAViCal-Datenbank &amp;lt;tt&amp;gt;xyz00_davical_dba&amp;lt;/tt&amp;gt; angeben; als Zeichenkodierung ist das Default &amp;lt;tt&amp;gt;UTF-8&amp;lt;/tt&amp;gt; richtig:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ hsadmin -c postgresqldb.add --set:name=xyz00_davical --set:owner=xyz00_davical_dba&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sowohl für die weitere Installation als auch für den Betrieb des Servers ist es am einfachsten, die Passwörter in eine &amp;lt;tt&amp;gt;[http://www.postgresql.org/docs/9.0/interactive/libpq-pgpass.html .pgpass]&amp;lt;/tt&amp;gt;-Datei zu schreiben: so müssen sie weder in den PHP-Dateien angegeben noch während der Installation manuell eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ echo &amp;quot;localhost:5432:*:xyz00_davical_dba:geheimes_passwort&amp;quot; &amp;gt;&amp;gt; ~/.pgpass&lt;br /&gt;
$ echo &amp;quot;localhost:5432:*:xyz00_davical_app:geheimes_passwort&amp;quot; &amp;gt;&amp;gt; ~/.pgpass&lt;br /&gt;
$ chmod 0600 ~/.pgpass&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur weiteren Bequemlichkeit Umgebungsvariablen setzen, so daß beim Aufruf von &amp;lt;tt&amp;gt;psql&amp;lt;/tt&amp;gt; über die Kommandozeile keine Datenbank- und Nutzernamen eingegeben werden müssen. Diese Angaben gehen mit Beenden der Shell-Sitzung verloren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ PGHOST=localhost &lt;br /&gt;
$ PGUSER=xyz00_davical_dba&lt;br /&gt;
$ PGDATABASE=xyz00_davical &lt;br /&gt;
$ export PGHOST PGUSER PGDATABASE &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== PL/pgSQL installieren ====&lt;br /&gt;
&lt;br /&gt;
In der Datenbank wird die prozedurale Sprache PL/pgSQL benötigt. Diese wird durch den folgenden Befehl angelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ psql -A -c &amp;quot;CREATE LANGUAGE plpgsql;&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Datenbank-Tabellen anlegen und initialisieren ====&lt;br /&gt;
&lt;br /&gt;
Die folgenden Befehle zum Anlegen der Datenbanktabellen können in dieser Form einfach nacheinander ausgeführt werden, wenn wie oben beschrieben die Umgebungsvariablen &amp;lt;tt&amp;gt;PGHOST&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;PGUSER&amp;lt;/tt&amp;gt; und &amp;lt;tt&amp;gt;PGDATABASE&amp;lt;/tt&amp;gt; gesetzt wurden und die &amp;lt;tt&amp;gt;.pgpass&amp;lt;/tt&amp;gt;-Datei geschrieben wurde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ psql -A -f awl/dba/awl-tables.sql&lt;br /&gt;
$ psql -A -f awl/dba/schema-management.sql&lt;br /&gt;
$ psql -A -f davical/dba/davical.sql&lt;br /&gt;
$ ./davical/dba/update-davical-database –dbhost=${PGHOST} –dbuser=${PGUSER} –dbname=${PGDATABASE} --appuser=${PGDATABASE}_app&lt;br /&gt;
$ psql -A -f davical/dba/base-data.sql&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für den DAViCal-Admin muß noch ein Passwort gesetzt werden &amp;amp;ndash; &#039;&amp;lt;tt&amp;gt;**&amp;lt;/tt&amp;gt;&#039; vor dem Passwort ist hier wichtig.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ psql -A -c &amp;quot;UPDATE usr SET password = &#039;**geheim&#039; WHERE user_no = 1;&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
DAViCal wird durch Angaben in der PHP-Datei &amp;lt;tt&amp;gt;davical/config/config.php&amp;lt;/tt&amp;gt; konfiguriert. Der folgende Befehl erzeugt eine Beispiel-Datei; weitere Beispiele befinden sich im Verzeichnis &amp;lt;tt&amp;gt;davical/config/&amp;lt;/tt&amp;gt;. Die Konfigurationsparameter sind im [http://wiki.davical.org/w/Configuration DAViCal-Wiki] beschrieben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cat &amp;gt; davical/config/config.php&lt;br /&gt;
   $c-&amp;gt;pg_connect[] = &amp;quot;dbname=xyz00_davical user=xyz00_davical_app host=localhost&amp;quot;; &lt;br /&gt;
   $c-&amp;gt;use_persistent = true; &lt;br /&gt;
   $c-&amp;gt;sysabbr     = &#039;cal@example.org&#039;; &lt;br /&gt;
   $c-&amp;gt;admin_email = &#039;admin@cal.example.org&#039;; &lt;br /&gt;
   $c-&amp;gt;system_name = &#039;CalDAV Server example.org&#039;; &lt;br /&gt;
   $c-&amp;gt;default_locale = &#039;de_DE&#039;; &lt;br /&gt;
   $c-&amp;gt;template_usr = array( &#039;active&#039; =&amp;gt; true, &lt;br /&gt;
                             &#039;locale&#039; =&amp;gt; &#039;de_DE&#039;, &lt;br /&gt;
                             &#039;date_format_type&#039; =&amp;gt; &#039;E&#039;, &lt;br /&gt;
                             &#039;email_ok&#039; =&amp;gt; date(&#039;Y-m-d&#039;) &lt;br /&gt;
                           ); &lt;br /&gt;
^D&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fast-CGI-Patch ===&lt;br /&gt;
&lt;br /&gt;
Bei der Benutzung von Fast-CGI werden die HTTP_AUTHORIZATION-Zeilen der HTTP-Anfragen  normalerweise nicht weitergeleitet. Dieses Problem wird auch im DAViCal-Wiki in einem entsprechenden [http://wiki.davical.org/w/FastCGI FAQ-Eintrag] behandelt. Die dort angeführte Lösung beruht allerdings wieder einmal auf der Annahme, daß man Superuser-Rechte hat.&lt;br /&gt;
&lt;br /&gt;
In der Shared-Hosting-Umgebung von Hostsharing kann die notwendige Anpassung über eine Rewrite-Anweisung in der &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt;-Datei gemacht werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cd ~/doms/cal.example.org/var/davical/htdocs&lt;br /&gt;
$ cat &amp;gt;&amp;gt; .htaccess&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]&lt;br /&gt;
^D&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Zeit enthält die mit DAViCal mitgelieferte Datei &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt; nur auskommentierte Beispielanweisungen. Für alle Fälle sollte man aber darauf achten, daß man den bestehenden Inhalt von &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt; nicht überschreibt: d.h. die neuen Eingaben mit &amp;lt;tt&amp;gt;&amp;gt;&amp;gt;&amp;lt;/tt&amp;gt; der bestehenden Datei &#039;&#039;&#039;anhängen&#039;&#039;&#039;. Die neue Rewrite-Regel muß die letzte Regel in der &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt; sein. Die Datei muß zudem für Apache lesbar sein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ chmod 0644 .htaccess&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darüberhinaus muß noch die Datei &amp;lt;tt&amp;gt;davical/inc/HTTPAuthSession.php&amp;lt;/tt&amp;gt; angepasst werden. Hier ist die Variable &amp;lt;tt&amp;gt;$_SERVER[&amp;quot;AUTHORIZATION&amp;quot;]&amp;lt;/tt&amp;gt; ersetzt werden durch &amp;lt;tt&amp;gt;$_SERVER[&amp;quot;REDIRECT_HTTP_AUTHORIZATION&amp;quot;]&amp;lt;/tt&amp;gt;. Außerdem gibt es noch einen Bug: Es wird an einer Stelle &amp;lt;tt&amp;gt;split()&amp;lt;/tt&amp;gt; statt &amp;lt;tt&amp;gt;explode&amp;lt;/tt&amp;gt; benutzt. &amp;lt;tt&amp;gt;split()&amp;lt;/tt&amp;gt; ist seit PHP 5.3.0 &#039;&#039;deprecated&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 @@ -101,10 +101,10 @@&lt;br /&gt;
      /**&lt;br /&gt;
      * Get HTTP Auth to work with PHP+FastCGI&lt;br /&gt;
      */&lt;br /&gt;
      if ( !isset($_SERVER[&#039;AUTHORIZATION&#039;]) &amp;amp;&amp;amp; isset($_SERVER[&#039;HTTP_AUTHORIZATION&#039;]) &amp;amp;&amp;amp; !empty($_SERVER[&#039;HTTP_AUTHORIZATION&#039;]))&lt;br /&gt;
        $_SERVER[&#039;AUTHORIZATION&#039;] = $_SERVER[&#039;HTTP_AUTHORIZATION&#039;];&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:lightsalmon&amp;quot;&amp;gt;-    if (isset($_SERVER[&amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AUTHORIZATION&amp;lt;/span&amp;gt;&amp;quot;]) &amp;amp;&amp;amp; !empty($_SERVER[&amp;quot;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AUTHORIZATION&amp;lt;/span&amp;gt;&amp;quot;])) {&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:lightsalmon&amp;quot;&amp;gt;-      list ($type, $cred) = &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;split&amp;lt;/span&amp;gt; (&amp;quot; &amp;quot;, $_SERVER[&#039;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AUTHORIZATION&amp;lt;/span&amp;gt;&#039;]);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:lightgreen&amp;quot;&amp;gt;+    if (isset($_SERVER[&amp;quot;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;REDIRECT_HTTP_AUTHORIZATION&amp;lt;/span&amp;gt;&amp;quot;]) &amp;amp;&amp;amp; !empty($_SERVER[&amp;quot;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;REDIRECT_HTTP_AUTHORIZATION&amp;lt;/span&amp;gt;&amp;quot;])) {&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:lightgreen&amp;quot;&amp;gt;+      list ($type, $cred) = &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;explode&amp;lt;/span&amp;gt; (&amp;quot; &amp;quot;, $_SERVER[&#039;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;REDIRECT_HTTP_AUTHORIZATION&amp;lt;/span&amp;gt;&#039;]);&amp;lt;/span&amp;gt;&lt;br /&gt;
        if ($type == &#039;Basic&#039;) {&lt;br /&gt;
          list ($user, $pass) = explode (&amp;quot;:&amp;quot;, base64_decode($cred));&lt;br /&gt;
          $_SERVER[&#039;PHP_AUTH_USER&#039;] = $user;                                                                                                    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Webspace aktivieren ===&lt;br /&gt;
&lt;br /&gt;
Schließlich muß die Installation noch mit dem Webspace verknüpft werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cd ~/doms/cal.example.org&lt;br /&gt;
$ rm -r htdocs-ssl&lt;br /&gt;
$ ln -s var/davical/htdocs htdocs-ssl&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:DAViCAl-home.png‎|miniatur|400px|right|Die Login-Seite der DAViCal-Web-Oberfläche]]&lt;br /&gt;
&lt;br /&gt;
Die URL des User-Interfaces lautet jetzt &#039;&#039;&#039;&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://cal.example.org/&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Wenn alles richtig gemacht wurde, erscheint an dieser URL die Login-Seite.&lt;br /&gt;
&lt;br /&gt;
Falls nicht, sorge mit &amp;lt;tt&amp;gt;chmod a+rx var/davical/htdocs&amp;lt;/tt&amp;gt; dafür, daß das Verzeichnis für Apache lesbar ist, und kontrolliere notfalls auch die Rechte der darin befindlichen Dateien.&lt;br /&gt;
&lt;br /&gt;
== Nutzung ==&lt;br /&gt;
&lt;br /&gt;
=== User anlegen und konfigurieren ===&lt;br /&gt;
&lt;br /&gt;
Im User-Interface muß man sich als Admin (oder Nutzer mit Adminrechten) einloggen um neue Nutzer anzulegen.&lt;br /&gt;
&lt;br /&gt;
Um einen neuen Nutzer anzulegen: &#039;&#039;&#039;Menu&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;User Functions&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;Create Principal&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe5&amp;quot;&lt;br /&gt;
! Feld                                          !! Wert                                !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| Principal ID || &#039;&#039;New Principal&#039;&#039;  || Bei neuen Nutzern wird das Feld automatisch beim Anlegen gefüllt&lt;br /&gt;
|-&lt;br /&gt;
| Username || hans || Nutzername für den Kalender. Der Username ist Bestandteil der Kalender-URL&lt;br /&gt;
|-&lt;br /&gt;
| Change Password || geheimespasswort || &lt;br /&gt;
|-&lt;br /&gt;
| Confirm Password || geheimespasswort || &lt;br /&gt;
|-&lt;br /&gt;
| Fullname || Hans Meier || Der Name des Nutzers&lt;br /&gt;
|-&lt;br /&gt;
| Email Address || hans@example.org || Über die E-Mail-Adresse ist der Nutzer für andere Nutzer im System zu finden, z.B. für Einladungen&lt;br /&gt;
|-&lt;br /&gt;
| Locale || Deutsch || &lt;br /&gt;
|-&lt;br /&gt;
| Date Format Style || European || &lt;br /&gt;
|-&lt;br /&gt;
| Principal Type || Person || Üblicherweise Person für einen natürlichen Nutzer (hier können auch Ressourcen und Gruppen angelegt werden)&lt;br /&gt;
|-&lt;br /&gt;
| Administrator || &amp;amp;ndash; || Falls der User Adminrechte bekommen soll&lt;br /&gt;
|-&lt;br /&gt;
| Active || X || Soll der Nutzer aktiv geführt werden?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Beim Anlegen des &#039;&#039;&#039;ersten&#039;&#039;&#039; Nutzers erscheint eine Fehlermeldung: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:lightsalmon&amp;quot;&amp;gt;ERROR: SQL error &amp;quot;23505&amp;quot; - ERROR: duplicate key value violates unique constraint &amp;quot;principal_pkey&amp;quot;&amp;quot; &lt;br /&gt;
 Home calendar added. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies ist ein Bug. Siehe auch [http://lists.morphoss.com/pipermail/davical-dev/2011/000117.html Thread in Dev-Mailingliste].&lt;br /&gt;
&lt;br /&gt;
Zum Umgehen des Bugs einfach den Nutzer nochmal anlegen und dann funktioniert alles ;-)&lt;br /&gt;
&lt;br /&gt;
=== Zugriff über Client-Programme ===&lt;br /&gt;
&lt;br /&gt;
Der Zugriff auf den Kalender erfolgt über die URL: &#039;&#039;&#039;&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://cal.example.org/caldav.php/user/home&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* user = Name des angelegte Nutzers, also z.B. &#039;&#039;&#039;&amp;lt;tt&amp;gt;hans&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* home = Name des angelegten Kalenders; dies ist standardmäßig &#039;&#039;&#039;&amp;lt;tt&amp;gt;home&amp;lt;/tt&amp;gt;&#039;&#039;&#039;. Andere Kalender (&#039;&#039;collection&#039;&#039;) können im User-Interface vom Nutzer angelegt werden, oder durch einen Client, der MKCALENDAR implementiert hat, so z.B. iCal oder Mulberry&lt;br /&gt;
&lt;br /&gt;
==== Beispiel Thunderbird ====&lt;br /&gt;
&lt;br /&gt;
Ist in Thunderbird die Lightning-Erweiterung installiert, dann kann der Kalender folgendermaßen eingerichtet werden:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Menu&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;Datei&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;Neu&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;Kalender&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Auf den Folgenden Seiten ist auszuwählen:&lt;br /&gt;
* &#039;&#039;Im Netzwerk&#039;&#039;&lt;br /&gt;
* &#039;&#039;CalDAV&#039;&#039;&lt;br /&gt;
* Spezifische Angaben&lt;br /&gt;
** Name, z.B. &#039;&#039;hans@example&#039;&#039;&lt;br /&gt;
** Farbe: auswählen in welcher Farbe der Kalender angezeigt werden soll&lt;br /&gt;
** Alarm: ja&lt;br /&gt;
** Email: Email auswählen&lt;br /&gt;
&lt;br /&gt;
Zusätzlich wird es wahrscheinlich noch eine Wahrnung geben, daß das SSL-Zertifikat ungültig ist, da in der Standard Hostsharing Konfiguration das hostsharing-Zertifikat ausgeliefert wird. Dieses muß dann noch importiert und akzeptiert werden.&lt;br /&gt;
&lt;br /&gt;
Thunderbird fragt dann noch nach Nuternamen und Passwort und wenn man erlaubt diese im Programm zu speichern, dann loggt sich Thunderbird zukünfitg selbständig ein.&lt;br /&gt;
&lt;br /&gt;
===== Mehrere Kalender auf gleichem Server =====&lt;br /&gt;
&lt;br /&gt;
Hat man mehrere Kalender auf dem gleichen Server &amp;amp;ndash; also z.B. mehrere User oder für einen User mehrere &#039;&#039;collections&#039;&#039;, dann kann Thunderbird diese nicht unterscheiden. Der Passwort-Manager arbeitet auf Grundlage der Domain. Siehe auch [https://bugzilla.mozilla.org/show_bug.cgi?id=247486 Bugzilla].&lt;br /&gt;
&lt;br /&gt;
Diesen Bug kann man relativ einfach umgehen, indem man weitere Subdomains anlegt, die auf die gleiche Installation verweisen, also z.B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cd /home/doms/example.org/subs-ssl&lt;br /&gt;
$ mkdir cal1&lt;br /&gt;
$ mkdir cal2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und jeweils eine &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt; in die neuen Verzeichnis mit folgendem Inhalt schreibt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteRule ^.htaccess$ - [F]&lt;br /&gt;
RewriteRule ^(.*)$ https://cal.example.org/$1 [P]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nicht vergessen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
chmod 0644 cal1/.htaccess&lt;br /&gt;
chmod 0644 cal2/.htaccess&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hat man z.B. für User &amp;lt;tt&amp;gt;hans&amp;lt;/tt&amp;gt; die Kalender &amp;lt;tt&amp;gt;home&amp;lt;/tt&amp;gt; und &amp;lt;tt&amp;gt;work&amp;lt;/tt&amp;gt; und für User &amp;lt;tt&amp;gt;maria&amp;lt;/tt&amp;gt; den Kalender &amp;lt;tt&amp;gt;home&amp;lt;/tt&amp;gt; und möchte diese aus derselben Thunderbird-Instanz benutzen, können folgende URL&#039;s in Thundebrird konfiguriert werden:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://cal.example.org/caldav.php/hans/home&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://cal1.example.org/caldav.php/hans/work&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://cal2.example.org/caldav.php/maria/home&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== URL Rewriting für kürzere URL&#039;s ==&lt;br /&gt;
&lt;br /&gt;
TODO: .htaccess Beispiel&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
&lt;br /&gt;
* WIKI von DAViCal: http://wiki.davical.org&lt;br /&gt;
** [http://wiki.davical.org/w/CalDAV_Clients CalDAV Clients]&lt;br /&gt;
&lt;br /&gt;
* Alternativen&lt;br /&gt;
** [[RadicaleCalDAVServer]]&lt;br /&gt;
** [[ChandlerServer]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:CalDAV]]&lt;/div&gt;</summary>
		<author><name>Ara00-wp</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=5063</id>
		<title>Mailman Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=5063"/>
		<updated>2019-12-08T16:46:28Z</updated>

		<summary type="html">&lt;p&gt;Ara00-wp: /* Anleitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Vorab: Die Wahl von Mailman 2 ==&lt;br /&gt;
&lt;br /&gt;
Mailman 2 hängt von Python 2.7 ab und wird damit voraussichtlich nur noch eine begrenzte Nutzungsdauer haben. Mailman 3 ist jetzt verfügbar (siehe [[Mailman_3_installieren]]), aber deutlich schwerer und komplexer im Betrieb. Es gibt auch weniger leistungsfähige Software, um E-Mail-Verteiler zu betreiben, wie beispielsweise mlmmj. Für eine Diskussion der Situation im Oktober 2019, siehe das HS-Support-Archiv ab [https://lists.hostsharing.net/archiv/support/2019-October/067243.html hier.]&lt;br /&gt;
&lt;br /&gt;
== Mailman 2 installieren == &lt;br /&gt;
&lt;br /&gt;
(zuletzt getestet mit mailman-2.1.29; Installation durch Paketuser)&lt;br /&gt;
&lt;br /&gt;
Vielen Dank an alle Benutzer, die Verbesserungen beisteuern!&lt;br /&gt;
&lt;br /&gt;
=== Unter welchem Account installieren? ===&lt;br /&gt;
&lt;br /&gt;
Mailman kann vom Paketadmin (beipsielsweise &amp;quot;xyz00&amp;quot;) oder von einem Paketuser (bspw. &amp;quot;xyz00-listen&amp;quot;) installiert werden. Letzteres ist dringend empfohlen, denn Mailman vom Paketadmin installiert wird, haben ausnahmslos alle Paketuser direkten Zugriff auf die Mailman-Daten, und bei Sicherheitslücken in Mailman wäre eventuell eine Rechte-Eskalierung auf Paketadmin-Ebene potentiell zu befürchten.&lt;br /&gt;
&lt;br /&gt;
Dem Paketuser, unter dem Mailman installiert wird, können mehrere Subdomains aufschaltet werden, und Mailinglisten können auch die Domainnamen verwenden, die anderen Paketusern gehören.&lt;br /&gt;
&lt;br /&gt;
Vorteil der Installation als Paketuser ist, dass nur dieser direkten Zugriff auf die Mailmandaten hat und mailman ohne Paketadminrechte läuft. Während der Emailauslieferung gelten (wie immer bei der Mailweiterleitung durch .forward-Dateien oder durch procmail) die Rechte des Paketusers, dem die Mailman-Installation gehört.&lt;br /&gt;
&lt;br /&gt;
Nachteil der Installation als Paketuser ist lediglich, dass die Paketdomain mit dem SSL Zertifikat von Hostsharing nicht genutzt werden kann.&amp;lt;!-- Aktualisieren? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einen User und eine Domain anlegen ===&lt;br /&gt;
&lt;br /&gt;
Unter admin.hostsharing.net als xyz00 anmelden; den User xyz00-listen erzeugen; die Domain listen.example.com mit &amp;quot;Domain-User&amp;quot; xyz00-listen anlegen. Aus admin.hostsharing.net abmelden.&lt;br /&gt;
&lt;br /&gt;
Mit [[Login_mit_SSH|SSH]] an hostsharing.net als xyz00-listen anmelden. Die Redirect-Zeile aus ~/doms/listen.example.com/htdocs-ssl/.htaccess löschen:&lt;br /&gt;
&lt;br /&gt;
 ~$ echo &amp;quot;&amp;quot; &amp;gt; ~/doms/listen.example.com/htdocs-ssl/.htaccess&lt;br /&gt;
&lt;br /&gt;
Die Default-Subdomains www.* löschen:&lt;br /&gt;
&lt;br /&gt;
   ~$ rm -r doms/listen.example.com/subs/www/&lt;br /&gt;
   ~$ rm -r doms/listen.example.com/subs-ssl/www/&lt;br /&gt;
&lt;br /&gt;
=== Sourcen besorgen und entpacken ===&lt;br /&gt;
&lt;br /&gt;
Unter http://www.gnu.org/software/mailman/ die aktuelle Software besorgen. Dort findet sich ein Link zu den 2er-Versionen von Mailman (http://ftp.gnu.org/gnu/mailman/). Die letzte Version downloaden ...&lt;br /&gt;
&lt;br /&gt;
 ~$ wget http://ftp.gnu.org/gnu/mailman/mailman-2.1.29.tgz&lt;br /&gt;
&lt;br /&gt;
... und entpacken:&lt;br /&gt;
&lt;br /&gt;
 ~$ tar -xzvf mailman-2.1.29.tgz&lt;br /&gt;
&lt;br /&gt;
Ab diesem Augenblick gibt es ein Verzeichnis namens mailman-2.1.29/. Darin liegt die nunmehr entpackte &#039;&#039;Quellcode&#039;&#039; der Mailman-Software. Nach dem Kompilieren (folgt unten) wird die fertig kompilierte, gebrauchsfähige Mailman-Software in dem zusätzlich vorhandenen Verzeichnis mailman/ liegen. (Dieses Verzeichnis wird beim Konfigurieren der Source als &amp;quot;prefix&amp;quot; angegeben.)&lt;br /&gt;
&lt;br /&gt;
=== var-Verzeichnis für Log-Dateien anlegen ===&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser (xyz00-listen):&lt;br /&gt;
 ~$ cd &amp;amp;&amp;amp; mkdir -p mailman/var&lt;br /&gt;
 ~$ chmod 02775 mailman/var&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin (xyz00):&lt;br /&gt;
 ~$ cd &amp;amp;&amp;amp; mkdir var/mailman&lt;br /&gt;
 ~$ chmod 02775 var/mailman&lt;br /&gt;
&lt;br /&gt;
=== Mailman konfigurieren ===&lt;br /&gt;
&lt;br /&gt;
In das Source-Verzeichnis wechseln:&lt;br /&gt;
&lt;br /&gt;
 ~$ cd mailman-2.1.29&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser (xyz00-listen):&lt;br /&gt;
      ~/mailman-2.1.29$ ./configure --prefix=/home/pacs/xyz00/users/listen/mailman \&lt;br /&gt;
              --with-username=xyz00-listen \&lt;br /&gt;
              --with-groupname=xyz00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/xyz00/users/listen/mailman/var \&lt;br /&gt;
              --with-cgi-gid=xyz00 \&lt;br /&gt;
              --with-mail-gid=xyz00&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin (xyz00):&lt;br /&gt;
      ~/mailman-2.1.29$ ./configure --prefix=/home/pacs/xyz00/mailman \&lt;br /&gt;
              --with-username=xyz00 \&lt;br /&gt;
              --with-groupname=xyz00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/xyz00/var/mailman \&lt;br /&gt;
              --with-cgi-gid=xyz00 \&lt;br /&gt;
              --with-mail-gid=nogroup&lt;br /&gt;
&lt;br /&gt;
(Die Rückwärtsschrägstriche &amp;quot;\&amp;quot; am Zeilenende bedeuten, dass der Befehl in der nächsten Zeile weitergeht. Alternativ können alle Argumente in eine Zeile getippt werden.)&lt;br /&gt;
&lt;br /&gt;
=== Mailman kompilieren ===&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.29$ make&lt;br /&gt;
 ~/mailman-2.1.29$ make install&lt;br /&gt;
&lt;br /&gt;
=== Datenrechte prüfen ===&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber die Dateirechte durch Mailmans mitgeliefertes Tool prüfen und ggf. korrigieren lassen:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.29$ cd ..      &lt;br /&gt;
 ~$ mailman/bin/check_perms -f&lt;br /&gt;
&lt;br /&gt;
== Die neue Mailman-Installation konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei mm_cfg.py editieren ===&lt;br /&gt;
&lt;br /&gt;
 ~$ nano mailman/Mailman/mm_cfg.py&lt;br /&gt;
      &lt;br /&gt;
Eine Beispielkonfiguration für listen.example.com könnte so aussehen:&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
      ##################################################&lt;br /&gt;
      # Put YOUR site-specific settings below this line.&lt;br /&gt;
      # -*- python -*-&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_HOST_NAME = &#039;listen.example.com&#039;&lt;br /&gt;
      DEFAULT_EMAIL_HOST = &#039;listen.example.com&#039;&lt;br /&gt;
      DEFAULT_URL_HOST = &#039;listen.example.com&#039;&lt;br /&gt;
      add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)&lt;br /&gt;
      add_virtualhost(zweite.listendomain.com, zweite.listendomain.com)&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_SERVER_LANGUAGE = &#039;de&#039;&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_URL_PATTERN = &#039;http://%s/&#039;&lt;br /&gt;
  &lt;br /&gt;
      # Es wird der HS Mailversand für Bulkmail verwendet:&lt;br /&gt;
      SMTPHOST = &#039;localhost&#039;&lt;br /&gt;
      SMTPPORT = 4587 &lt;br /&gt;
      SMTP_AUTH = True&lt;br /&gt;
      SMTP_USER = &#039;xyz00-listen&#039;&lt;br /&gt;
      SMTP_PASSWD = &#039;das-passwort-des-o.-g.-users&#039;&lt;br /&gt;
      SMTP_USE_TLS = True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In ~/mailman/Mailman/Defaults.py sieht man, was in mm_cfg.py alles angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
=== CGI-Programme in die Domain kopieren ===&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser (xyz00-listen):&lt;br /&gt;
&lt;br /&gt;
Die fertig kompilierten CGIs von Mailman müssen in das CGI-Verzeichnis der Domain (oder der Domains), auf der das Webfrontend von Mailman laufen soll, kopiert werden. Symbolische Links sind nicht ausreichend.&lt;br /&gt;
&lt;br /&gt;
 ~$ mkdir ~/doms/listen.example.com/cgi-ssl/mailman&lt;br /&gt;
 ~$ cp mailman/cgi-bin/* doms/listen.example.com/cgi-ssl/mailman/&lt;br /&gt;
&lt;br /&gt;
 Zusätzlich muss das sticky-Flag von den kopierten Dateien entfernt werden:&lt;br /&gt;
&lt;br /&gt;
 ~$ chmod g-s ~/doms/listen.example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin (xyz00): &lt;br /&gt;
&lt;br /&gt;
Die CGI-Programme können im Mailman-Verzeichnis bleiben. Im CGI-Verzeichnis von jeder Domain, auf der das Mailman-Webfrontend laufen soll, werden symbolische Links dazu erstellt: &lt;br /&gt;
&lt;br /&gt;
 ~$ cd doms/listen.example.com/cgi-ssl&lt;br /&gt;
 ~/doms/listen.example.com/cgi-ssl$ ln -s ../../../mailman/cgi-bin mailman&lt;br /&gt;
&lt;br /&gt;
===  Mailman-Icons in die Domains kopieren ===&lt;br /&gt;
&lt;br /&gt;
Die Icons können wahlweise verlinkt oder kopiert werden:&lt;br /&gt;
&lt;br /&gt;
 ~$ cd doms/listen.example.com/htdocs-ssl&lt;br /&gt;
 ~/doms/listen.example.com/htdocs-ssl$ ln -s ../../../mailman/icons&lt;br /&gt;
&lt;br /&gt;
oder&lt;br /&gt;
&lt;br /&gt;
 ~$ cp -R mailman/icons doms/listen.example.com/htdocs-ssl/&lt;br /&gt;
&lt;br /&gt;
=== Die Datei .htaccess bearbeiten ===&lt;br /&gt;
&lt;br /&gt;
Bei einer dedizierten Mailman-Domain sollte man dafür sorgen, dass Mailman nicht nur unter https://listen.example.com/cgi-bin/mailman, sondern auch unter https://listen.example.com  erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Dazu werden in ~/doms/listen.example.com/htdocs-ssl/.htaccess folgende Rewrite-Anweisungen eintragen.&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteCond	%{REQUEST_URI}		!^/icons/&lt;br /&gt;
 RewriteRule	^(.*)$			/cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule	^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
Beachte dabei die zweite Zeile: Anfragen für Icons sollen &#039;&#039;nicht&#039;&#039; umgeschrieben werden.&lt;br /&gt;
&lt;br /&gt;
Wenn Mailman z.B. auf einer als Unterverzeichnis angelegten Subdomain läuft und unter https://www.example.com/mailman statt https://www.example.com/cgi-bin/mailman erreichbar sein soll, hilft folgendes in der ~/doms/example.com/subs-ssl/www/.htaccess:&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteCond	%{REQUEST_URI}		!^/icons/&lt;br /&gt;
 RewriteRule    ^mailman/(.*)$          /cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule    ^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
(In diesem Fall kann die Zeile DEFAULT_URL_PATTERN... in der mm_cfg.py auskommentiert werden.)&lt;br /&gt;
&lt;br /&gt;
=== Hauptpasswort setzen ===&lt;br /&gt;
&lt;br /&gt;
Das &amp;quot;site password&amp;quot; ist in Mailman eine Art Generalschlüssel: es wird neben dem jeweiligen Admin- oder Moderator-Passwort überall in der Weboberfläche für sämtliche Mailing-Listen akzeptiert. Also vorsichtig wählen! Das &amp;quot;site password&amp;quot; einrichten mit dem Befehl: &lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/mmsitepass&lt;br /&gt;
&lt;br /&gt;
=== Cronjobs einrichten ===&lt;br /&gt;
&lt;br /&gt;
In die [[Cron |Crontab]] werden Befehle eingetragen, um die Mail-Warteschlange abzuarbeiten, Logs zu löschen, usw.:&lt;br /&gt;
&lt;br /&gt;
 # Warteschlange jede Minute bearbeiten:&lt;br /&gt;
 * * * * *	~/mailman/bin/qrunner -o -r All&lt;br /&gt;
 # Verarbeitungslogs in der 47ten Minute jeder Stunde löschen:&lt;br /&gt;
 47 * * * *	rm -f ~/var/mailman/logs/qrunner&lt;br /&gt;
&lt;br /&gt;
Damit übernimmt cron die Funktion des qrunner-Dämons, der normalerweise auf einem Mailman-Server laufen sollte.&lt;br /&gt;
&lt;br /&gt;
Das Logfile wird stündlich gelöscht, da es sonst sehr schnell sehr groß wird. Falls Mailman von einem Paketuser (bspw. &amp;quot;xyz00-listen&amp;quot;) installiert wurde, sollte die letzte Zeile im Beispiel oben so lauten:&lt;br /&gt;
&lt;br /&gt;
 47 * * * * rm -f ~/mailman/var/logs/qrunner&lt;br /&gt;
&lt;br /&gt;
... entsprechend dem beim Konfigurieren angegebenen var-Verzeichnis, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zudem müssen noch die von Mailman ohnehin vorgesehenen cron-Aufträge aus ~/mailman/cron/crontab.in dem crontab des Users angehängt werden:&lt;br /&gt;
&lt;br /&gt;
 crontab -l &amp;gt; mycronjobs.tmp&lt;br /&gt;
 cat ~/mailman/cron/crontab.in &amp;gt;&amp;gt; mycronjobs.tmp&lt;br /&gt;
 crontab mycronjobs.tmp&lt;br /&gt;
&lt;br /&gt;
== Mailinglisten einrichten ==&lt;br /&gt;
&lt;br /&gt;
Jetzt läuft die Software; nun können die eigentlichen Verteiler angelegt werden. Als erster &#039;&#039;&#039;muß&#039;&#039;&#039; ein Hauptverteiler (&amp;quot;site list&amp;quot;) eingerichtet werden. Dieser Verteiler dient u.a. als Absender der Paßwort-Erinnerungen an die Abonnenten aller Mailinglisten. Er hat standardmäßig den Namen &amp;quot;mailman&amp;quot;. Falls ein anderer Name verwendet werden soll, muß dieser mit der Anweisung &lt;br /&gt;
&lt;br /&gt;
 MAILMAN_SITE_LIST = &#039;sitelistname&#039;&lt;br /&gt;
&lt;br /&gt;
in der Konfigurationsdatei mailman/Mailman/mm_cfg.py eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
=== Den Hauptverteiler &amp;quot;mailman&amp;quot; anlegen ===&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;site list&amp;quot; mit dem Namen &amp;quot;mailman&amp;quot; ist die Mailingliste der lokalen Mailman-Administratoren. Sie wird zur einwandfreien Funktion von Mailman benötigt.&lt;br /&gt;
&lt;br /&gt;
Mit dem Mailman-Befehl newlist den Verteiler anlegen:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/newlist mailman&lt;br /&gt;
 Enter the email of the person running the list: admin@xyz00.hostsharing.net&lt;br /&gt;
 Initial mailman password:&lt;br /&gt;
&lt;br /&gt;
(Der Befehl newlist kann – alternativ zur Weboberfläche – später benutzt werden, um gewöhnliche Mailinglisten anzulegen.)&lt;br /&gt;
&lt;br /&gt;
Nur dieses eine Mal für die &amp;quot;site list&amp;quot; müssen wir die Konfigurationsvorgaben laden. (Gewöhnliche Mailinglisten werden später über die Weboberfläche konfiguriert.)&lt;br /&gt;
&lt;br /&gt;
Falls mailman vom Paketuser (bspw. &amp;quot;xyz00-listen&amp;quot;) installiert wurde:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/mailman/var/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
Falls mailman vom Paketadmin (&amp;quot;xyz00&amp;quot;) installiert wurde:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/var/mailman/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
Diese Konfigurationsdatei soll &#039;&#039;&#039;nicht&#039;&#039;&#039; auf gewöhnliche Mailinglisten anwendet werden.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail Adressen bei Mailman einrichten ===&lt;br /&gt;
&lt;br /&gt;
Sobald ein neuer Verteiler angelegt worden ist, sendet Mailman eine E-Mail an den dabei eingetragenen Listenadministrator. Diese E-Mail enthält die Anweisung, E-Mail-Aliases für den neuen Verteiler und für die verschiedenen Mailman-Funktionen anzulegen. Bei Hostsharing wird die Zustellung von E-Mails an Mailman anders geregelt: alle E-Mails an Mailman werden an erweiterte &#039;&#039;E-Mail-Adressen&#039;&#039; des Mailman-Users xyz00-listen geschickt. Diese Adressen haben die form xyz00-listen&#039;&#039;&#039;+&#039;&#039;&#039;&amp;lt;liste&amp;gt;[_funktion]. E-Mails an diese Adressen werden dann durch Pipe-Anweisungen in &#039;&#039;.forward-Dateien&#039;&#039; im Home-Verzeichnis des Mailman-Users mit den entsprechenden Argumenten an Mailman übergeben. &lt;br /&gt;
&lt;br /&gt;
Falls Mailman von einem Paketuser (bspw. &amp;quot;xyz00-listen&amp;quot;) installiert wurde, werden  &#039;&#039;E-Mail-Adressen&#039;&#039; werden durch [https://doc.hostsharing.net/users/administration/hsadmin/index.html hsadmin (bzw. das Befehlszeielentool hsscript)] eingerichtet; die &#039;&#039;.forward-Dateien&#039;&#039; werden durch [[Login_mit_SSH|Shell-Befehle]] angelegt.&lt;br /&gt;
&lt;br /&gt;
Das folgende Beispiel zeigt die Befehle, mit denen in einer interaktiven hsscript-Sitzung die E-Mail-Adressen für die Hauptliste &amp;quot;mailman&amp;quot; eingerichtet werden. (Für spätere Mailinglisten wird in den Argumenten &amp;quot;mailman&amp;quot; durch den Namen der Mailingliste ersetzt.)&lt;br /&gt;
&lt;br /&gt;
   hsscript -u xyz00 -i&lt;br /&gt;
   [hsscript verlangt die Eingabe des Passworts vom Paketadmin xyz00; dann können diese Befehle eingegeben werden:]&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman&#039;,target:&#039;xyz00-listen+mailman&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-admin&#039;,target:&#039;xyz00-listen+mailman-admin&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-bounces&#039;,target:&#039;xyz00-listen+mailman-bounces&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-confirm&#039;,target:&#039;xyz00-listen+mailman-confirm&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-join&#039;,target:&#039;xyz00-listen+mailman-join&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-leave&#039;,target:&#039;xyz00-listen+mailman-leave&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-owner&#039;,target:&#039;xyz00-listen+mailman-owner&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-request&#039;,target:&#039;xyz00-listen+mailman-request&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-subscribe&#039;,target:&#039;xyz00-listen+mailman-subscribe&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-unsubscribe&#039;,target:&#039;xyz00-listen+mailman-unsubscribe&#039;}})&lt;br /&gt;
&lt;br /&gt;
Die korrekte Einrichtung der E-Mail-Adressen kann in der Web-Oberfläche von hsadmin kontrolliert werden.&lt;br /&gt;
&lt;br /&gt;
Für jede der soeben eingerichteten Adressen wird nun eine .forward-Datei im Homeverzeichnis des Users xyz00-listen angelegt. Die Dateinamen bestehen aus der Zeichenfolge &amp;quot;.forward+&amp;quot; gefolgt vom Namen der ausführen soll. Der Inhalt der jeweiligen .forward-Datei legt die Weiterleitung der Mail durch einen Pipe an Mailman fest, mit dem jeweiligen Befehl als Argument:&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman [Befehl] [Listenname]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel wird die .forward-Datei .forward+mailman-subscribe verwendet, wenn eine E-Mail an die Adresse mailman-subscribe@listen.example.com eingeht. Aufgrund der oben eingerichteten E-Mail-Adresse mit dem Ziel &amp;quot;xyz00-listen+mailman-subscribe&amp;quot; wertet der Mail-Transfer-Agent die .forward-Datei .forward+mailman-subscribe im Home-Verzeichnis des Users xyz00-listen aus, und entsprechend ihrem Inhalt wird die Mail an die Mailman-Software mit den Argumenten &amp;quot;subscribe mailman&amp;quot; übergeben.&lt;br /&gt;
&lt;br /&gt;
Das folgende Beispiel zeigt die Befehle, mit denen an der Befehlszeilenaufforderung der Shell die .forward-Dateien für die Hauptliste &amp;quot;mailman&amp;quot; eingerichtet werden. (Für spätere Mailinglisten wird in den Argumenten und in den Namen der .forward-Dateien &amp;quot;mailman&amp;quot; durch den Namen der Mailingliste ersetzt, jedoch &#039;&#039;&#039;nicht&#039;&#039;&#039; in der Pfadangabe zum Mailman-Programm selbst; diese ändert sich ja nicht.)&lt;br /&gt;
&lt;br /&gt;
 echo &#039;admin@xyz00.hostsharing.net&#039; &amp;gt; .forward # Weiterleitung von cron Fehlern etc an Paketadmin.&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman post mailman&amp;quot;&#039; &amp;gt; .forward+mailman&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman admin mailman&amp;quot;&#039; &amp;gt; .forward+mailman-admin&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman bounces mailman&amp;quot;&#039; &amp;gt; .forward+mailman-bounces&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman confirm mailman&amp;quot;&#039; &amp;gt; .forward+mailman-confirm&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman join mailman&amp;quot;&#039; &amp;gt; .forward+mailman-join&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman leave mailman&amp;quot;&#039; &amp;gt; .forward+mailman-leave&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman owner mailman&amp;quot;&#039; &amp;gt; .forward+mailman-owner&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman request mailman&amp;quot;&#039; &amp;gt; .forward+mailman-request&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman subscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-subscribe&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-unsubscribe&lt;br /&gt;
&lt;br /&gt;
Die vielen Befehle können von dieser Anleitung kopiert und nach Anpassung auf den tatsächlichen Unsernamen in die SSH-Sitzung kopiert werden. Noch leichter ist es, mit einem Editor einen Shell-Skript namens ~/bin/addforwards mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # .forward-Dateien für einen Verteiler unter Mailman einrichten.&lt;br /&gt;
 #&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Aufruf: $0 Listenname\n&amp;quot; &lt;br /&gt;
    exit&lt;br /&gt;
 fi&lt;br /&gt;
 if [ &amp;quot;$2&amp;quot; != &amp;quot;&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Aufruf: $0 Listenname\n&amp;quot; &lt;br /&gt;
    exit&lt;br /&gt;
 fi&lt;br /&gt;
 if [ &amp;quot;`pwd`&amp;quot; != &amp;quot;`echo ~`&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Diesen Befehl vom Home-Verzeichnis aus aufrufen.\n&amp;quot; &lt;br /&gt;
    exit&lt;br /&gt;
 fi&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman post $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman admin $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-admin&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman bounces $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-bounces&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman confirm $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-confirm&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman join $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-join&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman leave $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-leave&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman owner $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-owner&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman request $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-request&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman subscribe $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-subscribe&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman unsubscribe $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-unsubscribe&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Der Skript muß natürlich als ausführbar gekennzeichnet werden:&lt;br /&gt;
&lt;br /&gt;
  ~$ chmod u+x bin/addforwards&lt;br /&gt;
&lt;br /&gt;
Die Erweiterung dieses Skripts um die hsscript-Befehle wird dem Leser als Aufgabe überlassen.&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
&lt;br /&gt;
Als erstes sollte man als Administrator der neuen Mailman-Installation die Liste &amp;quot;mailman&amp;quot; selbst abonnieren. Die Liste &amp;quot;mailman&amp;quot; kann aber unter https://listen.example.com/mailman/admin/mailman verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
Die Hauptseite der Mailman-Web-Verwaltung ist in unserem Beispiel (mit den oben angegebenen Rewrite-Anweisungen in der Datei .htaccess) https://listen.example.com/mailman/admin/. Diese Seite enthält Links zu den bisher eingerichteten Mailinglisten (außer &amp;quot;mailman&amp;quot;) und einen Link, um neue Mailinglisten anzulegen (https://listen.example.com/mailman/create). Das Anlegen einer neuen Mailingliste geschieht entweder über diesen Link oder (wie oben) in der Shell mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/newlist &amp;lt;Listenname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In beiden Fällen müssen zusätzlich die E-Mail-Adressen und die .forward-Dateien wie bei dem Einrichten der Liste &amp;quot;mailman&amp;quot; nach Verfahren im obigen Abschnitt angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Für die Verwaltung der Mailinglisten im Alltag, d.h. den Umgang mit Bounces, Spam, Abonnenten usw., siehe u.a. die [https://wiki.list.org/ Mailman-Wiki].&lt;br /&gt;
&lt;br /&gt;
== Feintuning == &lt;br /&gt;
&lt;br /&gt;
Wer will, kann auch noch etwas Platz sparen. Die normale Mailmaninstallation schlägt mit über 20 MB zu Buche...&lt;br /&gt;
&lt;br /&gt;
Mit den folgenden Tips kann man das auf ca. 6 MB reduzieren :)&lt;br /&gt;
&lt;br /&gt;
Es kann natürlich sein, dass ich zuviel lösche, aber bei mir funktioniert&#039;s. Wenn ihr also sicher(er) sein wollt, dass euch der Mailman nicht um die Ohren fliegt, macht das nicht!&lt;br /&gt;
&lt;br /&gt;
*  ~/mailman/cgi-bin und ~/mailman/icons können gelöscht werden, falls sie an andere Stelle kopiert worden sind.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/messages löschen.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/templates löschen (bis auf englisch).&lt;br /&gt;
* ~/mailman/tests kann, soweit ich das sehe, komplett gelöscht werden.&lt;br /&gt;
* Falls man koreanisch und japanisch nicht braucht, kann man folgendes machen:&lt;br /&gt;
* in ~/mailman/bin/paths.py, ~/mailman/cron/paths.py und ~/mailman/scripts/paths.py die Zeilen:&lt;br /&gt;
&lt;br /&gt;
 # In a normal interactive Python environment, the japanese.pth and korean.pth&lt;br /&gt;
 # files would be imported automatically.  But because we inhibit the importing&lt;br /&gt;
 # of the site module, we need to be explicit about importing these codecs.&lt;br /&gt;
 if not jaok:&lt;br /&gt;
     import japanese&lt;br /&gt;
 # As of KoreanCodecs 2.0.5, you had to do the second import to get the Korean&lt;br /&gt;
 # codecs installed, however leave the first import in there in case an upgrade&lt;br /&gt;
 # changes this.&lt;br /&gt;
 if not kook:&lt;br /&gt;
     import korean&lt;br /&gt;
     import korean.aliases&lt;br /&gt;
&lt;br /&gt;
auskommentieren.&lt;br /&gt;
&lt;br /&gt;
Dann kann man ~/mailman/pythonlib/japanese, ~/mailman/pythonlib/korean, ~/mailman/pythonlib/korean.pth sowie ~/mailman/pythonlib/lib löschen.&lt;br /&gt;
   &lt;br /&gt;
Man kann auch noch die Debug-Informationen aus den binaries strippen:&lt;br /&gt;
&lt;br /&gt;
 strip ~/mailman/mail/mailman&lt;br /&gt;
 strip ~/mailman/cgi-bin/*&lt;br /&gt;
&lt;br /&gt;
Falls die CGIs nicht gesymlinkt wurden:&lt;br /&gt;
&lt;br /&gt;
 strip ~/doms/listen.example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
== Multidomainfähigkeit ==&lt;br /&gt;
&lt;br /&gt;
Seit Mailman 2.x kann eine Mailman-Installation unter gewissen Einschränkungen für mehrere Domains verwendet werden. Hier soll kurz gezeigt werden, was geht und wie es geht.&lt;br /&gt;
&lt;br /&gt;
=== Anleitung ===&lt;br /&gt;
&lt;br /&gt;
Logischerweise muss das Webfrontend (die CGIs) auf allen Domains installiert werden.&lt;br /&gt;
&lt;br /&gt;
Wenn man nun Mailinglisten mit newlist neu anlegt, muss man den Hostnamen für das Webfontend mit angeben, und zwar so:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/newlist listenname@listen.example.com&lt;br /&gt;
&lt;br /&gt;
Es ist ggf. wichtig, dass in der mm_cfg.py eine entsprechende add_virtualhost-Direktive für www.example.com steht, die der Frontend-URL einen Host-Part für die Mailadressen zuordnet. Ist eine solche Direktive nicht vorhanden, so wird listen.example.com sowohl als URL für das Webfrontend wie auch als Hostpart für E-Mailadressen verwendet. (Was für separate aufgeschaltete Domains wie z.B. listen.example.com gerade zutrifft.)&lt;br /&gt;
&lt;br /&gt;
Liegt das Frondend nicht auf der Maildomain ist es wichtig, dass ihr Mailman sagt, für welches die zugehörige Maildomain ist. Dies tut ihr in der Datei ~/mailman/Mailman/mm_cfg.py:&lt;br /&gt;
&lt;br /&gt;
Also z.B.&lt;br /&gt;
 DEFAULT_URL_HOST = &#039;www.example.com&#039;&lt;br /&gt;
 DEFAULT_EMAIL_HOST = &#039;listen.example.com&#039;&lt;br /&gt;
 add_virtualhost(DEFAULT_URL_HOST,DEFAULT_EMAIL_HOST)&lt;br /&gt;
&lt;br /&gt;
und&lt;br /&gt;
 add_virtualhost(&#039;www.zoopnet.de&#039;, &#039;lists.zoopnet.de&#039;)&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass Mailman per default davon ausgeht, dass alle Listen für die Domain example.com sind.&lt;br /&gt;
Alle weiteren add_virtualhost-Direktiven ordnen einem Hostnamen für das Webfrontend (z.B. www.zoopnet.de) einen Hostpart für die Adresse der Mailinglisten (z.B. lists.zoopnet.de) zu.&lt;br /&gt;
&lt;br /&gt;
Tip von Raimund Specht: Lässt man den zweiten Parameter weg, also schreibt z.B. add_virtualhost(&#039;www.example.org&#039;), dann benutzt Mailman als Hostpart alles was nach dem ersten Punkt steht, hier also example.org als Maildomain.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Prinzipiell war&#039;s das. Man muss die Listeneinträge natürlich immer in die richtige virtusertable eintragen, und für gleichnamige Mailinglisten auf verschiedenen Domains (mailman@*) verschidene +Ergänzungen bzw. aliase verwenden. :)&lt;br /&gt;
&lt;br /&gt;
=== Probleme ===&lt;br /&gt;
&lt;br /&gt;
Verschiedene Listen mit gleichem Namen (also z.B. liste@example1.com und liste@example2.com) sind mit Mailman 2.1 leider nicht möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips und Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== URL Änderungen ===&lt;br /&gt;
Nach URL Änderungen stimmen Links im Web-Interface nicht mehr und Listen werden nicht mehr angezeigt.&lt;br /&gt;
Es sind dann, zusätzlich zur Anpassung der mm_cfg.py, schon bestehende Listen und Archive mit folgendem Befehl zu aktualisieren:&lt;br /&gt;
 ~/mailman/bin/withlist -l -r fix_url &amp;lt;Listen_Name&amp;gt; -v -u &amp;lt;Neue_Url&amp;gt;&lt;br /&gt;
&amp;lt;Listen_Name&amp;gt; steht für die Mailingliste, die bearbeitet werden soll. &amp;lt;Neue_Url&amp;gt; für die neue URL/Webadresse des Webinterfaces.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Cron-Jobs zur Mailinglisten Verwaltung ===&lt;br /&gt;
&lt;br /&gt;
Folgende Cronjobs helfen bei der Verwaltung und sind User freundlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt; In Arbeit &amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referenzen ==&lt;br /&gt;
&lt;br /&gt;
Lösung zur installation als Domainadmin (xyz00-listen) statt Paketadmin (xyz00): https://lists.hostsharing.net/archiv/support/2009-June/019414.html&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ältere Anleitung für Installation als Domain-Admin (xyz00-listen): &amp;lt;http://lists.hostsharing.net/archiv/support/2005-January/012426.html&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kleine Tools&amp;quot; auf http://hs.andreasloesch.de/, wobei das &#039;pac-mm-install&#039; wahrscheinlich nicht aktuell (genug) ist&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Mailinglisten]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;/div&gt;</summary>
		<author><name>Ara00-wp</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=5062</id>
		<title>Mailman Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Mailman_Installieren&amp;diff=5062"/>
		<updated>2019-12-08T16:43:40Z</updated>

		<summary type="html">&lt;p&gt;Ara00-wp: /* Email Adressen einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Vorab: Die Wahl von Mailman 2 ==&lt;br /&gt;
&lt;br /&gt;
Mailman 2 hängt von Python 2.7 ab und wird damit voraussichtlich nur noch eine begrenzte Nutzungsdauer haben. Mailman 3 ist jetzt verfügbar (siehe [[Mailman_3_installieren]]), aber deutlich schwerer und komplexer im Betrieb. Es gibt auch weniger leistungsfähige Software, um E-Mail-Verteiler zu betreiben, wie beispielsweise mlmmj. Für eine Diskussion der Situation im Oktober 2019, siehe das HS-Support-Archiv ab [https://lists.hostsharing.net/archiv/support/2019-October/067243.html hier.]&lt;br /&gt;
&lt;br /&gt;
== Mailman 2 installieren == &lt;br /&gt;
&lt;br /&gt;
(zuletzt getestet mit mailman-2.1.29; Installation durch Paketuser)&lt;br /&gt;
&lt;br /&gt;
Vielen Dank an alle Benutzer, die Verbesserungen beisteuern!&lt;br /&gt;
&lt;br /&gt;
=== Unter welchem Account installieren? ===&lt;br /&gt;
&lt;br /&gt;
Mailman kann vom Paketadmin (beipsielsweise &amp;quot;xyz00&amp;quot;) oder von einem Paketuser (bspw. &amp;quot;xyz00-listen&amp;quot;) installiert werden. Letzteres ist dringend empfohlen, denn Mailman vom Paketadmin installiert wird, haben ausnahmslos alle Paketuser direkten Zugriff auf die Mailman-Daten, und bei Sicherheitslücken in Mailman wäre eventuell eine Rechte-Eskalierung auf Paketadmin-Ebene potentiell zu befürchten.&lt;br /&gt;
&lt;br /&gt;
Dem Paketuser, unter dem Mailman installiert wird, können mehrere Subdomains aufschaltet werden, und Mailinglisten können auch die Domainnamen verwenden, die anderen Paketusern gehören.&lt;br /&gt;
&lt;br /&gt;
Vorteil der Installation als Paketuser ist, dass nur dieser direkten Zugriff auf die Mailmandaten hat und mailman ohne Paketadminrechte läuft. Während der Emailauslieferung gelten (wie immer bei der Mailweiterleitung durch .forward-Dateien oder durch procmail) die Rechte des Paketusers, dem die Mailman-Installation gehört.&lt;br /&gt;
&lt;br /&gt;
Nachteil der Installation als Paketuser ist lediglich, dass die Paketdomain mit dem SSL Zertifikat von Hostsharing nicht genutzt werden kann.&amp;lt;!-- Aktualisieren? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einen User und eine Domain anlegen ===&lt;br /&gt;
&lt;br /&gt;
Unter admin.hostsharing.net als xyz00 anmelden; den User xyz00-listen erzeugen; die Domain listen.example.com mit &amp;quot;Domain-User&amp;quot; xyz00-listen anlegen. Aus admin.hostsharing.net abmelden.&lt;br /&gt;
&lt;br /&gt;
Mit [[Login_mit_SSH|SSH]] an hostsharing.net als xyz00-listen anmelden. Die Redirect-Zeile aus ~/doms/listen.example.com/htdocs-ssl/.htaccess löschen:&lt;br /&gt;
&lt;br /&gt;
 ~$ echo &amp;quot;&amp;quot; &amp;gt; ~/doms/listen.example.com/htdocs-ssl/.htaccess&lt;br /&gt;
&lt;br /&gt;
Die Default-Subdomains www.* löschen:&lt;br /&gt;
&lt;br /&gt;
   ~$ rm -r doms/listen.example.com/subs/www/&lt;br /&gt;
   ~$ rm -r doms/listen.example.com/subs-ssl/www/&lt;br /&gt;
&lt;br /&gt;
=== Sourcen besorgen und entpacken ===&lt;br /&gt;
&lt;br /&gt;
Unter http://www.gnu.org/software/mailman/ die aktuelle Software besorgen. Dort findet sich ein Link zu den 2er-Versionen von Mailman (http://ftp.gnu.org/gnu/mailman/). Die letzte Version downloaden ...&lt;br /&gt;
&lt;br /&gt;
 ~$ wget http://ftp.gnu.org/gnu/mailman/mailman-2.1.29.tgz&lt;br /&gt;
&lt;br /&gt;
... und entpacken:&lt;br /&gt;
&lt;br /&gt;
 ~$ tar -xzvf mailman-2.1.29.tgz&lt;br /&gt;
&lt;br /&gt;
Ab diesem Augenblick gibt es ein Verzeichnis namens mailman-2.1.29/. Darin liegt die nunmehr entpackte &#039;&#039;Quellcode&#039;&#039; der Mailman-Software. Nach dem Kompilieren (folgt unten) wird die fertig kompilierte, gebrauchsfähige Mailman-Software in dem zusätzlich vorhandenen Verzeichnis mailman/ liegen. (Dieses Verzeichnis wird beim Konfigurieren der Source als &amp;quot;prefix&amp;quot; angegeben.)&lt;br /&gt;
&lt;br /&gt;
=== var-Verzeichnis für Log-Dateien anlegen ===&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser (xyz00-listen):&lt;br /&gt;
 ~$ cd &amp;amp;&amp;amp; mkdir -p mailman/var&lt;br /&gt;
 ~$ chmod 02775 mailman/var&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin (xyz00):&lt;br /&gt;
 ~$ cd &amp;amp;&amp;amp; mkdir var/mailman&lt;br /&gt;
 ~$ chmod 02775 var/mailman&lt;br /&gt;
&lt;br /&gt;
=== Mailman konfigurieren ===&lt;br /&gt;
&lt;br /&gt;
In das Source-Verzeichnis wechseln:&lt;br /&gt;
&lt;br /&gt;
 ~$ cd mailman-2.1.29&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser (xyz00-listen):&lt;br /&gt;
      ~/mailman-2.1.29$ ./configure --prefix=/home/pacs/xyz00/users/listen/mailman \&lt;br /&gt;
              --with-username=xyz00-listen \&lt;br /&gt;
              --with-groupname=xyz00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/xyz00/users/listen/mailman/var \&lt;br /&gt;
              --with-cgi-gid=xyz00 \&lt;br /&gt;
              --with-mail-gid=xyz00&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin (xyz00):&lt;br /&gt;
      ~/mailman-2.1.29$ ./configure --prefix=/home/pacs/xyz00/mailman \&lt;br /&gt;
              --with-username=xyz00 \&lt;br /&gt;
              --with-groupname=xyz00 \&lt;br /&gt;
              --with-var-prefix=/home/pacs/xyz00/var/mailman \&lt;br /&gt;
              --with-cgi-gid=xyz00 \&lt;br /&gt;
              --with-mail-gid=nogroup&lt;br /&gt;
&lt;br /&gt;
(Die Rückwärtsschrägstriche &amp;quot;\&amp;quot; am Zeilenende bedeuten, dass der Befehl in der nächsten Zeile weitergeht. Alternativ können alle Argumente in eine Zeile getippt werden.)&lt;br /&gt;
&lt;br /&gt;
=== Mailman kompilieren ===&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.29$ make&lt;br /&gt;
 ~/mailman-2.1.29$ make install&lt;br /&gt;
&lt;br /&gt;
=== Datenrechte prüfen ===&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber die Dateirechte durch Mailmans mitgeliefertes Tool prüfen und ggf. korrigieren lassen:&lt;br /&gt;
&lt;br /&gt;
 ~/mailman-2.1.29$ cd ..      &lt;br /&gt;
 ~$ mailman/bin/check_perms -f&lt;br /&gt;
&lt;br /&gt;
== Die neue Mailman-Installation konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei mm_cfg.py editieren ===&lt;br /&gt;
&lt;br /&gt;
 ~$ nano mailman/Mailman/mm_cfg.py&lt;br /&gt;
      &lt;br /&gt;
Eine Beispielkonfiguration für listen.example.com könnte so aussehen:&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
      ##################################################&lt;br /&gt;
      # Put YOUR site-specific settings below this line.&lt;br /&gt;
      # -*- python -*-&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_HOST_NAME = &#039;listen.example.com&#039;&lt;br /&gt;
      DEFAULT_EMAIL_HOST = &#039;listen.example.com&#039;&lt;br /&gt;
      DEFAULT_URL_HOST = &#039;listen.example.com&#039;&lt;br /&gt;
      add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)&lt;br /&gt;
      add_virtualhost(zweite.listendomain.com, zweite.listendomain.com)&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_SERVER_LANGUAGE = &#039;de&#039;&lt;br /&gt;
 &lt;br /&gt;
      DEFAULT_URL_PATTERN = &#039;http://%s/&#039;&lt;br /&gt;
  &lt;br /&gt;
      # Es wird der HS Mailversand für Bulkmail verwendet:&lt;br /&gt;
      SMTPHOST = &#039;localhost&#039;&lt;br /&gt;
      SMTPPORT = 4587 &lt;br /&gt;
      SMTP_AUTH = True&lt;br /&gt;
      SMTP_USER = &#039;xyz00-listen&#039;&lt;br /&gt;
      SMTP_PASSWD = &#039;das-passwort-des-o.-g.-users&#039;&lt;br /&gt;
      SMTP_USE_TLS = True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In ~/mailman/Mailman/Defaults.py sieht man, was in mm_cfg.py alles angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
=== CGI-Programme in die Domain kopieren ===&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketuser (xyz00-listen):&lt;br /&gt;
&lt;br /&gt;
Die fertig kompilierten CGIs von Mailman müssen in das CGI-Verzeichnis der Domain (oder der Domains), auf der das Webfrontend von Mailman laufen soll, kopiert werden. Symbolische Links sind nicht ausreichend.&lt;br /&gt;
&lt;br /&gt;
 ~$ mkdir ~/doms/listen.example.com/cgi-ssl/mailman&lt;br /&gt;
 ~$ cp mailman/cgi-bin/* doms/listen.example.com/cgi-ssl/mailman/&lt;br /&gt;
&lt;br /&gt;
 Zusätzlich muss das sticky-Flag von den kopierten Dateien entfernt werden:&lt;br /&gt;
&lt;br /&gt;
 ~$ chmod g-s ~/doms/listen.example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
Bei der Installation als Paketadmin (xyz00): &lt;br /&gt;
&lt;br /&gt;
Die CGI-Programme können im Mailman-Verzeichnis bleiben. Im CGI-Verzeichnis von jeder Domain, auf der das Mailman-Webfrontend laufen soll, werden symbolische Links dazu erstellt: &lt;br /&gt;
&lt;br /&gt;
 ~$ cd doms/listen.example.com/cgi-ssl&lt;br /&gt;
 ~/doms/listen.example.com/cgi-ssl$ ln -s ../../../mailman/cgi-bin mailman&lt;br /&gt;
&lt;br /&gt;
===  Mailman-Icons in die Domains kopieren ===&lt;br /&gt;
&lt;br /&gt;
Die Icons können wahlweise verlinkt oder kopiert werden:&lt;br /&gt;
&lt;br /&gt;
 ~$ cd doms/listen.example.com/htdocs-ssl&lt;br /&gt;
 ~/doms/listen.example.com/htdocs-ssl$ ln -s ../../../mailman/icons&lt;br /&gt;
&lt;br /&gt;
oder&lt;br /&gt;
&lt;br /&gt;
 ~$ cp -R mailman/icons doms/listen.example.com/htdocs-ssl/&lt;br /&gt;
&lt;br /&gt;
=== Die Datei .htaccess bearbeiten ===&lt;br /&gt;
&lt;br /&gt;
Bei einer dedizierten Mailman-Domain sollte man dafür sorgen, dass Mailman nicht nur unter https://listen.example.com/cgi-bin/mailman, sondern auch unter https://listen.example.com  erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Dazu werden in ~/doms/listen.example.com/htdocs-ssl/.htaccess folgende Rewrite-Anweisungen eintragen.&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteCond	%{REQUEST_URI}		!^/icons/&lt;br /&gt;
 RewriteRule	^(.*)$			/cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule	^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
Beachte dabei die zweite Zeile: Anfragen für Icons sollen &#039;&#039;nicht&#039;&#039; umgeschrieben werden.&lt;br /&gt;
&lt;br /&gt;
Wenn Mailman z.B. auf einer als Unterverzeichnis angelegten Subdomain läuft und unter https://www.example.com/mailman statt https://www.example.com/cgi-bin/mailman erreichbar sein soll, hilft folgendes in der ~/doms/example.com/subs-ssl/www/.htaccess:&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteCond	%{REQUEST_URI}		!^/icons/&lt;br /&gt;
 RewriteRule    ^mailman/(.*)$          /cgi-bin/mailman/$1&lt;br /&gt;
 RewriteRule    ^/cgi-bin/mailman/$	/cgi-bin/mailman/listinfo&lt;br /&gt;
&lt;br /&gt;
(In diesem Fall kann die Zeile DEFAULT_URL_PATTERN... in der mm_cfg.py auskommentiert werden.)&lt;br /&gt;
&lt;br /&gt;
=== Hauptpasswort setzen ===&lt;br /&gt;
&lt;br /&gt;
Das &amp;quot;site password&amp;quot; ist in Mailman eine Art Generalschlüssel: es wird neben dem jeweiligen Admin- oder Moderator-Passwort überall in der Weboberfläche für sämtliche Mailing-Listen akzeptiert. Also vorsichtig wählen! Das &amp;quot;site password&amp;quot; einrichten mit dem Befehl: &lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/mmsitepass&lt;br /&gt;
&lt;br /&gt;
=== Cronjobs einrichten ===&lt;br /&gt;
&lt;br /&gt;
In die [[Cron |Crontab]] werden Befehle eingetragen, um die Mail-Warteschlange abzuarbeiten, Logs zu löschen, usw.:&lt;br /&gt;
&lt;br /&gt;
 # Warteschlange jede Minute bearbeiten:&lt;br /&gt;
 * * * * *	~/mailman/bin/qrunner -o -r All&lt;br /&gt;
 # Verarbeitungslogs in der 47ten Minute jeder Stunde löschen:&lt;br /&gt;
 47 * * * *	rm -f ~/var/mailman/logs/qrunner&lt;br /&gt;
&lt;br /&gt;
Damit übernimmt cron die Funktion des qrunner-Dämons, der normalerweise auf einem Mailman-Server laufen sollte.&lt;br /&gt;
&lt;br /&gt;
Das Logfile wird stündlich gelöscht, da es sonst sehr schnell sehr groß wird. Falls Mailman von einem Paketuser (bspw. &amp;quot;xyz00-listen&amp;quot;) installiert wurde, sollte die letzte Zeile im Beispiel oben so lauten:&lt;br /&gt;
&lt;br /&gt;
 47 * * * * rm -f ~/mailman/var/logs/qrunner&lt;br /&gt;
&lt;br /&gt;
... entsprechend dem beim Konfigurieren angegebenen var-Verzeichnis, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zudem müssen noch die von Mailman ohnehin vorgesehenen cron-Aufträge aus ~/mailman/cron/crontab.in dem crontab des Users angehängt werden:&lt;br /&gt;
&lt;br /&gt;
 crontab -l &amp;gt; mycronjobs.tmp&lt;br /&gt;
 cat ~/mailman/cron/crontab.in &amp;gt;&amp;gt; mycronjobs.tmp&lt;br /&gt;
 crontab mycronjobs.tmp&lt;br /&gt;
&lt;br /&gt;
== Mailinglisten einrichten ==&lt;br /&gt;
&lt;br /&gt;
Jetzt läuft die Software; nun können die eigentlichen Verteiler angelegt werden. Als erster &#039;&#039;&#039;muß&#039;&#039;&#039; ein Hauptverteiler (&amp;quot;site list&amp;quot;) eingerichtet werden. Dieser Verteiler dient u.a. als Absender der Paßwort-Erinnerungen an die Abonnenten aller Mailinglisten. Er hat standardmäßig den Namen &amp;quot;mailman&amp;quot;. Falls ein anderer Name verwendet werden soll, muß dieser mit der Anweisung &lt;br /&gt;
&lt;br /&gt;
 MAILMAN_SITE_LIST = &#039;sitelistname&#039;&lt;br /&gt;
&lt;br /&gt;
in der Konfigurationsdatei mailman/Mailman/mm_cfg.py eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
=== Den Hauptverteiler &amp;quot;mailman&amp;quot; anlegen ===&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;site list&amp;quot; mit dem Namen &amp;quot;mailman&amp;quot; ist die Mailingliste der lokalen Mailman-Administratoren. Sie wird zur einwandfreien Funktion von Mailman benötigt.&lt;br /&gt;
&lt;br /&gt;
Mit dem Mailman-Befehl newlist den Verteiler anlegen:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/newlist mailman&lt;br /&gt;
 Enter the email of the person running the list: admin@xyz00.hostsharing.net&lt;br /&gt;
 Initial mailman password:&lt;br /&gt;
&lt;br /&gt;
(Der Befehl newlist kann – alternativ zur Weboberfläche – später benutzt werden, um gewöhnliche Mailinglisten anzulegen.)&lt;br /&gt;
&lt;br /&gt;
Nur dieses eine Mal für die &amp;quot;site list&amp;quot; müssen wir die Konfigurationsvorgaben laden. (Gewöhnliche Mailinglisten werden später über die Weboberfläche konfiguriert.)&lt;br /&gt;
&lt;br /&gt;
Falls mailman vom Paketuser (bspw. &amp;quot;xyz00-listen&amp;quot;) installiert wurde:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/mailman/var/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
Falls mailman vom Paketadmin (&amp;quot;xyz00&amp;quot;) installiert wurde:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/config_list -i ~/var/mailman/data/sitelist.cfg mailman&lt;br /&gt;
&lt;br /&gt;
Diese Konfigurationsdatei soll &#039;&#039;&#039;nicht&#039;&#039;&#039; auf gewöhnliche Mailinglisten anwendet werden.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail Adressen bei Mailman einrichten ===&lt;br /&gt;
&lt;br /&gt;
Sobald ein neuer Verteiler angelegt worden ist, sendet Mailman eine E-Mail an den dabei eingetragenen Listenadministrator. Diese E-Mail enthält die Anweisung, E-Mail-Aliases für den neuen Verteiler und für die verschiedenen Mailman-Funktionen anzulegen. Bei Hostsharing wird die Zustellung von E-Mails an Mailman anders geregelt: alle E-Mails an Mailman werden an erweiterte &#039;&#039;E-Mail-Adressen&#039;&#039; des Mailman-Users xyz00-listen geschickt. Diese Adressen haben die form xyz00-listen&#039;&#039;&#039;+&#039;&#039;&#039;&amp;lt;liste&amp;gt;[_funktion]. E-Mails an diese Adressen werden dann durch Pipe-Anweisungen in &#039;&#039;.forward-Dateien&#039;&#039; im Home-Verzeichnis des Mailman-Users mit den entsprechenden Argumenten an Mailman übergeben. &lt;br /&gt;
&lt;br /&gt;
Falls Mailman von einem Paketuser (bspw. &amp;quot;xyz00-listen&amp;quot;) installiert wurde, werden  &#039;&#039;E-Mail-Adressen&#039;&#039; werden durch [https://doc.hostsharing.net/users/administration/hsadmin/index.html hsadmin (bzw. das Befehlszeielentool hsscript)] eingerichtet; die &#039;&#039;.forward-Dateien&#039;&#039; werden durch [[Login_mit_SSH|Shell-Befehle]] angelegt.&lt;br /&gt;
&lt;br /&gt;
Das folgende Beispiel zeigt die Befehle, mit denen in einer interaktiven hsscript-Sitzung die E-Mail-Adressen für die Hauptliste &amp;quot;mailman&amp;quot; eingerichtet werden. (Für spätere Mailinglisten wird in den Argumenten &amp;quot;mailman&amp;quot; durch den Namen der Mailingliste ersetzt.)&lt;br /&gt;
&lt;br /&gt;
   hsscript -u xyz00 -i&lt;br /&gt;
   [hsscript verlangt die Eingabe des Passworts vom Paketadmin xyz00; dann können diese Befehle eingegeben werden:]&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman&#039;,target:&#039;xyz00-listen+mailman&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-admin&#039;,target:&#039;xyz00-listen+mailman-admin&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-bounces&#039;,target:&#039;xyz00-listen+mailman-bounces&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-confirm&#039;,target:&#039;xyz00-listen+mailman-confirm&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-join&#039;,target:&#039;xyz00-listen+mailman-join&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-leave&#039;,target:&#039;xyz00-listen+mailman-leave&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-owner&#039;,target:&#039;xyz00-listen+mailman-owner&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-request&#039;,target:&#039;xyz00-listen+mailman-request&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-subscribe&#039;,target:&#039;xyz00-listen+mailman-subscribe&#039;}})&lt;br /&gt;
   emailaddress.add ({set:{domain:&#039;listen.example.com&#039;,localpart:&#039;mailman-unsubscribe&#039;,target:&#039;xyz00-listen+mailman-unsubscribe&#039;}})&lt;br /&gt;
&lt;br /&gt;
Die korrekte Einrichtung der E-Mail-Adressen kann in der Web-Oberfläche von hsadmin kontrolliert werden.&lt;br /&gt;
&lt;br /&gt;
Für jede der soeben eingerichteten Adressen wird nun eine .forward-Datei im Homeverzeichnis des Users xyz00-listen angelegt. Die Dateinamen bestehen aus der Zeichenfolge &amp;quot;.forward+&amp;quot; gefolgt vom Namen der ausführen soll. Der Inhalt der jeweiligen .forward-Datei legt die Weiterleitung der Mail durch einen Pipe an Mailman fest, mit dem jeweiligen Befehl als Argument:&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman [Befehl] [Listenname]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel wird die .forward-Datei .forward+mailman-subscribe verwendet, wenn eine E-Mail an die Adresse mailman-subscribe@listen.example.com eingeht. Aufgrund der oben eingerichteten E-Mail-Adresse mit dem Ziel &amp;quot;xyz00-listen+mailman-subscribe&amp;quot; wertet der Mail-Transfer-Agent die .forward-Datei .forward+mailman-subscribe im Home-Verzeichnis des Users xyz00-listen aus, und entsprechend ihrem Inhalt wird die Mail an die Mailman-Software mit den Argumenten &amp;quot;subscribe mailman&amp;quot; übergeben.&lt;br /&gt;
&lt;br /&gt;
Das folgende Beispiel zeigt die Befehle, mit denen an der Befehlszeilenaufforderung der Shell die .forward-Dateien für die Hauptliste &amp;quot;mailman&amp;quot; eingerichtet werden. (Für spätere Mailinglisten wird in den Argumenten und in den Namen der .forward-Dateien &amp;quot;mailman&amp;quot; durch den Namen der Mailingliste ersetzt, jedoch &#039;&#039;&#039;nicht&#039;&#039;&#039; in der Pfadangabe zum Mailman-Programm selbst; diese ändert sich ja nicht.)&lt;br /&gt;
&lt;br /&gt;
 echo &#039;admin@xyz00.hostsharing.net&#039; &amp;gt; .forward # Weiterleitung von cron Fehlern etc an Paketadmin.&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman post mailman&amp;quot;&#039; &amp;gt; .forward+mailman&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman admin mailman&amp;quot;&#039; &amp;gt; .forward+mailman-admin&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman bounces mailman&amp;quot;&#039; &amp;gt; .forward+mailman-bounces&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman confirm mailman&amp;quot;&#039; &amp;gt; .forward+mailman-confirm&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman join mailman&amp;quot;&#039; &amp;gt; .forward+mailman-join&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman leave mailman&amp;quot;&#039; &amp;gt; .forward+mailman-leave&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman owner mailman&amp;quot;&#039; &amp;gt; .forward+mailman-owner&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman request mailman&amp;quot;&#039; &amp;gt; .forward+mailman-request&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman subscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-subscribe&lt;br /&gt;
 echo &#039;&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman unsubscribe mailman&amp;quot;&#039; &amp;gt; .forward+mailman-unsubscribe&lt;br /&gt;
&lt;br /&gt;
Die vielen Befehle können von dieser Anleitung kopiert und nach Anpassung auf den tatsächlichen Unsernamen in die SSH-Sitzung kopiert werden. Noch leichter ist es, mit einem Editor einen Shell-Skript namens ~/bin/addforwards mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # .forward-Dateien für einen Verteiler unter Mailman einrichten.&lt;br /&gt;
 #&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Aufruf: $0 Listenname\n&amp;quot; &lt;br /&gt;
    exit&lt;br /&gt;
 fi&lt;br /&gt;
 if [ &amp;quot;$2&amp;quot; != &amp;quot;&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Aufruf: $0 Listenname\n&amp;quot; &lt;br /&gt;
    exit&lt;br /&gt;
 fi&lt;br /&gt;
 if [ &amp;quot;`pwd`&amp;quot; != &amp;quot;`echo ~`&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Diesen Befehl vom Home-Verzeichnis aus aufrufen.\n&amp;quot; &lt;br /&gt;
    exit&lt;br /&gt;
 fi&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman post $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman admin $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-admin&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman bounces $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-bounces&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman confirm $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-confirm&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman join $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-join&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman leave $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-leave&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman owner $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-owner&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman request $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-request&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman subscribe $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-subscribe&lt;br /&gt;
 echo &amp;quot;\&amp;quot;|/home/pacs/xyz00/users/listen/mailman/mail/mailman unsubscribe $1\&amp;quot;&amp;quot; &amp;gt; .forward+$1-unsubscribe&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Der Skript muß natürlich als ausführbar gekennzeichnet werden:&lt;br /&gt;
&lt;br /&gt;
  ~$ chmod u+x bin/addforwards&lt;br /&gt;
&lt;br /&gt;
Die Erweiterung dieses Skripts um die hsscript-Befehle wird dem Leser als Aufgabe überlassen.&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
&lt;br /&gt;
Als erstes sollte man als Administrator der neuen Mailman-Installation die Liste &amp;quot;mailman&amp;quot; selbst abonnieren. Die Liste &amp;quot;mailman&amp;quot; kann aber unter https://listen.example.com/mailman/admin/mailman verwaltet werden.&lt;br /&gt;
&lt;br /&gt;
Die Hauptseite der Mailman-Web-Verwaltung ist in unserem Beispiel (mit den oben angegebenen Rewrite-Anweisungen in der Datei .htaccess) https://listen.example.com/mailman/admin/. Diese Seite enthält Links zu den bisher eingerichteten Mailinglisten (außer &amp;quot;mailman&amp;quot;) und einen Link, um neue Mailinglisten anzulegen (https://listen.example.com/mailman/create). Das Anlegen einer neuen Mailingliste geschieht entweder über diesen Link oder (wie oben) in der Shell mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/newlist &amp;lt;Listenname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In beiden Fällen müssen zusätzlich die E-Mail-Adressen und die .forward-Dateien wie bei dem Einrichten der Liste &amp;quot;mailman&amp;quot; nach Verfahren im obigen Abschnitt angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Für die Verwaltung der Mailinglisten im Alltag, d.h. den Umgang mit Bounces, Spam, Abonnenten usw., siehe u.a. die [https://wiki.list.org/ Mailman-Wiki].&lt;br /&gt;
&lt;br /&gt;
== Feintuning == &lt;br /&gt;
&lt;br /&gt;
Wer will, kann auch noch etwas Platz sparen. Die normale Mailmaninstallation schlägt mit über 20 MB zu Buche...&lt;br /&gt;
&lt;br /&gt;
Mit den folgenden Tips kann man das auf ca. 6 MB reduzieren :)&lt;br /&gt;
&lt;br /&gt;
Es kann natürlich sein, dass ich zuviel lösche, aber bei mir funktioniert&#039;s. Wenn ihr also sicher(er) sein wollt, dass euch der Mailman nicht um die Ohren fliegt, macht das nicht!&lt;br /&gt;
&lt;br /&gt;
*  ~/mailman/cgi-bin und ~/mailman/icons können gelöscht werden, falls sie an andere Stelle kopiert worden sind.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/messages löschen.&lt;br /&gt;
* Die nicht benötigten Sprachen in ~/mailman/templates löschen (bis auf englisch).&lt;br /&gt;
* ~/mailman/tests kann, soweit ich das sehe, komplett gelöscht werden.&lt;br /&gt;
* Falls man koreanisch und japanisch nicht braucht, kann man folgendes machen:&lt;br /&gt;
* in ~/mailman/bin/paths.py, ~/mailman/cron/paths.py und ~/mailman/scripts/paths.py die Zeilen:&lt;br /&gt;
&lt;br /&gt;
 # In a normal interactive Python environment, the japanese.pth and korean.pth&lt;br /&gt;
 # files would be imported automatically.  But because we inhibit the importing&lt;br /&gt;
 # of the site module, we need to be explicit about importing these codecs.&lt;br /&gt;
 if not jaok:&lt;br /&gt;
     import japanese&lt;br /&gt;
 # As of KoreanCodecs 2.0.5, you had to do the second import to get the Korean&lt;br /&gt;
 # codecs installed, however leave the first import in there in case an upgrade&lt;br /&gt;
 # changes this.&lt;br /&gt;
 if not kook:&lt;br /&gt;
     import korean&lt;br /&gt;
     import korean.aliases&lt;br /&gt;
&lt;br /&gt;
auskommentieren.&lt;br /&gt;
&lt;br /&gt;
Dann kann man ~/mailman/pythonlib/japanese, ~/mailman/pythonlib/korean, ~/mailman/pythonlib/korean.pth sowie ~/mailman/pythonlib/lib löschen.&lt;br /&gt;
   &lt;br /&gt;
Man kann auch noch die Debug-Informationen aus den binaries strippen:&lt;br /&gt;
&lt;br /&gt;
 strip ~/mailman/mail/mailman&lt;br /&gt;
 strip ~/mailman/cgi-bin/*&lt;br /&gt;
&lt;br /&gt;
Falls die CGIs nicht gesymlinkt wurden:&lt;br /&gt;
&lt;br /&gt;
 strip ~/doms/listen.example.com/cgi/mailman/*&lt;br /&gt;
&lt;br /&gt;
== Multidomainfähigkeit ==&lt;br /&gt;
&lt;br /&gt;
Seit Mailman 2.x kann eine Mailman-Installation unter gewissen Einschränkungen für mehrere Domains verwendet werden. Hier soll kurz gezeigt werden, was geht und wie es geht.&lt;br /&gt;
&lt;br /&gt;
=== Anleitung ===&lt;br /&gt;
&lt;br /&gt;
Logischerweise muss das Webfrontend (die CGIs) auf allen Domains installiert werden.&lt;br /&gt;
&lt;br /&gt;
Wenn man nun Mailinglisten mit newlist neu anlegt, muss man den Hostnamen für das Webfontend mit angeben, und zwar so:&lt;br /&gt;
&lt;br /&gt;
 ~$ mailman/bin/newlist listenname@listen.example.com&lt;br /&gt;
&lt;br /&gt;
Es ist ggf. wichtig, dass in der mm_cfg.py eine entsprechende add_virtualhost-Direktive für www.example.com steht, die der Frontend-URL einen Host-Part für die Mailadressen zuordnet. Ist eine solche Direktive nicht vorhanden, so wird listen.example.com sowohl als URL für das Webfrontend wie auch als Hostpart für Emailadressen verwendet. (Was für separate aufgeschaltete Domains wie z.B. listen.example.com gerade zutrifft.)&lt;br /&gt;
&lt;br /&gt;
Liegt das Frondend nicht auf der Maildomain ist es wichtig, dass ihr Mailman sagt, für welches die zugehörige Maildomain ist. Dies tut ihr in der Datei ~/mailman/Mailman/mm_cfg.py:&lt;br /&gt;
&lt;br /&gt;
Also z.B.&lt;br /&gt;
 DEFAULT_URL_HOST = &#039;www.example.com&#039;&lt;br /&gt;
 DEFAULT_EMAIL_HOST = &#039;listen.example.com&#039;&lt;br /&gt;
 add_virtualhost(DEFAULT_URL_HOST,DEFAULT_EMAIL_HOST)&lt;br /&gt;
&lt;br /&gt;
und&lt;br /&gt;
 add_virtualhost(&#039;www.zoopnet.de&#039;, &#039;lists.zoopnet.de&#039;)&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass Mailman per default davon ausgeht, dass alle Listen für die Domain example.com sind.&lt;br /&gt;
Alle weiteren add_virtualhost-Direktiven ordnen einem Hostnamen für das Webfrontend (z.B. www.zoopnet.de) einen Hostpart für die Adresse der Mailinglisten (z.B. lists.zoopnet.de) zu.&lt;br /&gt;
&lt;br /&gt;
Tip von Raimund Specht: Lässt man den zweiten Parameter weg, also schreibt z.B. add_virtualhost(&#039;www.example.org&#039;), dann benutzt Mailman als Hostpart alles was nach dem ersten Punkt steht, hier also example.org als Maildomain.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Prinzipiell war&#039;s das. Man muss die Listeneinträge natürlich immer in die richtige virtusertable eintragen, und für gleichnamige Mailinglisten auf verschiedenen Domains (mailman@*) verschidene +Ergänzungen bzw. aliase verwenden. :)&lt;br /&gt;
&lt;br /&gt;
=== Probleme ===&lt;br /&gt;
&lt;br /&gt;
Verschiedene Listen mit gleichem Namen (also z.B. liste@example1.com und liste@example2.com) sind mit Mailman 2.1 leider nicht möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips und Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== URL Änderungen ===&lt;br /&gt;
Nach URL Änderungen stimmen Links im Web-Interface nicht mehr und Listen werden nicht mehr angezeigt.&lt;br /&gt;
Es sind dann, zusätzlich zur Anpassung der mm_cfg.py, schon bestehende Listen und Archive mit folgendem Befehl zu aktualisieren:&lt;br /&gt;
 ~/mailman/bin/withlist -l -r fix_url &amp;lt;Listen_Name&amp;gt; -v -u &amp;lt;Neue_Url&amp;gt;&lt;br /&gt;
&amp;lt;Listen_Name&amp;gt; steht für die Mailingliste, die bearbeitet werden soll. &amp;lt;Neue_Url&amp;gt; für die neue URL/Webadresse des Webinterfaces.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Cron-Jobs zur Mailinglisten Verwaltung ===&lt;br /&gt;
&lt;br /&gt;
Folgende Cronjobs helfen bei der Verwaltung und sind User freundlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt; In Arbeit &amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referenzen ==&lt;br /&gt;
&lt;br /&gt;
Lösung zur installation als Domainadmin (xyz00-listen) statt Paketadmin (xyz00): https://lists.hostsharing.net/archiv/support/2009-June/019414.html&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ältere Anleitung für Installation als Domain-Admin (xyz00-listen): &amp;lt;http://lists.hostsharing.net/archiv/support/2005-January/012426.html&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kleine Tools&amp;quot; auf http://hs.andreasloesch.de/, wobei das &#039;pac-mm-install&#039; wahrscheinlich nicht aktuell (genug) ist&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Mailinglisten]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;/div&gt;</summary>
		<author><name>Ara00-wp</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Greylisting&amp;diff=5061</id>
		<title>Greylisting</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Greylisting&amp;diff=5061"/>
		<updated>2019-12-08T16:40:07Z</updated>

		<summary type="html">&lt;p&gt;Ara00-wp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Greylisting ist eine Methode, von Spambots eingelieferte E-Mail abzuweisen. Dabei macht sich die Methode das Verhalten primitiver Spambots zunutze, E-Mail einfach bei einem Mailserver einzuliefern, aber sich dann nicht mehr um dessen Antworten zu kümmern. Dadurch unterscheiden sich Spambots von richtigen Mailservern. &lt;br /&gt;
&lt;br /&gt;
Bei Greylisting wird die erste E-Mail eines Absenders immer zurückgewiesen und der sendende Mailserver aufgefordert, nach einer Zeitspanne noch mal zu senden. Wenn die E-Mail ein zweites Mal eingeliefert wird, nimmt das System die E-Mail an und speichert gleichzeitig den Absender in einer Datenbank. E-Mails von dieser Quelle werden dann zukünftig ohne Verzögerung weiter verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Weiter Einzelheiten findet man im Artikel der [[wikipedia:de:Greylisting|Wikipedia über Greylisting]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;/div&gt;</summary>
		<author><name>Ara00-wp</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Nameserver&amp;diff=5060</id>
		<title>Nameserver</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Nameserver&amp;diff=5060"/>
		<updated>2019-12-08T16:35:48Z</updated>

		<summary type="html">&lt;p&gt;Ara00-wp: aktuelles&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Für Domains, die bei Hostsharing registriert sind, gibt es drei redundante Nameserver, die auf Anfrage die Zuordnung Domainname (z.B. www.example.com) -&amp;gt; IP-Adresse (z.B. 1.2.3.4) vornehmen. Diese Nameserver stehen aus Gründen der Zuverlässigkeit und Ausfallsicherheit in drei verschiedenen autonomen Systemen (AS siehe http://de.wikipedia.org/wiki/Autonomes_System) an verschiedenen Standorten. Die Namen dieser Nameserver lauten:&lt;br /&gt;
&lt;br /&gt;
* dns1.hostsharing.net&lt;br /&gt;
* dns2.hostsharing.net&lt;br /&gt;
* dns3.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
Jede Nutzung eines Dienstes (z.B. E-Mail, WWW, FTP, SSH und viele andere) im Internet, die über den Domainnamen des zugehörigen Rechners erfolgt, benötigt einen Nameserver, der die Frage nach der IP-Adresse des Rechners beantwortet.&lt;br /&gt;
&lt;br /&gt;
Ohne Nameserver kann der Dienst natürlich auch erreicht werden, und zwar direkt über seine IP-Adresse. Aber nur die Existenz des Nameservers erlaubt es, den Dienst über seinen Domainnamen aufzurufen.&lt;br /&gt;
&lt;br /&gt;
===Bug===&lt;br /&gt;
Manchmal regiert im Domainbestellsystem &#039;&#039;&#039;fuzzy logic&#039;&#039;&#039; und Einträge für secondary Domainserver werden nicht gleich angenommen. Es brauch schon mal einen vierten Versuch, aber dann klappts.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[Verwalten der Zonendaten]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Zonefile]]&lt;br /&gt;
[[Kategorie:DNS]]&lt;br /&gt;
[[Kategorie:Domains]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Ara00-wp</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Nameserver&amp;diff=5059</id>
		<title>Nameserver</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Nameserver&amp;diff=5059"/>
		<updated>2019-12-08T16:33:04Z</updated>

		<summary type="html">&lt;p&gt;Ara00-wp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Für Domains, die bei Hostsharing registriert sind, gibt es drei redundante Nameserver, die auf Anfrage die Zuordnung Domainname (z.B. www.example.com) -&amp;gt; IP-Adresse (z.B. 1.2.3.4) vornehmen. Diese Nameserver stehen aus Gründen der Zuverlässigkeit und Ausfallsicherheit in drei verschiedenen autonomen Systemen (AS siehe http://de.wikipedia.org/wiki/Autonomes_System) an verschiedenen Standorten. Die Namen dieser Nameserver lauten:&lt;br /&gt;
&lt;br /&gt;
* dns1.hostsharing.net&lt;br /&gt;
* dns2.hostsharing.net&lt;br /&gt;
* dns3.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
Jede Nutzung eines Dienstes (z.B. E-Mail, WWW, FTP, SSH und viele andere) im Internet, die über den Domainnamen des zugehörigen Rechners erfolgt, benötigt einen Nameserver, der die Frage nach der IP-Adresse des Rechners beantwortet.&lt;br /&gt;
&lt;br /&gt;
Ohne Nameserver kann der Dienst natürlich auch erreicht werden, und zwar direkt über seine IP-Adresse. Aber nur die Existenz des Nameservers erlaubt es, den Dienst über seinen Domainnamen aufzurufen.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[Verwalten der Zonendaten]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Zonefile]]&lt;br /&gt;
[[Kategorie:DNS]]&lt;br /&gt;
[[Kategorie:Domains]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Ara00-wp</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Mlmmj&amp;diff=5058</id>
		<title>Mlmmj</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Mlmmj&amp;diff=5058"/>
		<updated>2019-12-08T16:32:06Z</updated>

		<summary type="html">&lt;p&gt;Ara00-wp: /* mlmmj */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mailing List Management Made Joyful ==&lt;br /&gt;
&lt;br /&gt;
[http://www.mlmmj.org/ mlmmj] ist ein Programm, mit dem Sie in einem Hostsharing Paket E-Mail-Verteiler realisiert werden können.&lt;br /&gt;
&lt;br /&gt;
Vergleichen Sie dazu auch den Wikipedia-Artikel:&lt;br /&gt;
[http://de.wikipedia.org/wiki/Mailingliste Mailingliste]&lt;br /&gt;
&lt;br /&gt;
Alternative: [[Mailman]]&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt die Installation einer Mailingliste in einem Hostsharing WEB-Paket für eine Domain.&lt;br /&gt;
&lt;br /&gt;
== mlmmj ==&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen  ===&lt;br /&gt;
&lt;br /&gt;
Das Debian Paket [http://packages.debian.org/search?keywords=mlmmj mlmmj] ist auf den Shared-Hosting-Servern bereits installiert.&lt;br /&gt;
&lt;br /&gt;
Für den Betrieb der Mailingliste empfehle ich das Anlegen eines Users für diesen Zweck mit hsadmin.&lt;br /&gt;
&lt;br /&gt;
Sei mein Paket &#039;&#039;xyz00&#039;&#039; und der User &#039;&#039;xyz00-list&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Sei meine Domain &#039;&#039;example.org&#039;&#039; und die E-Mail-Adresse für die Liste &#039;&#039;discuss@example.org&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Domain muss bei einem beliebigen User im Paket &#039;&#039;xyz00&#039;&#039; aufgeschaltet sein. Die E-Mail-Adresse wird ebenfalls mit hsadmin eingerichtet. Das Target ist der User &#039;&#039;xyz00-list&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Hier werden User und E-Mail-Adresse mit Hilfe des hsadmin-Interpreters &#039;&#039;hsscript&#039;&#039; angelegt:&lt;br /&gt;
&lt;br /&gt;
  xyz00@h03:~$ hsscript -i&lt;br /&gt;
  Password: *************&lt;br /&gt;
  xyz00@hsadmin&amp;gt; user.add({set:{name:&#039;xyz00-list&#039;,comment:&#039;Mailingliste Discuss&#039;,shell:&#039;/bin/bash&#039;,password:&#039;geheimnis&#039;}})&lt;br /&gt;
  xyz00@hsadmin&amp;gt; emailaddress.add({set:{target:&#039;xyz00-list&#039;,localpart:&#039;discuss&#039;,domain:&#039;example.org&#039;}})&lt;br /&gt;
  xyz00@hsadmin&amp;gt; bye&lt;br /&gt;
&lt;br /&gt;
=== Einrichtung  ===&lt;br /&gt;
&lt;br /&gt;
Ich melde mich auf der Linux-Kommandozeile als User &#039;&#039;xyz00-list&#039;&#039; an.&lt;br /&gt;
&lt;br /&gt;
Für den User lege ich in seinem Heimat-Verzeichnis das Unterverzeichnis &amp;quot;mlmmj&amp;quot; an:&lt;br /&gt;
&lt;br /&gt;
  mkdir /home/pacs/xyz00/users/list/mlmmj&lt;br /&gt;
&lt;br /&gt;
Dann lege ich die Mailingliste mit folgendem Kommando an:&lt;br /&gt;
&lt;br /&gt;
  mlmmj-make-ml -L discuss -s /home/pacs/xyz00/users/list/mlmmj&lt;br /&gt;
&lt;br /&gt;
Das Skript fragt weitere Parameter der Mailingliste ab:&lt;br /&gt;
&lt;br /&gt;
  The Domain for the List? [] : example.org&lt;br /&gt;
  The emailaddress of the list owner? [postmaster] : webmaster@example.org&lt;br /&gt;
  For the list texts you can choose between the following languages or&lt;br /&gt;
  give a absolute path to a directory containing the texts.&lt;br /&gt;
  Available languages:&lt;br /&gt;
  cz  da	de  en	es  fr	it  nl	ru&lt;br /&gt;
  The path to texts for the list? [en] : de&lt;br /&gt;
&lt;br /&gt;
Damit ist unter &amp;quot;/home/pacs/xyz00/users/list/mlmmj&amp;quot; ein Verzeichnis &amp;quot;discuss&amp;quot; angelegt,&lt;br /&gt;
das die Datenstruktur zur Verwaltung der Mailingliste enthält.&lt;br /&gt;
&lt;br /&gt;
Weitere Konfigurationen der Liste erfolgen durch das Anlegen von Dateien im&lt;br /&gt;
Verzeichnis &amp;quot;/home/pacs/xyz00/users/list/mlmmj/discuss/control&amp;quot;.&lt;br /&gt;
Die Konfigurationsmöglichkeiten finden Sie auf der [http://mlmmj.org/docs/tunables/ Internetseite von mlmmj]&lt;br /&gt;
&lt;br /&gt;
Für den User lege ich in seinem Heimat-Verzeichnis die Datei &amp;quot;.forward&amp;quot; mit folgenden Inhalt an (Achtung, die Anführungszeichen nicht vergessen!):&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;|/usr/bin/mlmmj-recieve -L /home/pacs/xyz00/users/list/mlmmj/discuss/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese Datei sorgt dafür, dass eingehende E-Mail für die Liste an das Programm &#039;&#039;mlmmj-recieve&#039;&#039;&lt;br /&gt;
übergeben und dort verarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
Für regelmäßige Aufgaben der Listen-Managers definiere ich die&lt;br /&gt;
crontab wie folgt (immer noch als &#039;&#039;xyz00-list&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
  MAILTO=webmaster@example.org&lt;br /&gt;
  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin&lt;br /&gt;
  HOME=/home/pacs/xyz00/users/list&lt;br /&gt;
  SHELL=/bin/bash&lt;br /&gt;
  LANG=en_US.UTF-8&lt;br /&gt;
  # m h  dom mon dow   command&lt;br /&gt;
  28 */4 * * * /usr/bin/mlmmj-maintd -d /home/pacs/xyz00/users/list/mlmmj -F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Schluss trage ich noch die gewünschten E-Mail-Adressen ein:&lt;br /&gt;
&lt;br /&gt;
  /usr/bin/mlmmj-sub -L /home/pacs/xyz00/users/list/mlmmj/discuss -a klaus.muster@gmx.de -c &lt;br /&gt;
  /usr/bin/mlmmj-sub -L /home/pacs/xyz00/users/list/mlmmj/discuss -a sabine.beispiel@arcor.de -c &lt;br /&gt;
&lt;br /&gt;
Dabei bewirkt &amp;quot;-c&amp;quot;, dass der Abonnent eine Begrüßungs-Nachricht erhält. Alternativ kann man &amp;quot;-C&amp;quot; (großes Ce)&lt;br /&gt;
angeben. Dann muss der Abonnent das Abo durch Antworten auf die Nachricht bestätigen.&lt;br /&gt;
&lt;br /&gt;
=== weitere Konfiguration  ===&lt;br /&gt;
&lt;br /&gt;
Noch ein paar Dinge, die Sie möglicherweise einstellen wollen:&lt;br /&gt;
&lt;br /&gt;
Ein Prefix in der Betreffzeile setzen, z.B.: &amp;quot;[discuss]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
  echo &amp;quot;[discuss]&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/prefix&lt;br /&gt;
&lt;br /&gt;
Die Liste darf nur E-Mails von eingetragenen Abonnenten weiterleiten:&lt;br /&gt;
&lt;br /&gt;
  touch /home/pacs/xyz00/users/list/mlmmj/discuss/control/subonlypost&lt;br /&gt;
&lt;br /&gt;
Das Abonnement muss vom Listen-Owner bestätigt werden:&lt;br /&gt;
&lt;br /&gt;
  touch /home/pacs/xyz00/users/list/mlmmj/discuss/control/submod&lt;br /&gt;
&lt;br /&gt;
Einen &amp;quot;Reply-To:&amp;quot;-Header setzen, so dass Antwort-EMails immer an den Verteiler gehen:&lt;br /&gt;
&lt;br /&gt;
   echo &amp;quot;Reply-To:&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/delheaders&lt;br /&gt;
   echo &amp;quot;Reply-To: discuss@example.org&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/customheaders&lt;br /&gt;
&lt;br /&gt;
Weitere Möglichkeiten finden Sie (wie oben bereits angegeben) &lt;br /&gt;
auf der [http://mlmmj.org/docs/tunables/ Internetseite von mlmmj]&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration im Browser ===&lt;br /&gt;
&lt;br /&gt;
Die Original-Distribution von &#039;&#039;mlmmj&#039;&#039; enthält ein paar einfache PHP- und Perl-Skripte. &lt;br /&gt;
Das sind Beispiele für Subscribe-/Unsubscribe-Formulare, ein Admin-Formular zum Eintragen und Löschen&lt;br /&gt;
von Abonnements und eine Seite mit der gesamten Listen-Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Wer es sich ansehen möchte:&lt;br /&gt;
&lt;br /&gt;
Als Paket-Admin eine Domain aufschalten:&lt;br /&gt;
&lt;br /&gt;
  hsscript -u xyz00 -e &amp;quot;domain.add({set:{name:&#039;lists.example.org&#039;,user:&#039;xyz00-list&#039;}})&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Und weiter als &amp;quot;xyz00-list&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Download von http://mlmmj.org/releases/mlmmj-1.2.18.0.tar.gz auspacken.&lt;br /&gt;
&lt;br /&gt;
Unter &amp;quot;/mlmmj-1.2.18.0/contrib/web/php-admin/&amp;quot; finden Sie im Paket die PHP-Admin-Anwendung.&lt;br /&gt;
&lt;br /&gt;
Also den Inhalt diese Verzeichnisses nach &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/&amp;quot; packen,&lt;br /&gt;
* in &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/conf/config.php&amp;quot; die Variable &amp;quot;$topdir&amp;quot; anpassen&lt;br /&gt;
* die Dateien aus &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/htdocs/&amp;quot; nach &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/htdocs-ssl/&amp;quot; verschieben&lt;br /&gt;
* in &amp;quot;/home/pacs/xyz00/users/list/mlmmj&amp;quot; und in &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/htdocs-ssl/&amp;quot; eine &amp;quot;.htaccess&amp;quot; mit folgendem Inhalt ablegen: &lt;br /&gt;
 &lt;br /&gt;
  Require valid-user&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthName &amp;quot;mlmmj web-interface&amp;quot;&lt;br /&gt;
  AuthUserFile /home/pacs/xyz00/users/list/doms/lists.example.org/etc/htpasswd&lt;br /&gt;
&lt;br /&gt;
Und schließlich die &amp;quot;htpasswd&amp;quot;-Datei anlegen.&lt;br /&gt;
&lt;br /&gt;
  cd /home/pacs/xyz00/users/list/doms/lists.example.org/etc/&lt;br /&gt;
  htpasswd -c htpasswd listadmin&lt;br /&gt;
&lt;br /&gt;
Ein Passwort angeben und auf&lt;br /&gt;
https://lists.example.org schauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Mailinglisten]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;/div&gt;</summary>
		<author><name>Ara00-wp</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Mlmmj&amp;diff=5057</id>
		<title>Mlmmj</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Mlmmj&amp;diff=5057"/>
		<updated>2019-12-08T16:30:38Z</updated>

		<summary type="html">&lt;p&gt;Ara00-wp: /* Voraussetzungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mailing List Management Made Joyful ==&lt;br /&gt;
&lt;br /&gt;
[http://www.mlmmj.org/ mlmmj] ist ein Programm, mit dem Sie in einem Hostsharing Paket E-Mail-Verteiler realisiert werden können.&lt;br /&gt;
&lt;br /&gt;
Vergleichen Sie dazu auch den Wikipedia-Artikel:&lt;br /&gt;
[http://de.wikipedia.org/wiki/Mailingliste Mailingliste]&lt;br /&gt;
&lt;br /&gt;
Alternative: [[Mailman]]&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt die Installation einer Mailingliste in einem Hostsharing WEB-Paket für eine Domain.&lt;br /&gt;
&lt;br /&gt;
== mlmmj ==&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen  ===&lt;br /&gt;
&lt;br /&gt;
Das Debian Paket [http://packages.debian.org/search?keywords=mlmmj mlmmj] ist auf den Shared-Hosting-Servern bereits installiert.&lt;br /&gt;
&lt;br /&gt;
Für den Betrieb der Mailingliste empfehle ich das Anlegen eines Users für diesen Zweck mit hsadmin.&lt;br /&gt;
&lt;br /&gt;
Sei mein Paket &#039;&#039;xyz00&#039;&#039; und der User &#039;&#039;xyz00-list&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Sei meine Domain &#039;&#039;example.org&#039;&#039; und die E-Mail-Adresse für die Liste &#039;&#039;discuss@example.org&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Domain muss bei einem beliebigen User im Paket &#039;&#039;xyz00&#039;&#039; aufgeschaltet sein. Die E-Mail-Adresse &lt;br /&gt;
wird ebenfalls mit hsadmin eingerichtet. Das Target ist der User &#039;&#039;xyz00-list&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Hier werden User und EMail-Adresse mit Hilfe des hsadmin-Interpreters &#039;&#039;hsscript&#039;&#039; angelegt:&lt;br /&gt;
&lt;br /&gt;
  xyz00@h03:~$ hsscript -i&lt;br /&gt;
  Password: *************&lt;br /&gt;
  xyz00@hsadmin&amp;gt; user.add({set:{name:&#039;xyz00-list&#039;,comment:&#039;Mailingliste Discuss&#039;,shell:&#039;/bin/bash&#039;,password:&#039;geheimnis&#039;}})&lt;br /&gt;
  xyz00@hsadmin&amp;gt; emailaddress.add({set:{target:&#039;xyz00-list&#039;,localpart:&#039;discuss&#039;,domain:&#039;example.org&#039;}})&lt;br /&gt;
  xyz00@hsadmin&amp;gt; bye&lt;br /&gt;
&lt;br /&gt;
=== Einrichtung  ===&lt;br /&gt;
&lt;br /&gt;
Ich melde mich auf der Linux-Kommandozeile als User &#039;&#039;xyz00-list&#039;&#039; an.&lt;br /&gt;
&lt;br /&gt;
Für den User lege ich in seinem Heimat-Verzeichnis das Unterverzeichnis &amp;quot;mlmmj&amp;quot; an:&lt;br /&gt;
&lt;br /&gt;
  mkdir /home/pacs/xyz00/users/list/mlmmj&lt;br /&gt;
&lt;br /&gt;
Dann lege ich die Mailingliste mit folgendem Kommando an:&lt;br /&gt;
&lt;br /&gt;
  mlmmj-make-ml -L discuss -s /home/pacs/xyz00/users/list/mlmmj&lt;br /&gt;
&lt;br /&gt;
Das Skript fragt weitere Parameter der Mailingliste ab:&lt;br /&gt;
&lt;br /&gt;
  The Domain for the List? [] : example.org&lt;br /&gt;
  The emailaddress of the list owner? [postmaster] : webmaster@example.org&lt;br /&gt;
  For the list texts you can choose between the following languages or&lt;br /&gt;
  give a absolute path to a directory containing the texts.&lt;br /&gt;
  Available languages:&lt;br /&gt;
  cz  da	de  en	es  fr	it  nl	ru&lt;br /&gt;
  The path to texts for the list? [en] : de&lt;br /&gt;
&lt;br /&gt;
Damit ist unter &amp;quot;/home/pacs/xyz00/users/list/mlmmj&amp;quot; ein Verzeichnis &amp;quot;discuss&amp;quot; angelegt,&lt;br /&gt;
das die Datenstruktur zur Verwaltung der Mailingliste enthält.&lt;br /&gt;
&lt;br /&gt;
Weitere Konfigurationen der Liste erfolgen durch das Anlegen von Dateien im&lt;br /&gt;
Verzeichnis &amp;quot;/home/pacs/xyz00/users/list/mlmmj/discuss/control&amp;quot;.&lt;br /&gt;
Die Konfigurationsmöglichkeiten finden Sie auf der [http://mlmmj.org/docs/tunables/ Internetseite von mlmmj]&lt;br /&gt;
&lt;br /&gt;
Für den User lege ich in seinem Heimat-Verzeichnis die Datei &amp;quot;.forward&amp;quot; mit folgenden Inhalt an (Achtung, die Anführungszeichen nicht vergessen!):&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;|/usr/bin/mlmmj-recieve -L /home/pacs/xyz00/users/list/mlmmj/discuss/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese Datei sorgt dafür, dass eingehende E-Mail für die Liste an das Programm &#039;&#039;mlmmj-recieve&#039;&#039;&lt;br /&gt;
übergeben und dort verarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
Für regelmäßige Aufgaben der Listen-Managers definiere ich die&lt;br /&gt;
crontab wie folgt (immer noch als &#039;&#039;xyz00-list&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
  MAILTO=webmaster@example.org&lt;br /&gt;
  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin&lt;br /&gt;
  HOME=/home/pacs/xyz00/users/list&lt;br /&gt;
  SHELL=/bin/bash&lt;br /&gt;
  LANG=en_US.UTF-8&lt;br /&gt;
  # m h  dom mon dow   command&lt;br /&gt;
  28 */4 * * * /usr/bin/mlmmj-maintd -d /home/pacs/xyz00/users/list/mlmmj -F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Schluss trage ich noch die gewünschten E-Mail-Adressen ein:&lt;br /&gt;
&lt;br /&gt;
  /usr/bin/mlmmj-sub -L /home/pacs/xyz00/users/list/mlmmj/discuss -a klaus.muster@gmx.de -c &lt;br /&gt;
  /usr/bin/mlmmj-sub -L /home/pacs/xyz00/users/list/mlmmj/discuss -a sabine.beispiel@arcor.de -c &lt;br /&gt;
&lt;br /&gt;
Dabei bewirkt &amp;quot;-c&amp;quot;, dass der Abonnent eine Begrüßungs-Nachricht erhält. Alternativ kann man &amp;quot;-C&amp;quot; (großes Ce)&lt;br /&gt;
angeben. Dann muss der Abonnent das Abo durch Antworten auf die Nachricht bestätigen.&lt;br /&gt;
&lt;br /&gt;
=== weitere Konfiguration  ===&lt;br /&gt;
&lt;br /&gt;
Noch ein paar Dinge, die Sie möglicherweise einstellen wollen:&lt;br /&gt;
&lt;br /&gt;
Ein Prefix in der Betreffzeile setzen, z.B.: &amp;quot;[discuss]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
  echo &amp;quot;[discuss]&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/prefix&lt;br /&gt;
&lt;br /&gt;
Die Liste darf nur E-Mails von eingetragenen Abonnenten weiterleiten:&lt;br /&gt;
&lt;br /&gt;
  touch /home/pacs/xyz00/users/list/mlmmj/discuss/control/subonlypost&lt;br /&gt;
&lt;br /&gt;
Das Abonnement muss vom Listen-Owner bestätigt werden:&lt;br /&gt;
&lt;br /&gt;
  touch /home/pacs/xyz00/users/list/mlmmj/discuss/control/submod&lt;br /&gt;
&lt;br /&gt;
Einen &amp;quot;Reply-To:&amp;quot;-Header setzen, so dass Antwort-EMails immer an den Verteiler gehen:&lt;br /&gt;
&lt;br /&gt;
   echo &amp;quot;Reply-To:&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/delheaders&lt;br /&gt;
   echo &amp;quot;Reply-To: discuss@example.org&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/customheaders&lt;br /&gt;
&lt;br /&gt;
Weitere Möglichkeiten finden Sie (wie oben bereits angegeben) &lt;br /&gt;
auf der [http://mlmmj.org/docs/tunables/ Internetseite von mlmmj]&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration im Browser ===&lt;br /&gt;
&lt;br /&gt;
Die Original-Distribution von &#039;&#039;mlmmj&#039;&#039; enthält ein paar einfache PHP- und Perl-Skripte. &lt;br /&gt;
Das sind Beispiele für Subscribe-/Unsubscribe-Formulare, ein Admin-Formular zum Eintragen und Löschen&lt;br /&gt;
von Abonnements und eine Seite mit der gesamten Listen-Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Wer es sich ansehen möchte:&lt;br /&gt;
&lt;br /&gt;
Als Paket-Admin eine Domain aufschalten:&lt;br /&gt;
&lt;br /&gt;
  hsscript -u xyz00 -e &amp;quot;domain.add({set:{name:&#039;lists.example.org&#039;,user:&#039;xyz00-list&#039;}})&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Und weiter als &amp;quot;xyz00-list&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Download von http://mlmmj.org/releases/mlmmj-1.2.18.0.tar.gz auspacken.&lt;br /&gt;
&lt;br /&gt;
Unter &amp;quot;/mlmmj-1.2.18.0/contrib/web/php-admin/&amp;quot; finden Sie im Paket die PHP-Admin-Anwendung.&lt;br /&gt;
&lt;br /&gt;
Also den Inhalt diese Verzeichnisses nach &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/&amp;quot; packen,&lt;br /&gt;
* in &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/conf/config.php&amp;quot; die Variable &amp;quot;$topdir&amp;quot; anpassen&lt;br /&gt;
* die Dateien aus &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/htdocs/&amp;quot; nach &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/htdocs-ssl/&amp;quot; verschieben&lt;br /&gt;
* in &amp;quot;/home/pacs/xyz00/users/list/mlmmj&amp;quot; und in &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/htdocs-ssl/&amp;quot; eine &amp;quot;.htaccess&amp;quot; mit folgendem Inhalt ablegen: &lt;br /&gt;
 &lt;br /&gt;
  Require valid-user&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthName &amp;quot;mlmmj web-interface&amp;quot;&lt;br /&gt;
  AuthUserFile /home/pacs/xyz00/users/list/doms/lists.example.org/etc/htpasswd&lt;br /&gt;
&lt;br /&gt;
Und schließlich die &amp;quot;htpasswd&amp;quot;-Datei anlegen.&lt;br /&gt;
&lt;br /&gt;
  cd /home/pacs/xyz00/users/list/doms/lists.example.org/etc/&lt;br /&gt;
  htpasswd -c htpasswd listadmin&lt;br /&gt;
&lt;br /&gt;
Ein Passwort angeben und auf&lt;br /&gt;
https://lists.example.org schauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Mailinglisten]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;/div&gt;</summary>
		<author><name>Ara00-wp</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Mlmmj&amp;diff=5056</id>
		<title>Mlmmj</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Mlmmj&amp;diff=5056"/>
		<updated>2019-12-08T16:30:05Z</updated>

		<summary type="html">&lt;p&gt;Ara00-wp: /* Mailing List Management Made Joyful */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mailing List Management Made Joyful ==&lt;br /&gt;
&lt;br /&gt;
[http://www.mlmmj.org/ mlmmj] ist ein Programm, mit dem Sie in einem Hostsharing Paket E-Mail-Verteiler realisiert werden können.&lt;br /&gt;
&lt;br /&gt;
Vergleichen Sie dazu auch den Wikipedia-Artikel:&lt;br /&gt;
[http://de.wikipedia.org/wiki/Mailingliste Mailingliste]&lt;br /&gt;
&lt;br /&gt;
Alternative: [[Mailman]]&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt die Installation einer Mailingliste in einem Hostsharing WEB-Paket für eine Domain.&lt;br /&gt;
&lt;br /&gt;
== mlmmj ==&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen  ===&lt;br /&gt;
&lt;br /&gt;
Das Debian Paket [http://packages.debian.org/search?keywords=mlmmj mlmmj] ist auf den Shared-Hosting-Servern bereits installiert.&lt;br /&gt;
&lt;br /&gt;
Für den Betrieb der Mailingliste empfehle ich das Anlegen eines Users für diesen Zweck mit hsadmin.&lt;br /&gt;
&lt;br /&gt;
Sei mein Paket &#039;&#039;xyz00&#039;&#039; und der User &#039;&#039;xyz00-list&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Sei meine Domain &#039;&#039;example.org&#039;&#039; und die Mail-Adresse für die Liste &#039;&#039;discuss@example.org&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Domain muss bei einem beliebigen User im Paket &#039;&#039;xyz00&#039;&#039; aufgeschaltet sein. Die E-Mail-Adresse &lt;br /&gt;
wird ebenfalls mit hsadmin eingerichtet. Das Target ist der User &#039;&#039;xyz00-list&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Hier werden User und EMail-Adresse mit Hilfe des hsadmin-Interpreters &#039;&#039;hsscript&#039;&#039; angelegt:&lt;br /&gt;
&lt;br /&gt;
  xyz00@h03:~$ hsscript -i&lt;br /&gt;
  Password: *************&lt;br /&gt;
  xyz00@hsadmin&amp;gt; user.add({set:{name:&#039;xyz00-list&#039;,comment:&#039;Mailingliste Discuss&#039;,shell:&#039;/bin/bash&#039;,password:&#039;geheimnis&#039;}})&lt;br /&gt;
  xyz00@hsadmin&amp;gt; emailaddress.add({set:{target:&#039;xyz00-list&#039;,localpart:&#039;discuss&#039;,domain:&#039;example.org&#039;}})&lt;br /&gt;
  xyz00@hsadmin&amp;gt; bye&lt;br /&gt;
&lt;br /&gt;
=== Einrichtung  ===&lt;br /&gt;
&lt;br /&gt;
Ich melde mich auf der Linux-Kommandozeile als User &#039;&#039;xyz00-list&#039;&#039; an.&lt;br /&gt;
&lt;br /&gt;
Für den User lege ich in seinem Heimat-Verzeichnis das Unterverzeichnis &amp;quot;mlmmj&amp;quot; an:&lt;br /&gt;
&lt;br /&gt;
  mkdir /home/pacs/xyz00/users/list/mlmmj&lt;br /&gt;
&lt;br /&gt;
Dann lege ich die Mailingliste mit folgendem Kommando an:&lt;br /&gt;
&lt;br /&gt;
  mlmmj-make-ml -L discuss -s /home/pacs/xyz00/users/list/mlmmj&lt;br /&gt;
&lt;br /&gt;
Das Skript fragt weitere Parameter der Mailingliste ab:&lt;br /&gt;
&lt;br /&gt;
  The Domain for the List? [] : example.org&lt;br /&gt;
  The emailaddress of the list owner? [postmaster] : webmaster@example.org&lt;br /&gt;
  For the list texts you can choose between the following languages or&lt;br /&gt;
  give a absolute path to a directory containing the texts.&lt;br /&gt;
  Available languages:&lt;br /&gt;
  cz  da	de  en	es  fr	it  nl	ru&lt;br /&gt;
  The path to texts for the list? [en] : de&lt;br /&gt;
&lt;br /&gt;
Damit ist unter &amp;quot;/home/pacs/xyz00/users/list/mlmmj&amp;quot; ein Verzeichnis &amp;quot;discuss&amp;quot; angelegt,&lt;br /&gt;
das die Datenstruktur zur Verwaltung der Mailingliste enthält.&lt;br /&gt;
&lt;br /&gt;
Weitere Konfigurationen der Liste erfolgen durch das Anlegen von Dateien im&lt;br /&gt;
Verzeichnis &amp;quot;/home/pacs/xyz00/users/list/mlmmj/discuss/control&amp;quot;.&lt;br /&gt;
Die Konfigurationsmöglichkeiten finden Sie auf der [http://mlmmj.org/docs/tunables/ Internetseite von mlmmj]&lt;br /&gt;
&lt;br /&gt;
Für den User lege ich in seinem Heimat-Verzeichnis die Datei &amp;quot;.forward&amp;quot; mit folgenden Inhalt an (Achtung, die Anführungszeichen nicht vergessen!):&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;|/usr/bin/mlmmj-recieve -L /home/pacs/xyz00/users/list/mlmmj/discuss/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Diese Datei sorgt dafür, dass eingehende E-Mail für die Liste an das Programm &#039;&#039;mlmmj-recieve&#039;&#039;&lt;br /&gt;
übergeben und dort verarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
Für regelmäßige Aufgaben der Listen-Managers definiere ich die&lt;br /&gt;
crontab wie folgt (immer noch als &#039;&#039;xyz00-list&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
  MAILTO=webmaster@example.org&lt;br /&gt;
  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin&lt;br /&gt;
  HOME=/home/pacs/xyz00/users/list&lt;br /&gt;
  SHELL=/bin/bash&lt;br /&gt;
  LANG=en_US.UTF-8&lt;br /&gt;
  # m h  dom mon dow   command&lt;br /&gt;
  28 */4 * * * /usr/bin/mlmmj-maintd -d /home/pacs/xyz00/users/list/mlmmj -F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Schluss trage ich noch die gewünschten E-Mail-Adressen ein:&lt;br /&gt;
&lt;br /&gt;
  /usr/bin/mlmmj-sub -L /home/pacs/xyz00/users/list/mlmmj/discuss -a klaus.muster@gmx.de -c &lt;br /&gt;
  /usr/bin/mlmmj-sub -L /home/pacs/xyz00/users/list/mlmmj/discuss -a sabine.beispiel@arcor.de -c &lt;br /&gt;
&lt;br /&gt;
Dabei bewirkt &amp;quot;-c&amp;quot;, dass der Abonnent eine Begrüßungs-Nachricht erhält. Alternativ kann man &amp;quot;-C&amp;quot; (großes Ce)&lt;br /&gt;
angeben. Dann muss der Abonnent das Abo durch Antworten auf die Nachricht bestätigen.&lt;br /&gt;
&lt;br /&gt;
=== weitere Konfiguration  ===&lt;br /&gt;
&lt;br /&gt;
Noch ein paar Dinge, die Sie möglicherweise einstellen wollen:&lt;br /&gt;
&lt;br /&gt;
Ein Prefix in der Betreffzeile setzen, z.B.: &amp;quot;[discuss]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
  echo &amp;quot;[discuss]&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/prefix&lt;br /&gt;
&lt;br /&gt;
Die Liste darf nur E-Mails von eingetragenen Abonnenten weiterleiten:&lt;br /&gt;
&lt;br /&gt;
  touch /home/pacs/xyz00/users/list/mlmmj/discuss/control/subonlypost&lt;br /&gt;
&lt;br /&gt;
Das Abonnement muss vom Listen-Owner bestätigt werden:&lt;br /&gt;
&lt;br /&gt;
  touch /home/pacs/xyz00/users/list/mlmmj/discuss/control/submod&lt;br /&gt;
&lt;br /&gt;
Einen &amp;quot;Reply-To:&amp;quot;-Header setzen, so dass Antwort-EMails immer an den Verteiler gehen:&lt;br /&gt;
&lt;br /&gt;
   echo &amp;quot;Reply-To:&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/delheaders&lt;br /&gt;
   echo &amp;quot;Reply-To: discuss@example.org&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/customheaders&lt;br /&gt;
&lt;br /&gt;
Weitere Möglichkeiten finden Sie (wie oben bereits angegeben) &lt;br /&gt;
auf der [http://mlmmj.org/docs/tunables/ Internetseite von mlmmj]&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration im Browser ===&lt;br /&gt;
&lt;br /&gt;
Die Original-Distribution von &#039;&#039;mlmmj&#039;&#039; enthält ein paar einfache PHP- und Perl-Skripte. &lt;br /&gt;
Das sind Beispiele für Subscribe-/Unsubscribe-Formulare, ein Admin-Formular zum Eintragen und Löschen&lt;br /&gt;
von Abonnements und eine Seite mit der gesamten Listen-Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Wer es sich ansehen möchte:&lt;br /&gt;
&lt;br /&gt;
Als Paket-Admin eine Domain aufschalten:&lt;br /&gt;
&lt;br /&gt;
  hsscript -u xyz00 -e &amp;quot;domain.add({set:{name:&#039;lists.example.org&#039;,user:&#039;xyz00-list&#039;}})&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Und weiter als &amp;quot;xyz00-list&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Download von http://mlmmj.org/releases/mlmmj-1.2.18.0.tar.gz auspacken.&lt;br /&gt;
&lt;br /&gt;
Unter &amp;quot;/mlmmj-1.2.18.0/contrib/web/php-admin/&amp;quot; finden Sie im Paket die PHP-Admin-Anwendung.&lt;br /&gt;
&lt;br /&gt;
Also den Inhalt diese Verzeichnisses nach &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/&amp;quot; packen,&lt;br /&gt;
* in &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/conf/config.php&amp;quot; die Variable &amp;quot;$topdir&amp;quot; anpassen&lt;br /&gt;
* die Dateien aus &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/htdocs/&amp;quot; nach &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/htdocs-ssl/&amp;quot; verschieben&lt;br /&gt;
* in &amp;quot;/home/pacs/xyz00/users/list/mlmmj&amp;quot; und in &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/htdocs-ssl/&amp;quot; eine &amp;quot;.htaccess&amp;quot; mit folgendem Inhalt ablegen: &lt;br /&gt;
 &lt;br /&gt;
  Require valid-user&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthName &amp;quot;mlmmj web-interface&amp;quot;&lt;br /&gt;
  AuthUserFile /home/pacs/xyz00/users/list/doms/lists.example.org/etc/htpasswd&lt;br /&gt;
&lt;br /&gt;
Und schließlich die &amp;quot;htpasswd&amp;quot;-Datei anlegen.&lt;br /&gt;
&lt;br /&gt;
  cd /home/pacs/xyz00/users/list/doms/lists.example.org/etc/&lt;br /&gt;
  htpasswd -c htpasswd listadmin&lt;br /&gt;
&lt;br /&gt;
Ein Passwort angeben und auf&lt;br /&gt;
https://lists.example.org schauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Mailinglisten]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;/div&gt;</summary>
		<author><name>Ara00-wp</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_mit_Let%27s_Encrypt_Zertifikat&amp;diff=5013</id>
		<title>TLS mit Let&#039;s Encrypt Zertifikat</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_mit_Let%27s_Encrypt_Zertifikat&amp;diff=5013"/>
		<updated>2019-11-23T17:03:32Z</updated>

		<summary type="html">&lt;p&gt;Ara00-wp: /* Let&amp;#039;s Encrypt bei Hostsharing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;quot;Let&#039;s Encrypt&amp;quot; (&amp;quot;Lasst uns verschlüsseln&amp;quot;) ist eine Zertifizierungsstelle für X.509 TLS-Zertifikate. Über eine standardisierte Programmierschnittstelle lassen sich bei Let&#039;s Encrypt sogenannte Domain-validierte Zertifikate automatisiert&lt;br /&gt;
ausstellen und verlängern. Weitere Informationen zu Let&#039;s Encrypt finden sich in der [https://de.wikipedia.org/wiki/Let%E2%80%99s_Encrypt Wikipedia (dt.)]&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Encrypt bei Hostsharing ==&lt;br /&gt;
&lt;br /&gt;
Nutzer der Hostsharing-Plattform können TLS mit einem TLS-Zertifikat von Let&#039;s Encrypt ohne weiteres Zutun nutzen:&lt;br /&gt;
&lt;br /&gt;
Beim Einrichten einer neuen Domain auf der Hostsharing-Plattform wird automatisch ein TLS Zertifikat erzeugt, das für die Hauptdomain und für die www-Subdomain zu dieser Hauptdomain gültig ist, also zum Beispiel für &amp;quot;beispiel.de&amp;quot; und &amp;quot;www.beispiel.de&amp;quot;. Dazu muss der Domain-Inhaber nichts weiter tun.&lt;br /&gt;
&lt;br /&gt;
Wir eine Domain neu eingerichtet, kann es einige Stunden dauern, bevor gültige Zertifikate aufgeschaltet sind und die Browser keine Sicherheitswarnungen mehr zeigen.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Subdomains ===&lt;br /&gt;
&lt;br /&gt;
Viele Hostsharing-Nutzer kennen [[leichtgewichtige Subdomain|leichtgewichtige Subdomains]], die sich nur durch das Anlegen eines weiteren Verzeichnisses im Domain-Verzeichnis ~/doms/example.com/subs/ nutzen lassen. Dieses Feature ist mit Let&#039;s Encrypt-Zertifikaten&lt;br /&gt;
nicht möglich, denn die Zertifizierungsstelle stellt keine sogenannten Wildcard-Zertifikate aus. Im Zertifikat muss deshalb jede Subdomain explizit angegeben sein und nur [[Aufschaltung|aufgeschaltete Subdomains]] können mit einem solchen Zertifikat abgesichert werden.&lt;br /&gt;
&lt;br /&gt;
Aus diesem Grund ist in unserer Administrations-Anwendung [[HSAdmin]] ein Feld &amp;quot;valid subdomain names&amp;quot; eingeführt worden.&lt;br /&gt;
Hier wird eine Liste aller Subdomains angegeben, die für diese Domain genutzt werden sollen (in diesem Apache VHost).&lt;br /&gt;
Die Angabe erfolgt als Komma-separierte Liste der Form &amp;quot;www,blog,aktion&amp;quot;, wenn neben der Haupdomain &amp;quot;beispiel.de&amp;quot; die Subdomains &amp;quot;www.beispiel.de&amp;quot;, &amp;quot;blog.beispiel.de&amp;quot; und &amp;quot;aktion.beispiel.de&amp;quot; gültig sein sollen.&lt;br /&gt;
&lt;br /&gt;
==== Keine Wildcard Zertifikate mit Let&#039;s Encrypt möglich ====&lt;br /&gt;
&lt;br /&gt;
Im Feld &amp;quot;valid subdomain names&amp;quot; kann auch &amp;quot;*&amp;quot; für beliebige Subdomains eingegeben werden. Damit erreichen erfahrene&lt;br /&gt;
Hostsharing-Nutzer das alte Verhalten leichtgewichtiger Subdomains durch das Anlegen eines Unterverzeichnisses. Dies&lt;br /&gt;
ist jedoch nicht in Kombination mit Zertifikaten von Let&#039;s Encrypt möglich. Die Domain-Option &amp;quot;letsencrypt&amp;quot; muss dann deaktiviert &lt;br /&gt;
werden. Für HTTP mit TLS-Verschlüsselung muss dann ein kostenpflichtiges Wildcard-Zertifikat einer anderen Zertifizierungsstelle&lt;br /&gt;
installiert werden. Dabei unterstützt der [[HS-Service|Hostsharing Service]].&lt;br /&gt;
&lt;br /&gt;
=== Migration vorhandener Domains ===&lt;br /&gt;
&lt;br /&gt;
Domains, die zum Zeitpunkt der Umstellung bereits bei Hostsharing eingerichtet sind, werden wie folgt behandelt:&lt;br /&gt;
Im Feld &amp;quot;valid subdomain names&amp;quot; ist der Stern &amp;quot;*&amp;quot; eingetragen, damit das bekannte Verhalten für leichtgewichtige Subdomains&lt;br /&gt;
erhalten bleibt. Demzufolge ist die Domain-Option &amp;quot;letsencrypt&amp;quot; deaktiviert.&lt;br /&gt;
&lt;br /&gt;
Wenn für eine solche Domain Let&#039;s Encrypt-Zertifikate von Hostsharing automatisch ausgestellt werden sollen, sind&lt;br /&gt;
mit den Rechten des Paket-Administrators (also zum Beispiel dem User &amp;quot;xyz00&amp;quot;) an der Domain zwei Änderungen vorzunehmen:&lt;br /&gt;
&lt;br /&gt;
1. Im Feld &amp;quot;valid subdomain names&amp;quot; müssen alle genutzten Subdomains explizit angegeben werden. Die Liste kann auch leer sein.&lt;br /&gt;
&lt;br /&gt;
2. Die Domain-Option &amp;quot;letsencrypt&amp;quot; wird aktiviert.&lt;br /&gt;
&lt;br /&gt;
In der Regel steht nach wenigen Minuten ein Let&#039;s Encrypt-Zertifikat für die Domain zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
=== Berechtigungsprüfung vor Erstellung von Zertifikaten ===&lt;br /&gt;
&lt;br /&gt;
Hostsharing nutzt zum Beantragen von Let&#039;s-Encrypt-Zertifikaten das [https://letsencrypt.org/how-it-works/ Validierungsverfahren über HTTP].&lt;br /&gt;
Um vorab sicherzustellen, dass der Zertifikatsantrag berechtigt ist, prüft Hostsharing unter anderem, ob die Domain die DNS-Server von Hostsharing nutzt.&lt;br /&gt;
Bevor die Let&#039;s-Encrypt-Option in HSAdmin aktiviert wird, sollte man - gerade bei erst kürzlich zu Hostsharing umgezogenen Domains - sicherstellen, dass der lokale DNS-Cache auf den Hostsharing-Servern die aktuellen DNS-Informationen vorhält.&lt;br /&gt;
&lt;br /&gt;
Per SSH in das entsprechende Paket eingeloggt, sollte der Befehl (hier am Beispiel der Domain example.com)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dig @localhost example.com NS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hostsharing-DNS-Server als Ausgabe liefern:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
example.com.               3063    IN      NS      dns1.hostsharing.net.&lt;br /&gt;
example.com.               3063    IN      NS      dns2.hostsharing.net.&lt;br /&gt;
example.com.               3063    IN      NS      dns3.hostsharing.net.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Monitoring von TLS-Zertifikaten ===&lt;br /&gt;
&lt;br /&gt;
TLS-Zertifikate von Let&#039;s Encrypt gelten jeweils nur für 90 Tage. Nach Ablauf von 60 Tagen sollten die Zertifikate &lt;br /&gt;
erneuert werden. Dieser Prozess ist automatisiert.&lt;br /&gt;
&lt;br /&gt;
Damit Probleme bei der Erneuerung von Zertifikaten nicht unbemerkt bleiben, haben wir ein Monitoring der&lt;br /&gt;
Zertifikat-Restlaufzeiten eingerichtet. Im Falle von automatisch erstellten Let&#039;s Encrypt-Zertifikaten kümmern&lt;br /&gt;
sich die Hostmaster um Problemfälle. Sie informieren das Mitglied, wenn der Paket- oder Domain-Administrator das&lt;br /&gt;
Problem durch eine Konfiguration verursacht hat.&lt;br /&gt;
&lt;br /&gt;
Das Monitoring ist gleichzeitig eine neue Funktion für alle Zertifikate, die Mitglieder uns zur Installation bereitgestellt haben:&lt;br /&gt;
Der Paket-Administrator wird ca. 3 Wochen vor Ablauf eines Zertifikates informiert. Dazu bitte ggf. ein E-Mail Alias für&lt;br /&gt;
den Paket-User (Beispiel: &amp;quot;xyz00&amp;quot;) einrichten, damit die E-Mail mit der Warnung den richtigen Adressaten erreicht.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;br /&gt;
[[Kategorie:Let’s Encrypt]]&lt;br /&gt;
[[Kategorie:Https]]&lt;/div&gt;</summary>
		<author><name>Ara00-wp</name></author>
	</entry>
</feed>