Ich habe jetzt einige Zeit in die Nachstellung deines Problems investiert und hoffe, dass wir Licht ins Dunkel bringen können.
Pascal1 wrote:Im Xamp-Controll-Fenster ist der Pfad ja korrekt angegeben
12:14:39 [main] XAMPP Installationsverzeichnis: "e:\info\kaskadierung\page\hgettofile\pascalfiles\xampp\xampp5640vonleerxp_14oup33\"
Du meinst diese Zeile? Die gibt immer den Pfad aus, aus der das control panel gestartet wurde, unabhängig davon ob auch die Pfade in den Konfigurationsdateien korrekt gesetzt wurden.
Pascal1 wrote:Ich nutze ausschließlich Xampp-Portable - ausgepackt aus Zip-Dateien oder installiert, aber auch die portable-Variante. Es wird also nicht als Dienst, sondern als lokale Anwendung ausgeführt.
Das schließt schonmal das Problem aus, dass du mit dem Control Panel nur den Apache Dienst startest, der einen anderen Pfad haben könnte.
Pascal1 wrote:Nein ich sehe keine Änderungen in der Apache-Log-Datei. [...] Ich sehe diese in einer Apache-Log-Datei einer anderen Xampp-"Installation". Anführungezeichen wegen Portable. Aber warum?
Das deutet darauf hin, dass die Pfade nicht korrekt sind. Entweder Verwendet Apache eine fremde Konfigurationsdatei, oder es wird vom control panel ein fremder Apache gestartet.
Pascal1 wrote:Jetzt habe ich Datensalat, weiß nicht mehr wo welche Änderungen an den Dateien und der Datenbank vorgenommen wurden. Um das zu vermeiden arbeite ich doch extra mit unterschiedlichen Xampp-"Installationen". Jede portable Xampp-Installation hat einen eigenen Ordner, welche nix mit den anderen Xampp-Ordnern zu tun haben (sollen, muss ich ja jetzt sagen).
Theoretisch hast du recht, jede XAMPP Installation sollte ihren eigenen Ordner haben und darin alles finden, was sie braucht. Doch wenn Apache gesagt wird, du findest deine Konfiguration an Ort XY und der Ort und die Konfigurationsdatei existiert, denkt Apache natürlich es sei alles in Ordnung und nimmt die Einstellungen aus der ihm gegebenen Konfigurationsdatei.
Pascal1 wrote:1. Ich habe Xampp mehrfach installiert - die portable Variante. Ich habe die auch einfach umkopiert um Sicherheitskopien zu haben. In der neu benannten Ordner dann stets die setup_xampp.bat ausgeführt.
Meine Vermutung: Entweder hast du es doch einmal ausversehen vergessen, oder es wurden die Pfade nicht korrekt angepasst,
Ich habe auf meiner Testumgebung das Szenario aus deiner xampp-control.log nachgestellt, also:
- eine XAMPP 5.6.40 portable als zip heruntergeladen
- in "e:\info\kaskadierung\page\hgettofile\pascalfiles\xampp\xampp5640leerup3014\" entpackt
- setup-xampp.bat ausgeführt
- xampp-control.exe gestartet und wieder beendet
- den gesamten Ordner nach "e:\info\kaskadierung\page\hgettofile\pascalfiles\xampp\xampp5640up3014\" kopiert
- setup-xampp.bat ausgeführt und die Pfade refresht
- xampp-control.exe gestartet und wieder beendet
- diesen gesamten Ordner nach "e:\info\kaskadierung\page\hgettofile\pascalfiles\xampp\xampp5640vonleerxp_14oup33\" kopiert
- setup-xampp.bat ausgeführt und die Pfade refresht
- xampp-control.exe gestartet
Anschließend habe ich Apache erfolgreich gestartet. Alle Pfade waren korrekt.
Dann habe ich den letzten kopiervorgang nochmal ausgeführt, aber ohne setup-xampp.bat auszuführen. Ich konnte wiederum Apache starten (es wurde auch die korrekte httpd.exe ausgeführt), doch die falsche Konfigurationsdatei aus dem vorigen Ordner genommen.
Das habe ich folgendermaßen verifiziert:
- Habe ich "e:\info\kaskadierung\page\hgettofile\pascalfiles\xampp\xampp5640vonleerxp_14oup33\apache\bin\httpd.exe" umbenannt, konnte ich Apache nichtmehr starten. Es wird also die korrekte Apache binary ausgeführt
- Habe ich in der XAMPP Shell das Command "httpd -S" ausgeführt, wurden mir Pfade des vorigen Ordners angezeigt
- Habe ich mir bei gestartetem Apache im XAMPP Dashboard das phpinfo() angesehen, standen da nur Pfade aus dem vorigen Ordner
Pascal1 wrote:2. Ich habe dort dann unterschiedliche Varianten im htdocs-Ordner getestet, also pro Xampp-"Installation" immer eine Variante
3. Auch unterschiedliche Xampp-Versionen dabei "installiert"(also php-versionsn z.b., aber immer portable)
4. Das obige kuriose Verhalten trat auf:
Ich kann in der htdocs/dashboard/faq.html die Zeile:
<dt>How do I install XAMPP?</dt>
abändern auf:
<dt>How do I install XAMPPa?</dt>
und speichern. Dann beende ich apache und beende xampp. Ich starte einen Browser, welcher noch nie benutzt wurde, im private-mode und rufe die Seite mit der faq auf:
http://localhost/dashboard/faq.htmlSiehe da, es steht dort an entsrpechender stelle:
How do I install XAMPP?
...anstelle von: How do I install XAMPPa?
Ich beende Xampp und die Seite ist nicht mehr aufrubar. Ich starte xampp und ich erhalte wieder genau disen Satz. Wieder statt: "How do I install XAMPPa?"
Auch das passt zu den Erkenntnissen, die ich oben geschildert habe. Wenn die falsche Konfigurationsdatei hergenommen wird, dann natürlich auch das falsche DocumentRoot Verzeichnis und damit die falsche Dashboard FAQ Datei.
Pascal1 wrote:5. Möchte ich während Xampp läuft einen anderen Xampp-Ornder umbenennen, dann geht das nicht, weil sich darin geöffnete Dateien befinden, meldet Windows! (ich habe aber das Xampp in diesem Ordner gar nicht gestartet!)
D:\Seite\Xampp_1\TestXampp -> hier habe ich Xampp gestartet
D:\Seite\Xampp_2 -> diesen Ordner möchte ich währendessen umbennennen. Das geht nicht. Es gibt darin zig Unterordner mit Xampp-Versionen. An welcher es dort liegt, weiß ich leider nicht. [Kann ich da irgendwie temporäre Dateien suchen, die während der Xampp-Ausführung(ist ja eigentlich gar nicht gestartet) erstellt werden? -> ja, habe ich jetzt am Apache-Log-Datei-Datum herausfinden können]
Natürlich nutzt Apache temporäre- und Sitzungsdateien. Aber wo die Dateien liegen zieht sich Apache wieder aus seiner Konfiguration.
Pascal1 wrote:Somit liegt der Fehler auch 100%ig an Xampp - ein Bug.
Es besteht eine theoretische Wahrscheinlichkeit, dass das setup_xampp.bat Script die httpd.conf Datei nicht bearbeiten konnte oder durfte. setup_xampp.bat überprüft nicht, ob die Datei auch wirklich bearbeitet wurde.
Das kann aber nicht durch zum Beispiel einen laufenden Apache Prozess ausgelöst werden, denn dieser liest die Datei nur ein und behält diese nicht im exklusiven Zugriff. Das können aber sehr wohl bestimmte Klartexteditoren oder andere Programme.
Man kann auch garnicht alle Eventualitäten in so einem kleinen Script einkalkulieren. Ein Bug wäre das dadurch aber noch lange nicht.
Wahrscheinlicher halte ich es aber, dass du es einfach einmal vergessen hast die setup_xampp.bat auszuführen. Das kann passieren.
Pascal1 wrote:Wie verhindere ich in Zukunft diesen Datensalat? Das ist ja offensichtlich ein Bug.
Da gibt es mehrere Möglichkeiten. Am einfachsten wäre es, den produktiven XAMPP Ordner garnicht zu ändern, und Backups in einen extra Ordner zu kopieren, bei dem einem immer klar ist, dass diese nicht für den Betrieb dort liegen und deshalb dort auch nie gestartet werden.
Du könntest natürlich auch nach jedem kopiervorgang über httpd -S überprüfen, ob die Apache config richtig angepasst wurde. Das bedeutet dann aber noch lange nicht, dass dies auch für MariaDB, PHP, etc der Fall ist. Also eigentlich müsstest du dann gleich alles überprüfen.
Du könntest auch überlegen, ob es wirklich nötig ist den gesamten über 500MB großen XAMPP Ordner zu kopieren, oder ob es nicht auch reichen könnte die von dir geänderten Dateien und Datenbankdump abzulegen.
Aus der Erfahrung heraus funktioniert das setup_xampp.bat Script sehr stabil. Ich habe seit mehreren Jahren immer mehrere XAMPP Versionen als zip parallel auf demselben System installiert. Das funktioniert bei mir seit fast 16 Jahren ohne Probleme.