simplexml_load_file() unter php cli

Status
Für weitere Antworten geschlossen.

Knipser14

Benutzer
Mitglied seit
10. Mai 2012
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Hey ich bräuchte noch einmal eure Hilfe:

Und zwar spuckt mein Skript bei der Funktion: simplexml_load_file() folgenden Fehler aus:

I/O warning: failed to load external entity "volume1/...."

Muss man bei simplexml unter php cli etwas spezielles beachten?

Vielen Dank für eure Hilfe,

Knipser
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Schreibfehler?
I/O warning: failed to load external entity "volume1/...."
diesen Pfad gibt es so auf der DS auf jeden Fall ned :)
 

Knipser14

Benutzer
Mitglied seit
10. Mai 2012
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Also auf meiner RS212 gibt es diesen Pfad.

/volume1/gemeinsamerOrdner1
/volume1/gemeinsamerOrdner2
...
Und in einem dieser liegen dann auch meine xml-Dateien.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0

Knipser14

Benutzer
Mitglied seit
10. Mai 2012
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Hm ok auf diese Feinheit hatte ich jetzt garnicht geachtet :-D

Aber ich bin mir eigentlich zu 99% sicher nur die Fehlermeldung falsch abgeschrieben zu haben. Kann es aber leider erst am Montag wieder auf Arbeit prüfen.

Ich habe ja auch (sehr vorbildlich wie ich finde ;-) ) schon einmal selbst gegoogelt.

Ich habe dabei Hinweise gefunden, dass es auch an folgender Option in der php.ini liegen könnte: allow_url_fopen ( http://www.php.net/manual/de/filesystem.configuration.php#ini.allow-url-fopen )

Kann diese Befürchtung jemand bestätigen und wenn ja, was kann man tun?


Grüße,

Knipser
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
wüsste nicht wie in diesem Fall eine url_fopen Einschränkung gelten sollte. Denn du öffnest die Datei ja via einen lokalen Serverpfad. Das sollte eigentlich keinen Einfliuss haben. Hast du mal probiert das xml File in ein Verzeichnis zu legen, wo der Server mit Garantie zugreifen kann? z.B. nach /volume1/web
 

Knipser14

Benutzer
Mitglied seit
10. Mai 2012
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Naja, also auf das aktuelle Verzeichnis müsste er eigentlich auch auf jeden Fall Zugriff haben.
Vorher entpacke ich die xml-Dateien nämlich aus zip-Verzeichnissen... Und das klappt problemlos.

Komisch, dass simplexml jetzt so rumzickt.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
vielleicht ist die XML-Strecke ja auch nicht ok ... probiere doch mal eine ganz einfache, die aber formal richtig ist oder jag die XML-Strecke mal durch ein XML-Validierungstool auf dem PC

Itari
 

Knipser14

Benutzer
Mitglied seit
10. Mai 2012
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Die XML-Dateien sind computergeneriert und wurden auch schon, unter anderen Betriebssystemen, mit simplexml geöffnet.

Ich denke daran kann es nicht liegen...

Mich wundert es ein bisschen, dass ich anscheinend der Erste bin, der auf dieses Problem stößt :-D Funktioniert bei allen anderen der Befehl einwandfrei?


Grüße Knipser
 

Knipser14

Benutzer
Mitglied seit
10. Mai 2012
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Heyho!

Das Problem lag in der der Option open_basedir. Die ist auf dem NAS defaultmäßig gesetzt und bewirkt, dass die php-cli nur dort eingetragene Pfade öffnet.

Den Eintrag muss man in folgender Datei setzen (zumindest bei der RS212): /usr/syno/etc/php/user-setting.ini

Hier gibt es noch Informationen zu open_basedir: http://php.net/manual/de/ini.core.php


Grüße,

Knipser
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat