ispCP - Board - Support
Datenbank-Prefix = Unix UserID? Idee für Multi-Server Umgebung - Printable Version

+- ispCP - Board - Support (http://www.isp-control.net/forum)
+-- Forum: ispCP Omega International Area (/forum-22.html)
+--- Forum: German Corner (/forum-26.html)
+--- Thread: Datenbank-Prefix = Unix UserID? Idee für Multi-Server Umgebung (/thread-4141.html)



Datenbank-Prefix = Unix UserID? Idee für Multi-Server Umgebung - Gos77 - 08-29-2008 11:27 PM

Hallo zusammen,

wäre es sehr kompliziert die Datenbank-Prefix ID identisch mit der Unix UserID zu generieren? Würde denken, dass es bisher die domain_id aus der Tabelle domain ist. Stattdessen also "einfach" die domain_uid.

Hintergrund: Hatte mir überlegt, ob folgende Konstellation umsetzbar wäre.

2 Webserver mit ISPCP Installation (bzw. n Webserver)
1 Datenbankserver auf dem die ispcp-DB und die Kunden-DBs liegen

Auf jedem Webserver wird ISPCP installiert, jedoch wird die Unix User StartID bei jedem Webserver um 1000 erhöht (also 1. Webserver 2000, 2. Webserver 3000, etc.). Kunden-DB würden dann bei vorangestellter Prefix ihre entsprechende Unix UserID als Prefix erhalten und es käme nicht zu Überschneidungen bei den DB Namen. Ausser auf einem Webserver werden mit der Zeit mehr als 999 Kunden generiert, dieses Risiko wäre durch größe StartID Abstände aber zu minimieren. Im ISPCP müssten für alle Verfügbaren Webserver die IP-Adressen angelegt werden und beim Anlegen eines neuen Kunden entsprechend des Webservers auf dem seine Verzeichnisse liegen. Das Anlegen eines Kunden würde dann auch auf dem entsprechenden Webserver geschehen müssen.

Beispiel: Kunde mit UserID 2001 auf 1. Webserver, Kunde mit UserID 3001 auf 2. Webserver. Die Daten fliesen dabei jedoch in eine einzige ISPCP-DB.

Jeder Webserver müsste dazu sein eigenes ispcp-Panel zur Verfügung stellen (admin01.domain.tld, admin02.domain.tld, etc.).

Wäre über Meinungen vor allem der Entwickler, die sicherlich mehr Überblick über den Code haben, ob es durch einen Patch bei einem frisch aufgesetzten system realisierbar wäre. Ob es Sicherheitsbedenken gibt oder für zukünftige ISPCP-Versionen schon andere Lösungsansätze angedacht sind.

Gruß Gos

PS: Hoffe ich habs bei meiner Suche nicht wieder übersehn Wink


RE: Datenbank-Prefix = Unix UserID? Idee für Multi-Server Umgebung - Top44 - 08-31-2008 07:01 AM

Ich habe dass auch schon Vorgeschlagen ... und in die Wishliste gepackt, weil ich denke das es Kunden nix angeht ob Datenbanknamen schon Vergeben sind. Wenn man z.B. die Struktur ohne Prefix wählt, kann eben nur eine Datenbank mit dem Namen Joomla existieren. Daher sollten die Datenbanknamen mit dem Internen user ála vu20XX +1,2,3 etc. für Datenbank generiert werden. So gibt es keine Probleme.


grüße


RE: Datenbank-Prefix = Unix UserID? Idee für Multi-Server Umgebung - Gos77 - 09-01-2008 11:15 PM

Hallo zusammen,

habe in einer Testinstallation bei mir mal die entsprechenden Scripte angepasst. Anlegen und Löschen von Datenbanken und DB-Usern funktioniert schonmal einwandfrei. Die Datenbanken und DB-User werden nun mit der Unix UserID als Prefix statt der Tabellen internen DomainID angelegt. Die Unix UserID beziehen die Scripte dabei weiterhin aus der Tabelle domain. Werde nun mal testen, ob man so auch eine Art Multi-ispCP-Webserver-Umgebung realisieren kann.

Sobald ich weitere Kenntnisse habe, werde ich sie hier weitergeben.

Falls Interesse an einem Patch besteht bitte eine PM an mich schicken. Bei entsprechender Nachfrage würde ich auch für die Releases ab RC6 entsprechende Patches zur Verfügung stellen.

Gruß Gos77


RE: Datenbank-Prefix = Unix UserID? Idee für Multi-Server Umgebung - Zothos - 09-02-2008 12:17 AM

Kannst du einen patch gegen den aktuellen trunk hier im forum posten?

Grüße
/Z


RE: Datenbank-Prefix = Unix UserID? Idee für Multi-Server Umgebung - Gos77 - 09-02-2008 01:44 AM

Zothos Wrote:Kannst du einen patch gegen den aktuellen trunk hier im forum posten?

Grüße
/Z

Hallo Zothos,

hier meine beiden Patch-Files.

dbprefix_uid_gui_include.txt (für Dateien in /var/www/ispcp/gui/include)
dbprefix_uid_gui_client.txt (für Dateien in /var/www/ispcp/gui/client)

patch -p1 -i pathtopatchfile/patchfile unter / ausgeführt sollte entsprechende Patches in RC6 einspielen. Habe es bisher nur für RC6 getestet!!! Nicht mit dem aktuellen DEV-Trunk.

Muss morgen nochmal prüfen ob Change Password und Execute Query auch funktionieren oder ob da auch noch was angepasst werden muss. Create und Delete funktioniert bei mir soweit einwandfrei .. grad nochmal mit neuer Blanko-Installation und seperaten DB-Server getestet.

Schön wäre natürlich eine entsprechende Option für den Prefix-Switch zwischen ID und UserID in der ispcp-Config. Im nachhinein mit einem Update zu verändern, wird wenn man schon Kunden hat sicherlich nicht spaßig Wink

Wenn ich morgen Zeit habe, werde ich mich mal an der Multi-ispCP-Webserver Idee probieren. Könnte ja zumindest was die DBs angeht schonmal funktionieren.

Gruß Gos77


RE: Datenbank-Prefix = Unix UserID? Idee für Multi-Server Umgebung - Gos77 - 09-02-2008 05:32 PM

Moins,

habe gerade mal Execute Query und Change Password nach meinem Patch getestet.

Bekomme dabei folgende Meldung von PHP:
Notice: Undefined index: user_uid in /var/www/ispcp/gui/include/client-functions.php on line 788

Jedoch kann ich das Passwort des SQL-Users einwandfrei ändern.

Execute Query geht ohne wie mit Patch nicht und liefert mir eine blanke weiße Seite zurück bzw. mit Patch die oben genannte Fehlermeldung. Gehe ich recht in der Annahme, dass Execute Query in RC6 nicht mehr funktioniert?

In RC5 (Gui RC5a) scheint Execute Query noch einwandfrei zu funktionieren.

Gruß Gos77


RE: Datenbank-Prefix = Unix UserID? Idee für Multi-Server Umgebung - Gos77 - 09-02-2008 09:34 PM

Mahlzeit Wink

Also habe nun mal einen Test mit 2 ispCP-Webservern und einem DB-Server gemacht. Konnte auch den 2. ispCP-Webserver gut an die ispCP-DB des 1. Servers anbinden.

Auf meinem 2. ispCP-Webserver wurden nun Nutzer mit Unix-UserID >4000 angelegt. Dabei ist mir jedoch aufgefallen, dass ispCP hier wohl einen internen Zähler verwendet und somit entstand dann folgende Konstellation.

1. ispCP-Webserver
vu2001 mit 2001
vu2002 mit 2002

2. ispCP-Webserver
vu4003 mit 4003

Für den Multi-Serverbetrieb wäre aber sicher eine fortlaufende Nummerierung auf jedem einzelnen ispCP-Webservers sinnvoll. Könnte man vielleicht durch eine Art ServerID in der Kunden-Tabelle realisieren (=> 1. ispCP = 2001, 2002, ... ; 2. ispCP = 4001, 4002, ...). Wenn man nun aber daran denkt, dass man später vielleicht Kunden von einem zum anderen Server verschieben können möchte, wird es dabei mit den DB-Prefixen anhand der Unix UserID auch wieder kompliziert, da die Kunden in deren Webanwendungen überall die DB-Namen und -Nutzer ändern müssten Sad

Vielleicht wäre stattdessen eine einmalig generierte Kunden-Nummer ganz hilfreich. Diese könnte man dann auch in entsprechenden Abrechnungssystemen verwenden bzw. umgekehrt.

Denke da es aktuell zu gravierende Eingriffe im ispCP-Kern wären, neige ich dazu mich vorerst nur auf einen kleinen Patch für die DB-Prefixe zu konzentrieren. Falls jemand aber sonst noch Ideen hat, immer her damit. Vielleicht komme ich ja doch noch auf den Geschmack was entsprechendes umzusetzen, um auch endlich mehrere ispCP-Webserver komfortabler managen zu können.

Gruß Gos77


RE: Datenbank-Prefix = Unix UserID? Idee für Multi-Server Umgebung - Top44 - 09-03-2008 06:05 AM

Die ispCP eigenen User ála VU20XX werden doch eh in der DB gespeichert ?


RE: Datenbank-Prefix = Unix UserID? Idee für Multi-Server Umgebung - Gos77 - 09-03-2008 05:39 PM

Top44 Wrote:Die ispCP eigenen User ála VU20XX werden doch eh in der DB gespeichert ?

Das ist bei der Verwendung eines einzelnen ispCP-Servers ja auch voll und ganz ok. Hier geht es aber vor allem um Überlegungen, Ideen und Hindernisse, wie man eine Multi-ispCP-Server-Umgebung realisieren könnte. Wobei jedoch eine einzelne ispCP-Datenbank verwendet wird in der alle Informationen zusammen laufen.