Probleme mit parallelen Wampp-Installationen
reini
- webserver
Hallo,
was ist zu beachten, wenn 2 WAMPP-Installationen parallel auf einem Rechner betrieben werden sollen ?
In der httpd.conf der 1.Installation habe ich die LISTEN - Einstellung verändert auf: Listen 8080.
Die Mysql-Server-Einstellungen habe ich über die php.ini verändert:
mysqli.default_port = 3316
mysql.default_port = 3316
In der Konfigurationsdatei: mysql/bin/my habe ich die Portnr. ebenfalls auf 3316 geändert.
Anschließend habe ich den 1.Server mit Hilfe der xampp_start.exe
gestartet und die Anwendung über http://server:8080/test/ erfolgreich aufgerufen.
Beim Start des 2.Servers, der mit den Dafault-Einstellungen läuft (Listen 80, port 3306),erhielt ich nachfolgende Fehlermeldung:
-------------------------------------------------------------
(OS 10048 )Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluß) nur jeweils einmal verwendet werden. : make_sock: could not bind to adress: 0.0.0:8080
no listening sockets available. shutting down
Do you have another mysqld server running on port: 3306 ?
-------------------------------------------------------------
Nach dem Herunterfahren des 1.Servers über xampp_stop.exe
und Aufruf von netstat -ano ist der Port : 3316 nimmer noch belegt.
Kann mir jemand weiterhelfen ?
Vielen Dank im voraus
reini
hallo,
was ist zu beachten, wenn 2 WAMPP-Installationen parallel auf einem Rechner betrieben werden sollen ?
Bis auf die Tatsache, daß es nicht funktioniert, gar nichts. Es ist auch unter Linux schwierig, mehrere Apache gleichzeitig laufen zu lassen, aber du möchtst es unter Windows probieren.
Aber vielleicht erklärst du, was du tun möchtest, so daß du dafür zwei Serverinstallationen brauchst. Höchstwahrscheinlich geht es auch anders.
Grüße aus Berlin
Christoph S.
Ich grüsse den Cosmos,
Es ist auch unter Linux schwierig, mehrere Apache gleichzeitig laufen zu lassen,
Naja, ich halte es nicht wirklich für schwierig, eine zweite Config zu schreiben und einen weiteren Apache mit dieser Config zu starten. Allerdings setzt jeder den Schwierigkeitsgrad seinem Wissen entsprechend.
Möge das "Self" mit euch sein
hallo Manuel,
Es ist auch unter Linux schwierig, mehrere Apache gleichzeitig laufen zu lassen,
Naja, ich halte es nicht wirklich für schwierig, eine zweite Config zu schreiben und einen weiteren Apache mit dieser Config zu starten.
Nur zwei unterschiedliche Konfigurationen reichen nicht aus. Der Apache legt bei seinem Start eine PID an (auch unter Windows). Es können nicht zwei PIDs für denselben Prozeß angelegt werden.
Was unter Linux möglich ist, ist der parallele Betrieb zweier unterschiedlicher Versionen, also beispielsweise Apache 2.0.58 neben Apache 2.2.2. Auch dafür müssen aber Voraussetzungen vorhanden sein, die beiden Serverprozesse dürfen beispielsweise nicht denselben Namen haben. Und dann ist da die im OP bereits genannte Sache mit dem "Socket".
Windows ist nicht in der Lage, mehrere Apache-Prozesse nebeneinander am Leben zu erhalten. Nicht nur wegen der PID, sondern vor allem wegen der anders strukturierten Sockets. Möglich ist, auch hier zwei unterschiedliche Apache-Versionen in unterschiedlichen Verzeichnissen zu installieren. Gestartet werden kann aber nur einer.
Man muß sich in die Definitionen von "Socket" und "API" hineinlesen, um herauszufinden, was eventuell funktionieren kann und was nicht.
Dazu kommt, daß im OP auch noch auf einen (oder zwei?) MySQL-Server verwiesen wird. Unabhängig vom benutzten Webserver sollte ein Datenbanksystem aber ausreichen.
Insgesamt bleibt fraglich, warum so ein Parallelbetrieb versucht wird. Voraussichtlich läßt sich die Zielsetzung auf andere Weise erreichen.
Grüße aus Berlin
Christoph S.
Hi,
Nur zwei unterschiedliche Konfigurationen reichen nicht aus. Der Apache legt bei seinem Start eine PID an (auch unter Windows). Es können nicht zwei PIDs für denselben Prozeß angelegt werden.
Unter Windows legt der Apache diese pid-Datei an der Stelle ab, die man per PidFile-Direktive in der Konfiguration vorgibt.
Es ist kein großes Problem, 2 Apache (auch der gleichen Version) auf einer Windows-Kiste zum Laufen zu bringen. Daß diese nicht auf demselben Port derselben IP-Adresse lauschen können, ist logisch.
Unterschiedliche Pidfiles, unterschiedliche Listens (Port/IPs), unterschiedliche Logfiles - viel mehr braucht es nicht - wenn sie als Services laufen sollen, dann natürlich noch unterschiedliche Service-Namen.
Insgesamt bleibt fraglich, warum so ein Parallelbetrieb versucht wird.
Unabhängigkeit (jeder der Apachen kann unabhängig von den anderen gestoppt und gestartet werden, jeder der Apachen kann unterschiedliche Module laden, ...)
cu,
Andreas
hallo Andreas,
Es ist kein großes Problem, 2 Apache (auch der gleichen Version) auf einer Windows-Kiste zum Laufen zu bringen.
Nicht "parallel", also zur selben Laufzeit. Mir ist nicht bekannt, wie man die registry dazu überreden könnte. Es gibt allerdings zwei Dinge, die du vielleicht besser weißt als ich:
1. hat mich bei meiner bekannten Abneigung gegenüber "bundles" nie im Detail interessiert, wie die Apachefriends ihr Paket konstruiert haben.
2. bin ich der Fragestellung einer Parallelinstallation nie _konsequent_ nachgegangen; ich habs ein paarmal grob versucht und festgestellt, daß es zumindest auf einem "schnellen Weg" nicht möglich war.
Unterschiedliche Pidfiles, unterschiedliche Listens (Port/IPs), unterschiedliche Logfiles - viel mehr braucht es nicht - wenn sie als Services laufen sollen, dann natürlich noch unterschiedliche Service-Namen.
Die Unterschiede der "Namen" habe ich bereits angesprochen.
Insgesamt bleibt fraglich, warum so ein Parallelbetrieb versucht wird.
Unabhängigkeit (jeder der Apachen kann unabhängig von den anderen gestoppt und gestartet werden, jeder der Apachen kann unterschiedliche Module laden, ...)
Das überzeugt mich nicht. Sowas habe ich auch. Meine httpd.conf bindet je nach Bedarf "modul1.conf", "modul2.conf" usw. ein, das sind unterschiedliche Modul- und virthost-Konfigurationen bis hin zur Zusammenarbeit mit Tomcat. Ich brauche bloß ein Kommentarzeichen zu setzen oder zu entfernen und den Apache neu starten, schon hat er die Module und virtuellen Hosts, die ich grade benutzen möchte. Und wenn ich unbedingt zur selben Laufzeit zwei (oder mehr) unterschiedliche Apache ansprechen können möchte, gibts eben einen zweiten auf einem Netzwerkrechner, einen dritten in einer virtuellen Maschine usw. ...
Ich hätte die Antwort, warum er so vorgehen möchte, aber gerne vom OP und wiederhole mich: vermutlich ist eine solche Parallelinstallation gar nicht nötig. Nur der OP kann diese Vermutung bestätigen oder widerlegen, du kannst lediglich Thesen aufstellen, welche Begründungen es geben könnte.
Grüße aus Berlin
Christoph S.
Hi Christoph,
Nicht "parallel", also zur selben Laufzeit. Mir ist nicht bekannt, wie man die registry dazu überreden könnte.
das ist kein Problem, weil sich der Apache einen Dreck um die Windows-Registry schert. Er legt ein paar Strukturen dort ab, aber nicht weil er sie selbst bräuchte, sondern eher, um Windows eine Handhabe zu geben (Installer, Uninstaller). Für die Funktion ist nur die Registrierung als Windows-Service wichtig - und da kann man ihn ja zweimal mit unterschiedlichem Namen registrieren.
- bin ich der Fragestellung einer Parallelinstallation nie _konsequent_ nachgegangen; ich habs ein paarmal grob versucht und festgestellt, daß es zumindest auf einem "schnellen Weg" nicht möglich war.
Ja, ein wenig manuelle Nachbesserung ist wohl nötig. Gut, beim Komplett-Paket (XAMPP) ist wahrscheinlich noch etwas mehr Dreck dabei, da könnte es schwieriger werden. Ich bin von einer manuellen Installation des Apachen ausgegangen.
[...] Ich brauche bloß ein Kommentarzeichen zu setzen oder zu entfernen und den Apache neu starten, schon hat er ...
Naja, bei der Parallelinstallation zweier Indianer bräuchtest du nicht einmal das. Ich kann mir schon vorstellen, dass das für manche Leute interessant aussieht.
[...] Und wenn ich unbedingt zur selben Laufzeit zwei (oder mehr) unterschiedliche Apache ansprechen können möchte, gibts eben einen zweiten auf einem Netzwerkrechner, einen dritten in einer virtuellen Maschine usw. ...
Das ist natürlich die beste Lösung.
Schönen Abend noch,
Martin
hi,
[...] weil sich der Apache einen Dreck um die Windows-Registry schert.
Na gut, machen wir mal eine Grundsatzdiskussion draus. Dem Apache kann die registry tatsächlich wurscht und schnuppe sein. Dem Betriebssystem - was in diesem Fall ja Windows ist - ist es keineswegs wurscht. An mindestens zwei Stellen:
1. der Installer. Du wirst mir vermutlich zustimmen, daß eine Apache-Installation mit Hilfe eines MSI zunächst zu empfehlen ist. Jaja, es gibt auch andere Möglichkeiten, aber ich meine, wir gehen hier _zuerst_ vom "Weg des geringsten Widerstandes" aus. Wenn du nun bereits einen Apache 2.0.5x installiert hast und einen Apache 2.2.2 parallel haben möchtest, sagt dir der Installer erstmal, daß du die alte Version löschen sollst und beendet sich. Es gibt also gar keine Installation. Du willst es aber (nehmen wir mal testweise an) unbedingt haben. Also krabbelst du in deiner registry rum und änderst _sämtliche_ über 260 Einträge, die es da gibt - du willst ihn ja behalten und nicht löschen. Danach gehst du in die Diensteverwaltung und deaktivierst ihn wenigstens erstmal. Nach einem Rechnerneustart wird dein "alter" Apache, wenn du alle Einträge erwischt hast, tatsächlich nicht als Dienst gleich mitgestartet. Prima. Du versuchst es erneut mit dem MSI und kriegst wieder gesagt, daß du die vorhandene Version erst löschen sollst, und das findest du jetzt doof. Aber, klug wie du bist, fällt dir natürlich ein, daß der Installer dran schuld sein könnte und in einem Anflug von Hochmut löschst du aus %windir%\Installer noch das Verzeichnis {85262A06-2D8C-4BC1-B6ED-5A705D09CFFC} raus und auch gleich noch 4a8a6e.msi (oder so ähnlich) - und da dir auffällt, daß du dir dieses Verzeichnis bisher noch nie wirklich angekuckt hast, probierst du durch, was du daraus wegwerfen könntest und löschst alles, was dir überflüssig erscheint, startest deinen Rechner zur Sicherheit nnochmal neu, und - wow, dein Apache ist wieder da, sogar der Autostart-Eintrag für den Apache-Monitor findet sich wieder. Du versuchst es erneut mit der Neuinstallation, und - bingo! der Installer sagt dir, daß du erst die vorhandene Version löschen sollst.
Preisfrage: wie lange, meinst du, braucht es, bis du herausgefunden hast, wie du deine registry und den Installer dazu überreden kannst, daß die bestehende Apache-Installation weiterhin erhalten bleiben, aber nicht mehr als Dienst bei Systemstart aufgerufen werden soll - und du deine Zweitinstallation ohne warnende Hinweise durchführen kannst? Die "Ereignisanzeige" in der Computerverwaltung wird außerdem auf beängstigende Größe anschwellen ...
2. die httpd.conf. Weil du es etwas leichter haben möchtest, hast du natürlich den Eintrag "ScriptInterpreterSource registry" gesetzt. WEnn du den auskommentierst, mußt du dummerweise bei allen ÜPerl-Scripts eine korrekte shebang schreiben.
Neinnein, also so ganz einfach ist es mit der registry nun doch nicht ;-)
Wenn du dir deinen Apache selber aus den Sourcen kompiliert hast, spielt dieser Kram natürlich keine Rolle. Nur hast du da lange rumfummeln müssen, bis er als Dienst von der registry anerkannt wurde.
Für die Funktion ist nur die Registrierung als Windows-Service wichtig - und da kann man ihn ja zweimal mit unterschiedlichem Namen registrieren.
Das ist zwar prinzipiell richtig, aber wie machst du das bitte praktisch?
Ja, ein wenig manuelle Nachbesserung ist wohl nötig
"Ein wenig" wird nicht ausreichen.
Gut, beim Komplett-Paket (XAMPP) ist wahrscheinlich noch etwas mehr Dreck dabei
Da muß ich, wie bereits angegeben, passen. Ich habe XAMPP nicht installiert (und gleich gar nicht doppelt).
Ich bin von einer manuellen Installation des Apachen ausgegangen.
Für die ich dir einige wenige Stolperstellen eben skizziert habe.
[...] Und wenn ich unbedingt zur selben Laufzeit zwei (oder mehr) unterschiedliche Apache ansprechen können möchte, gibts eben einen zweiten auf einem Netzwerkrechner, einen dritten in einer virtuellen Maschine usw. ...
Das ist natürlich die beste Lösung.
Och, danke, bist ein Schatz. Das baut mich jetzt natürlich mächtig wieder auf.
Schönen Abend noch
Dir auch - ich hab ein Problem, weil mein Holuderwein alle ist, und der Rote Holunder noch lange nicht endgültig vergoren ist. Ich sitze gewissermaßen auf dem Trockenen ;-)
Grüße aus Berlin
Christoph S.
Hallo,
- der Installer. Du wirst mir vermutlich zustimmen, daß eine Apache-Installation mit Hilfe eines MSI zunächst zu empfehlen ist.
nein, ganz bestimmt nicht. Ich empfehle, wo immer möglich, das zip-Archiv zu verwenden. Runterladen, entpacken, starten. Sauber und einfach, ohne Stolpersteine.
Jaja, es gibt auch andere Möglichkeiten, aber ich meine, wir gehen hier _zuerst_ vom "Weg des geringsten Widerstandes" aus.
Eben, und den Windows-Installer sehe ich nicht in dieser Rolle.
Die "Ereignisanzeige" in der Computerverwaltung wird außerdem auf beängstigende Größe anschwellen ...
Die Angst habe ich nicht - den zugehörigen Dienst habe ich nämlich eh deaktiviert. ;-)
- die httpd.conf. Weil du es etwas leichter haben möchtest, hast du natürlich den Eintrag "ScriptInterpreterSource registry" gesetzt. WEnn du den auskommentierst, mußt du dummerweise bei allen ÜPerl-Scripts eine korrekte shebang schreiben.
Das Problem ist mir fremd, da ich noch nie irgendwas mit Perl hatte. Ich sprach ja auch absichltich nur von der Installation zweier Apachen und NICHT vom XAMPP.
Für die Funktion ist nur die Registrierung als Windows-Service wichtig - und da kann man ihn ja zweimal mit unterschiedlichem Namen registrieren.
Das ist zwar prinzipiell richtig, aber wie machst du das bitte praktisch?
* Ersten Apachen entpacken, einmal starten, wieder beenden.
* In der Registry unter HKLM\System\CurrentControlSet... alle Verweise auf den Apache-Service umbenennen (sind nur zwei Stellen)
* Zweiten Apachen entpacken, starten. Und gut.
Ja, ein wenig manuelle Nachbesserung ist wohl nötig
"Ein wenig" wird nicht ausreichen.
;-)
Gut, beim Komplett-Paket (XAMPP) ist wahrscheinlich noch etwas mehr Dreck dabei
Da muß ich, wie bereits angegeben, passen. Ich habe XAMPP nicht installiert (und gleich gar nicht doppelt).
Eben, ich auch nicht. Ich *fürchte* nur einen wesentlich größeren Aufwand.
Das ist natürlich die beste Lösung.
Och, danke, bist ein Schatz. Das baut mich jetzt natürlich mächtig wieder auf.
Prima, da kann ich doch heute nacht wieder ruhig schlafen. :-)
Dir auch - ich hab ein Problem, weil mein Holuderwein alle ist, und der Rote Holunder noch lange nicht endgültig vergoren ist. Ich sitze gewissermaßen auf dem Trockenen ;-)
Hm, geht mir ähnlich: Ich würde gern noch ein Bier trinken, müsste dazu aber in den Keller gehen und eins raufholen. Und kalt wär's dann auch nicht. Werd' ich wohl doch zum Generalwasser greifen ...
Ciao,
Martin
hallo,
Ich sitze gewissermaßen auf dem Trockenen ;-)
Hm, geht mir ähnlich
Ich würde dich ja an meinen Tisch einladen (wie in der Signatur mit dem Dresden-Bild abgebildet), aber da brauchen wir nun noch jemand, der für Getränke sorgt ...
Grüße aus Berlin
Christoph S.
Hi,
Es ist kein großes Problem, 2 Apache (auch der gleichen Version) auf einer Windows-Kiste zum Laufen zu bringen.
Nicht "parallel", also zur selben Laufzeit.
Doch.
Ich geb allerdings zu (nachdem ich nochmal nachgeguckt hab): nur einer davon läuft als Windows-Service. Der zweite wird normal per batch-File im startup -Folder gestartet (mit Parameter -f für das andere Konfigurationsfile).
- hat mich bei meiner bekannten Abneigung gegenüber "bundles" nie im Detail interessiert, wie die Apachefriends ihr Paket konstruiert haben.
Das hab ich nicht benutzt.
- bin ich der Fragestellung einer Parallelinstallation nie _konsequent_ nachgegangen; ich habs ein paarmal grob versucht und festgestellt, daß es zumindest auf einem "schnellen Weg" nicht möglich war.
Das hat damals weniger als ne Stunde gekostet.
Das überzeugt mich nicht. Sowas habe ich auch. Meine httpd.conf bindet je nach Bedarf "modul1.conf", "modul2.conf" usw. ein, das sind unterschiedliche Modul- und virthost-Konfigurationen bis hin zur Zusammenarbeit mit Tomcat.
Schön. Und wie machst Du es jetzt, daß zur selben Zeit für Zugriffe auf Port 80 modul1.conf gilt, aber für Zugriffe auf Port 8080 modul2.conf, ohne daß 2 Apache laufen?
Ich brauche bloß ein Kommentarzeichen zu setzen oder zu entfernen und den Apache neu starten,
Also laufen Deine verschiedenen Konfigurationen nicht unabhängig voneinander. Sondern nur entweder oder.
cu,
Andreas
hi,
Unter Windows legt der Apache diese pid-Datei an der Stelle ab, die man per PidFile-Direktive in der Konfiguration vorgibt.
Das tut er auch unter Linux oder *BSD. Wenn nicht explizit angegeben wird, wo diese PID erstellt werden soll, liegt sie meist unter /var/run oder unter Windows eben im selben Verzeichnis wie die logs.
Mich amüsiert dein Festhalten an der Apache 1.3-Doku. An _dieser_ Stelle ist es gerechtfertigt, weil sich zur Frage des Ablageortes von 1.3 zu 2.x.x nichts geändert hat. Aber wenn du mit einem solchen Verweis jemand in die Apache-Doku schickst, kanns ja passieren, daß er sich in irgendwelchen anderen Doku-Seiten festliest und sich dann wundert, daß irgendwelche Sachen, die er gelesen hat, mit seinem Apache 2.2.2 nicht funktionieren (etliche wichtige Modulnamen zum Beispiel).
Grüße aus Berlin
Christoph S.
Ich grüsse den Cosmos,
Nur zwei unterschiedliche Konfigurationen reichen nicht aus. Der Apache legt bei seinem Start eine PID an (auch unter Windows).
Was so9llte mich daran hindern, in der Config auch ein anderes Pidfile anzugeben? Gleiches gilt für Logfiles o.ä. Wird alles in der Config festgelegt.
Möge das "Self" mit euch sein