Unterschied: XAMPP aus Control Panel und XAMPP als Service?

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Unterschied: XAMPP aus Control Panel und XAMPP als Service?

Postby NicoN » 25. August 2008 16:22

Ich habe folgendes kurioses Problem:
Ich habe ein PHP-Skript, welches die Funktion file_get_contents() verwendet um den Inhalt einer lokalen XML-Datei zu parsen. Wenn ich nun den Apache über das Control Panel starte, dann funktioniert mein Script fehlerfrei, wenn ich Apache als Windows-Dienst einrichte und den Dienst starte, bekomme ich den Fehler:

file_get_contents("HIER STEHT MEINE XML-DATEI") [function.file-get-contents]: failed to open stream: No such file or directory in "HIER STEHT MEIN SCRIPT" on line 27

Starten lässt sich der Apache problemlos.
Ich habe in sämtlichen php*.ini-Dateien von XAMPP testweise nur folgende Änderungen gemacht:
max_execution_time = 3000 (anstatt: max_execution_time = 60).
Ausserdem sind "allow_url_fopen = On" und "safe_mode = Off" ebenfalls in allen php*.ini's gesetzt.

Egal, wie ich den Apache starte, wenn ich mein Skript per Konsole starte (PFAD/php.exe PFAD/Skript.php) funktioniert es immer einwandfrei.

Ich habe bereits XAMPPlite 1.6.7 benutzt, wieder runter geschmissen und momentan den normalen XAMPP 1.6.7 installiert. Bei beiden Versionen bekomme ich den gleichen Fehler.

Wie bekomme ich XAMPP als Dienst zufriedenstellend zum Laufen?

Verzweifelter Gruss
Nico
NicoN
 
Posts: 6
Joined: 25. August 2008 16:05

Postby Wiedmann » 25. August 2008 16:25

file_get_contents("HIER STEHT MEINE XML-DATEI") [function.file-get-contents]: failed to open stream: No such file or directory in "HIER STEHT MEIN SCRIPT" on line 27

Wieso versucht der die Datei "HIER STEHT MEIN SCRIPT" zu öfnnen, wenn sich die Datei wohl "HIER STEHT MEINE XML-DATEI" nennt?

BTW:
um den Inhalt einer lokalen XML-Datei zu parsen.

Haben XML-Dateien normal nicht die Endung ".xml"?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby NicoN » 25. August 2008 16:34

Das "HIER STEHT MEINE XML-DATEI" ist ein Platzhalter für einen richtigen Windows-Pfad wie beispielsweise "C:\testverzeichnis\testdatei.xml". Und "Hier STEHT MEIN SCRIPT" ist natürlich ein Pfad wie "C:\testverzeichnis\script.php". Aus speziellen Gründen kann ich den Cleartext hier leider nicht veröffentlichen :roll:

Welches Skript hier verwendet wird und welche XML-Datei geparst wird, ist für mein Problem ja schliesslich auch unerheblich. Schliesslich läuft das Skript ja, wenn ich den Apache manuell, also übers Control Panel starte und es läuft nicht, wenn ich Apache als Dienst starte.
NicoN
 
Posts: 6
Joined: 25. August 2008 16:05

Postby Wiedmann » 25. August 2008 16:58

Das "HIER STEHT MEINE XML-DATEI" ist ein Platzhalter für einen richtigen Windows-Pfad wie beispielsweise "C:\testverzeichnis\testdatei.xml".

Und wie sieht das im Orginal aus? Bzw. was steht genau in Zeile 27 von diesem Script?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Nobbie » 25. August 2008 16:58

>Aus speziellen Gründen kann ich den Cleartext hier leider nicht veröffentlichen

Tja, da aber genau dort die Fehlerursache begraben liegt, wirst Du alleine weitersuchen müssen.
Nobbie
 
Posts: 8770
Joined: 09. March 2008 13:04

Postby NicoN » 26. August 2008 07:47

Ok, ich habe jetzt ein neues Script geschrieben mit der gleichen Routine und unkritischen Daten; die Zeile lautet jetzt:

Code: Select all
$path = "D:/Plugin.xml";
$xml = file_get_contents($path);


Und der Fehler lautet jetzt:

file_get_contents(D:/Plugin.xml) [function.file-get-contents]: failed to open stream: No such file or directory in D:\Programme\xampp\htdocs\Plugin.php on line 27

Wie schon geschrieben, der Fehler taucht nur auf, wenn XAMPP als Dienst läuft, wenn ich XAMPP manuell aus dem Control Panel starte oder auch wenn ich das Script mit der PHP-Datei als Parameter per Konsole starte, funktioniert es fehlerfrei.

Nach meiner Einschätzung hat es irgendetwas mit den Berechtigungen des Dienstes zu tun oder wird vielleicht eine andere php.ini benutzt, wenn der Apache als Dienst läuft?

Weil ich vermutet habe, dass mein Problem an den Berechtigungen des Dienstes liegt, habe ich den Dienst mitlerweile auch schon umkonfiguriert, dass er nicht als "lokales Systemkonto" ausgeführt wird, sondern mit meinem Benutzernamen und Passwort, aber ohne Erfolg. Und auch diesen Versuch habe ich sowohl im XAMPP, als auch im AXMPPlite durchgeführt.
NicoN
 
Posts: 6
Joined: 25. August 2008 16:05

Postby NicoN » 26. August 2008 08:19

Ich habe ein neues Zwischenergebnis erreicht:
Wenn ich mein XML-File in das htdocs-Verzeichnis verschiebe, funktioniert es offenbar. Demnach habe ich mit Apache als Dienst weder Berechtigung, mittels file_get_contents das htdocs-Verzeichnis zu verlassen.
NicoN
 
Posts: 6
Joined: 25. August 2008 16:05

Postby NicoN » 26. August 2008 08:25

Habs gefunden: Stichwort Documentroot! 8)
Eigentlich logisch und ich begreiffe kaum, dass ich so lange dafür gebraucht habe, es zu begreifen. Irritierend ist jedoch nach wie vor, dass ich bei einer Startart von Apache eine Beschränkung habe und bei der anderen Startart keine Beschränkung...

Auch wenn ich meine Schusseligkeit selber erkannt habe, danke für Eure Bemühungen :wink:
NicoN
 
Posts: 6
Joined: 25. August 2008 16:05

Postby Wiedmann » 26. August 2008 09:57

Habs gefunden: Stichwort Documentroot!

Hmm. Egentlich interessiert sich PHP bei file_get_contents gar nicht für das DocumentRoot...

DocumentRoot ist ja eine reine Einstellung für den Apache, und file_get_contents greift direkt auf das Dateisystem zu.

Ok, ich habe jetzt ein neues Script geschrieben mit der gleichen Routine und unkritischen Daten; die Zeile lautet jetzt:

Also bei mir tut genau dieses Script sowohl in der Shell, als auch über den Apachen.

Nach meiner Einschätzung hat es irgendetwas mit den Berechtigungen des Dienstes zu tun

Dann sollte in der Fehlermeldung was von "permission denied" stehen.
(Gibt es denn noch zufällig was im "error.log"?

Tja, eigentlich ist mir gerade das Problem bei dir nicht ganz klar. D ist ja ein lokales Laufwerk, und somit sollte das eigenlich tun, sofern es auf dem Laufwerk D. im Hauptverzeichnis eine Datei mit dem Namen "D:/Plugin.xml" gibt...
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby NicoN » 26. August 2008 10:02

Ich weiss auch nicht genau, wo das Problem lag aber nachdem ich ein Alias bzw. Directory gesetzt hatte, funktionierte es plötzlich...
NicoN
 
Posts: 6
Joined: 25. August 2008 16:05


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 4 guests