BenBE's humble thoughts Thoughts the world doesn't need yet …

09.03.2009

Domain- und Subdomain-Aliase mit ispCP Omega

Filed under: Server — Schlagwörter: , , — BenBE @ 19:54:45

Das kürzlich in der Version 1.0.0 erschienene Server-Management-Tool ispCP Omega, dass auch Verwendung bei mir auf dem Server findet, ist soweit von der Oberfläche relativ gut durchdacht, jedoch fehlen derzeit für einige Funktionen noch Möglichkeiten zur Steuerung über das Webfrontend.

Was zwar bereits möglich ist, und soweit auch funktioniert, ist das Anlegen sogenannter Domain-Aliase, d.h. einer zweiten Domain, die auf dem Verzeichnis-Abbild einer existierenden Domain eingeblendet wird. Jedoch gibt es hier in der aktuellen Release-Version noch ein paar Einschränkungen, wenn man diesen Alias über das Webfrontend anlegt. Ähnliches gilt auch, wenn man eine Subdomain spiegeln möchte. Im folgenden möchte ich daher eine kleine Ergänzung zum FAQ-Beitrag von ispCP geben, um dessen Umsetzung zu vereinfachen.

Für den Fall, dass man wie ich eine Seite transparent über 2 Domains einblenden möchte, wie im verlinkten FAQ-Beitrag gezeigt, ist es oftmals etwas umständlich, eine Dummy-Domain für diesen Fall erst anzulegen. Da ispCP in dieser Hinsicht in seiner Datenbank-Struktur relativ gut ausgeklügelt ist, ist dies aber kein wirkliches Problem.

Für die Domain-Verwaltung sind im Wesentlichen 4 Tabellen interessant: domain, domain_aliases, subdomain und subdomain_alias. In den Tabellen domain und subdomain stehen alle real im System verwalteten Domains respektive Subdomains drin; in den beiden anderen Tabellen folgen Einträge, die virtuell eingeblendet, bzw. überblendet werden sollen.

Nehmen wir aber mal ein kleines Beispiel, um die Einträge dieser Tabellen etwas genauer zu erklären. Wenn man die Seite example.org hat, so findet sich in der Domain-Tabelle etwa folgender Eintrag:

domain_id               1
domain_name             'example.org'
domain_gid              2001
domain_uid              2001
domain_admin_id         1
domain_created_id       1
domain_created          1234567890
domain_last_modified    0
domain_mailacc_limit    0
domain_ftpacc_limit     0
domain_traffic_limit    0
domain_sqld_limit       0
domain_sqlu_limit       0
domain_status           'ok'
domain_alias_limit      0
domain_subd_limit       0
domain_ip_id            1
domain_disk_limit       0
domain_disk_usage       42
domain_php              'yes'
domain_cgi              'no'

Wichtig in diesem Zusammenhang sind die Spalten domain_id, die die intern von ispCP zur Referenzierung dieser Domain verwandte Kennung angibt, sowie die Spalte domain_status. Hier sind unter anderem die Werte ‚ok‘, ‚toadd‘ und ‚change‘ möglich. ‚ok‘ gibt hierbei an, dass die Domain gerade einsatzbereit ist und keine ausstehenden Änderungen vorliegen. Ist der Status ‚toadd‘ so soll diese Domain eingerichtet werden. Mit dem Wert ‚change‘ in der Statusspalte weist man ispCP an, eine Veränderung an der Domain vorzunehmen.

Möchte man nun eine zweite Domain example.com auch zu diesem User hinzufügen, so muss man einen Blick in die Tabelle domain_aliases werfen. Um dem Benutzer von example.org auch example.com zur Verfügung zu stellen UND die Domain in das Wurzelverzeichnis zu hängen, fügt man folgenden Eintrag in seiner Tabelle domain_aliases hinzu:

alias_id                1
domain_id               1
alias_name              'example.com'
alias_status            'toadd'
alias_mount             '/'
alias_ip_id             1
url_forward             'no'

Wichtig ist in diesem Zusammenhang, dass zum Hinzufügen der Domain als neuer Alias im Statusfeld ‚toadd‘ stehen muss; hat man einen bestehenden Domain-Alias-Eintrag geändert, muss der Status auf ‚change‘ gesetzt werden.

Übernommen werden die Änderungen an einem Domain-Alias (sofern über die Kommandozeile ausgeführt) mit

/var/www/ispcp/engine/ispcp-rqst-mngr

Die domain_id bezieht sich hierbei immer auf die Tabelle domain, nicht auf domain_aliases. Das Feld alias_ip_id gibt an, auf welcher der Server-IPs die Domain erreichbar sein soll. Diese kann man i.d.R. wie im Domain-Eintrag belassen.

Soviel zum dokumentierten Verhalten im FAQ-Beitrag. Möchte man nun zusätzlich auf example.org eine Subdomain foo.example.org einrichten, sieht der zugehörige Eintrag in der Tabelle subdomain wie folgt aus:

subdomain_id            1
domain_id               1
subdomain_name          'foo'
subdomain_mount         '/foo'
subdomain_status        'toadd'

Nun aber zu einem Punkt, der vielleicht etwas verwundert, aber IMHO recht logisch erscheint: Wenn man auf example.org die Subdomain foo.example.org mit obigem Tabelleneintrag anlegt, so wird keine Spiegelung dieser Domain auf example.com eingetragen. Die Subdomain foo.example.com muss somit noch manuell ergänzt werden. Hierfür lautet der Eintrag in der Tabelle subdomain_alias wie folgt:

subdomain_alias_id      1
alias_id                1
subdomain_alias_name    'foo'
subdomain_alias_mount   '/foo'
subdomain_alias_status  'toadd'

Nach Abschluss der Arbeiten an den Subdomain-Aliasen müssen auch hier die Änderungen in das System übernommen werden. Dies geschieht am einfachsten wieder mit

/var/www/ispcp/engine/ispcp-rqst-mngr

Nach Ausführung des Request Managers sollten nun überall in den neu eingetragenen Datensätzen der Status OK stehen. Ist dies nicht der Fall kann man über die Weboberfläche von ispCP oftmals eine grobe Diagnose der Situation erfahren, auch wenn „Undefinierter Fehler“ als Status nicht sehr aussagekräftig ist. Hier hilft es, die in die Datenbank eingetragenen Daten noch einmal genau zu prüfen, denn ispCP reagiert zurecht allergisch auf falsch eingetragene Statuswerte (was auch die Ursache für genannte Meldung ist).

Flattr this!

Keine Kommentare »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress