# ispconfig clusterclient in amazon Cloud (mysql nicht lokal)



## Rupertt (28. Juli 2011)

Hallo,

ich versuche gerade in meinen bestehenden ispconfig cluster (1 master, 3 mail, 1DB, 1 Web) einen neuen webserver einzubinden.
Dieser Webserver liegt bei amazon in einer VPC cloud, die dazugehörige Datenbank ist als RDS angelegt.
(Das heißt das die mysql DB nicht direkt auf der Maschine läuft, man kann aber bequem per mysql von neuem webserver und auch vom ispconfig master auf diese DB zugreifen.)

Ich konnte die ISPConfig Installation sauber durchführen, iin der mysql_clientdb.conf habe ich dann den mysqlhost von localhost auf die IP der RDS DB gestellt und den Hostnamen in der master DB .mysql Tabelle korigiert. Der neue Server taucht im backend auf.

leider läuft die server.sh nicht durch, ich habe alle mysql Fehler die noch ausgeworfen wurden gefixt und jetzt gibt das script nichts aus und hängt nur.

Versucht der master in die DB des Client zu schreiben? und wo kann ich diese Daten einsehen und evtl. ändern?

Der client kann auf die master DB zugreifen und dieses funzt auch, denke ich. Leider finde ich nichts im log.

Hat jemand schon etwas ähnliches probiert?

EDIT:

ups, ich habe das lockfile gelöscht und nun läuft da was durch.
Ist das normal das er alle Kundendaten repliziert?
Ich krieg grad ein wenig Angst das er irgentwas überbügelt...



vielen Dank


----------



## Rupertt (28. Juli 2011)

mmh, ich bekomme folgenden Fehler wenn ich eine  webdomain anlegen möchte:


```
28.07.2011-14:49 - ERROR - Replication failed. Error: (web_domain) in MySQL server: (xxxx.us-east-1.rds.amazonaws.com) Unknown column 'document_root_www' in 'field list' #
```
Der Master ist 3.0.3 und der neue slave aktueller, liegt das daran?


Er macht ein REPLACE INTO, sollte er nicht beim neuanlegen ein INSERT machen?

 im Backend sieht das gut aus:


```
28.07.2011 14:47             web2.panel.xxxx.de             Insert             shell_user                                                                
             
                                            28.07.2011 14:46             web2.panel.xxxx.de             Insert             ftp_user                                                                
             
                                            28.07.2011 14:45             web2.panelxxxxx.de             Insert             web_domain
```


----------



## Till (28. Juli 2011)

Erstmal vorweg, jeder ISPConfig Knoten muss einen lokalen mysql Server haben. das ist bei ISPConfig Systemvoraussetzung. Du kannst also nicht mehrere ISPConfig Systeme zu ein und demselben externen MySQL Server connecten lassen.



> Versucht der master in die DB des Client zu schreiben?


Nein. Der Master schreibt nie auf den Client. Die Repliaktion funktioniert umgekehrt, der Client verbindet sich mit dem Master, laäd die Änderungen runter und legt sie in seiner lokalen DB ab.



> Der Master ist 3.0.3 und der neue slave aktueller, liegt das daran?


Alle Knoten in einem ISPConfig Cluster müssen die gleiche ISPConfig Version einsetzen, sonst funktioniert die Replikation nicht.




> Er macht ein REPLACE INTO, sollte er nicht beim neuanlegen ein INSERT machen?


Nein, REPLACE INTO ist korrekt.


----------



## Rupertt (28. Juli 2011)

ok, dann muss ich wenn ich noch einen neuen Webserver einrichte eines 2. DB Instanz einrichten.
Meine Überlegung war das evtl für ispconfig lokal ein mysql installiert wird und für die Datenbanken das RDS genutzt wird, aber damit würde ispconfig garnicht klarkommen, da man auf diesen RDS ja keine zugriff auf die console hat.

So wie es jetzt eingerichtet ist scheint es zu gehen, ich muss nur den master updaten(siehe mein angstbeitrag...).
Würde es nicht evtl. gehen wenn ich die ispconfig Datenbank anders benenne und ich einen zweiten webserver einrichte?
In meinen Cluster hat eh jede ispconfig DB einen  anderen namen, auch wenn sie alleine auf dem system liegen (dbispconfig_mail, dbispconfig_mail2, dbispconfig_web, dbispconfig_db, dbispconfig_web2, usw.)


----------



## Till (28. Juli 2011)

> Meine Überlegung war das evtl für ispconfig lokal ein mysql installiert wird und für die Datenbanken das RDS genutzt wird, aber damit würde ispconfig garnicht klarkommen, da man auf diesen RDS ja keine zugriff auf die console hat.


das könnte an sich schon gehen. Du musst dann ber wirklich eine MySQL DB lokal installieren und nur die Daten in der mysql_clientdb.conf auf die externe DB Instanz ändern.



> Würde es nicht evtl. gehen wenn ich die ispconfig Datenbank anders benenne und ich einen zweiten webserver einrichte?


Nein, da ispconfig dann seinen eigenen internen mysql login User, der immer "ispconfig" heißt überschreiben und ihn so umkonfigurieren würde, dass alle anderen datenbanken abgeklemmt werden und nur noch ein zugriff auf die zuletzt hinzugefügte DB möglich ist.


----------



## Rupertt (29. Juli 2011)

Hallo,

ich bin schon viel weiter, es scheint alles zu funktionieren.
Mein Hauptproblem im moment ist das der cronjob der die server.sh startet zwar aufgerufen wird aber es passiert nichts.

Wenn ich die server.sh manuell als root starte läuft das script sauber durch und die tasks verschwinden aus dem monitoring.

Woran kann das liegen?


----------



## Rupertt (29. Juli 2011)

Hallo,

ich habe noch ein mehr gravierendes Problem.
Es fehlt in allen vhost dateien die Zeile mit "ServerAlias www.domaintest.bla.de"

Dadurch greift ja nur der erste vhost.

Ich habe schon den Tip befolgt bei der Ip Konfiguration das Häckchen bei NameVirtualHost wegzuehmen und wieder zu aktivieren, leider ohne erfolg .

Ich hoffe das dieses Problem nicht auf dem alten Server auftreten wird, dann komm ich in die Hölle....


EDIT:

wenn ich den Hacken bei auto-subdomain www machen dann wird auch der NameVirtualHost angelegt..


----------



## Till (29. Juli 2011)

Wenn es einen Alias für die www Subdomain geben soll, muss das schon in der Webseite aktiviert sein. Woher sollte ISPConfig auch sonst wissen, dass es den Alias für Dich anlegen soll.


----------



## Rupertt (29. Juli 2011)

Das Problem ist ja das er keine NameVirtualHosts anlegt,
diese brauche ich ja da ich mehr wie 1 Domain auf dem Server habe.

Ich hatte verglichen warum eine Domain den Eintrag in der vhost conf hatte und die anderen nicht, da ist mir aufgefallen das im ispconfig der Hacken bei der autosubdomain nur bei dieser Domain aktiv war.

Kann das ein bug sein das er keine NameVirtualHosts anlegt?


----------



## Till (31. Juli 2011)

> Das Problem ist ja das er keine NameVirtualHosts anlegt,
> diese brauche ich ja da ich mehr wie 1 Domain auf dem Server habe.


Die legt ISPConfig doch an sobald Du eine IP hinzufügts und die namevirtualhost Checkbox anhakst, außer Du benutzt irgendwelche eigenen Templates, die das nicht unterstützen.



> Kann das ein bug sein das er keine NameVirtualHosts anlegt?


Da ist definitiv kein Bug drin.


----------



## Rupertt (1. Aug. 2011)

Hallo,

jetzt versteh ich den Unterschid.
Das Problem hat sich auch irgentwie gelöst.
Am Freitag hat apache bei jedem restart noch geschimpft das es mehrere Hosts mit der gleichen IP gibt, das ist jetzt nicht mehr so.

Auf zum nächsten problem...


----------



## Rupertt (1. Aug. 2011)

Der cronjob läuft immer noch nicht, es wird ja in der server.sh das profile eingebunden, hier macht er einen Error, anscheinend weil amazon eigen scripte verwendet, ich bekomme folgenden fehler:

# sh ec2.sh
ec2.sh: line 7: `ec2-instance-data': not a valid identifier

Kann man das einbinden des profils anders gestalten?


----------



## Till (1. Aug. 2011)

Das profil wird nur eingebunden, damit Die PATH Variable geladen wird. Du kannst also stattdessen die PATH Variable selbst in der server.sh definieren.


----------



## Rupertt (1. Aug. 2011)

der cronjob läuft jetzt sauber durch.

Ich habe nochmal vom updatescript die Diensten konfigurtieren lassen da
ich eine menge neuer apache und php Packete installiert habe.
Wenn ich jetzt den apache neu starte habe ich wieder das problem das er die namedvirtualhosts nicht auflöst:


```
Restarting services ...
[Mon Aug 01 15:14:51 2011] [warn] VirtualHost 10.0.0.143:80 overlaps with VirtualHost 10.0.0.143:80, the first has precedence, perhaps you need a NameVirtualHost directive
[Mon Aug 01 15:14:51 2011] [warn] VirtualHost 10.0.0.143:80 overlaps with VirtualHost 10.0.0.143:80, the first has precedence, perhaps you need a NameVirtualHost directive
[Mon Aug 01 15:14:51 2011] [warn] VirtualHost 10.0.0.143:80 overlaps with VirtualHost 10.0.0.143:80, the first has precedence, perhaps you need a NameVirtualHost directive
[Mon Aug 01 15:14:51 2011] [warn] VirtualHost 10.0.0.143:80 overlaps with VirtualHost 10.0.0.143:80, the first has precedence, perhaps you need a NameVirtualHost directive
[Mon Aug 01 15:14:51 2011] [warn] VirtualHost 10.0.0.143:80 overlaps with VirtualHost 10.0.0.143:80, the first has precedence, perhaps you need a NameVirtualHost directive
[Mon Aug 01 15:14:51 2011] [warn] VirtualHost 10.0.0.143:80 overlaps with VirtualHost 10.0.0.143:80, the first has precedence, perhaps you need a NameVirtualHost directive
Syntax OK
```
grrrrr


EDIT:  

jetzt gehts wieder, hab eigentlich nur den apache n paar mal neu gestartet


----------



## Rupertt (2. Aug. 2011)

das gehört zwar nicht direkt hierhin,

Ich habe PHP auf 5.6 geupdated und nun ständig segfault bei meinen Seiten.
Die phpinfo wird sauber angezeigt, aber irgentwas stört.

Ich nutze für alle Seiten suexec und fastcgi.
Kann ich da was beim Packete installieren falsch gemacht haben?


----------



## Till (2. Aug. 2011)

Kann ich so nicht sagen, ich nutze php 5.6 bei mir noch nicht. Mir ist die Stabilität auf meinen Servern wichtiger als immer die letzte PHP Version zu verwenden, daher bin ich aktuell bei PHP 5.3, welches bei Debian Squeeze mitgeliefert wird.


----------



## Rupertt (2. Aug. 2011)

leider haben die anderen Server schon php5.3, daher kann ich diesen nicht anders konfigurieren.
Was merkwürdig ist ist das eine Seite geladen wird und die anderen nicht, es taucht nichtmal ein Zugriff im acces log auf.


----------



## Till (2. Aug. 2011)

PHP 5.3 ist doch ok.


----------



## Rupertt (2. Aug. 2011)

ups, das ich meinte php 5.3.6. sorry.

Das Zugriffsproblem hab ich gelöst.

Jetzt bin ich wieder beim segfault von php:

[ 8981.682354] php-cgi[10151]: segfault at 7f06ac769098 ip 0000000000576474 sp 00007fffd64fb970 error 4 in php-cgi[400000+28d000]

sagt mir das die binary ist doof?


----------



## Till (2. Aug. 2011)

Woher kommt denn das PHP Binary? Ist das ein virtueller Server, wenn ja, sind irgendwelche Ressources des VServers vielleicht erreicht (bei OpenVZ Virtualisierung kannst Du das mit /cat proc/user_beancounters anzeigen lassen).


----------



## Rupertt (3. Aug. 2011)

Hallo,

die binary ist vom opensuse buildservice.
DIe maschine ist ein VM die bei Amazon in der Cloud liegt:

ich habe den Fehler auf die Anwendung oscommerce reduzieren können, bis jetzt, alle anderen seiten gehen.

Das Frontend des SHops gibt mir einen segfault und im backend bekomme ich folgende Meldungen:


```
[COLOR=#ff0000][B]Error![/B][/COLOR]

[B]Unable to determine the page link!

Function used:

tep_href_link('', 'selected_box=user_tracking', 'NONSSL')[/B][COLOR=#000000][B]1062 - Duplicate entry 'jk4lf02rna5p3vpjmnich0pe0cv45pki' for key 'PRIMARY'

insert  into sessions values  ('jk4lf02rna5p3vpjmnich0pe0cv45pki0tmq6g3ocrc5p58jkh10', '1312366964',  'language|s:6:\"german\";languages_id|s:1:\"2\";selected_box|s:13:\"configuration\";')

[COLOR=#ff0000][TEP STOP][/COLOR][/B][/COLOR]
```


```
[Wed Aug 03 11:41:59 2011] [warn] mod_fcgid: stderr: PHP Warning:  include(/srv/www/clients/client5/web341/web/admin/includes/languages/german): failed to open stream: Inappropriate ioctl for device in /srv/www/clients/cl
ient5/web341/web/admin/includes/application_top.php on line 145
[Wed Aug 03 11:41:59 2011] [warn] mod_fcgid: stderr: PHP Warning:  include(): Failed opening 'includes/languages/german/' for inclusion (include_path='.:/usr/share/php5:/usr/share/php5/PEAR') in /srv/www/clients/client5/w
eb341/web/admin/includes/application_top.php on line 145
```


----------



## Till (3. Aug. 2011)

Er versucht ja die Datei /srv/www/clients/client5/web341/web/admin/includes/languages/german zu includen und das schlägt fehl. Poste bitte mal die Ausgabe von:

ls -la /srv/www/clients/client5/web341/web/admin/includes/languages/german

was mich dabei wundert, ist dass die Datei keine .php Endung hat.


----------

