Seite wird nicht dargestellt -- SimpleXMLElement

Hast du einen Fehler in der aktuellen Version gefunden ? Diesen kannst du uns hier mitteilen und uns bei der Fehlersuche helfen.
Antworten
matcauthon
Beiträge: 12
Registriert: 21. Dez 2015, 12:06

Seite wird nicht dargestellt -- SimpleXMLElement

Beitrag von matcauthon »

Einige meiner angemeldeten Mitglieder bekommen hin und wieder folgende Meldung und sehen keine weitere Seite:

Code: Alles auswählen

Warning: SimpleXMLElement::__construct(): I/O warning : failed to load external entity "/volume1/web/admidio/adm_program/languages/de.xml" in /volume1/web/admidio/adm_program/system/classes/language.php on line 289 Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /volume1/web/admidio/adm_program/system/classes/language.php:289 Stack trace: #0 /volume1/web/admidio/adm_program/system/classes/language.php(289): SimpleXMLElement->__construct('/volume1/web/ad...', 0, true) #1 /volume1/web/admidio/adm_program/system/classes/language.php(104): Language->searchLanguageText(Array, '/volume1/web/ad...', 'de', 'SYS_OVERVIEW') #2 /volume1/web/admidio/adm_program/index.php(21): Language->get('SYS_OVERVIEW') #3 {main} thrown in /volume1/web/admidio/adm_program/system/classes/language.php on line 289
oder

Code: Alles auswählen

Warning: SimpleXMLElement::__construct(): I/O warning : failed to load external entity "/volume1/web/admidio/adm_program/system/databases.xml" in /volume1/web/admidio/adm_program/system/classes/dbcommon.php on line 184 Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /volume1/web/admidio/adm_program/system/classes/dbcommon.php:184 Stack trace: #0 /volume1/web/admidio/adm_program/system/classes/dbcommon.php(184): SimpleXMLElement->__construct('/volume1/web/ad...', 0, true) #1 /volume1/web/admidio/adm_program/modules/preferences/preferences.php(410): DBCommon->getMinVersion() #2 {main} thrown in /volume1/web/admidio/adm_program/system/classes/dbcommon.php on line 184
Admidio läuft Version 3.0.6 mit PHP 5.6.13 auf einer Synology DS.
Welche Infos braucht ihr noch? Könnt ihr mir helfen?
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Re: Seite wird nicht dargestellt -- SimpleXMLElement

Beitrag von fasse »

Hi,

entscheidend ist wohl hier, dass er die XML-Dateien wohl manchmal nicht laden kann

Code: Alles auswählen

Warning: SimpleXMLElement::__construct(): I/O warning : failed to load external entity "/volume1/web/admidio/adm_program/languages/de.xml"
. Der Rest der Meldung sind dann Folgefehler. Gibt es evtl. auf dem Server Probleme mit dem Dateizugriff? Auf jeden Fall würde ich mal an dieser Stelle weiter suchen. Ggf. passiert es dann, wenn mehrere Benutzer gleichzeitig Admidio nutzen?

Viele Grüße
Fasse
matcauthon
Beiträge: 12
Registriert: 21. Dez 2015, 12:06

Re: Seite wird nicht dargestellt -- SimpleXMLElement

Beitrag von matcauthon »

Guten Morgen,

und danke für deine Antwort. Ich habe mal versucht, das Problem nachzustellen, aber mir ist weiterhin nicht klar, woran es liegen könnte. Die Synology fährt sich ab und zu mal in den Ruhezustand, ob das allerdings die auslösende Ursache ist, weiß ich nicht.

Es könnte auch sein, dass es passiert, wenn mehrere Benutzer Admidio nutzen. Da tritt es zumindest häufiger auf.

Hast du noch eine Idee, wie ich dem auf dem Grund gehen könnte?
matcauthon
Beiträge: 12
Registriert: 21. Dez 2015, 12:06

Re: Seite wird nicht dargestellt -- SimpleXMLElement

Beitrag von matcauthon »

Ich habe diesen Fehler weiterhin erhalten, konnte aber nichts sinnvolles feststellen:

Code: Alles auswählen

FastCGI: server "/php-fpm-handler" stderr: PHP message: PHP Warning:  SimpleXMLElement::__construct(): I/O warning : failed to load external entity "/volume1/web/admidio/adm_program/languages/de.xml" in /volume1/web/admidio/adm_program/system/classes/language.php on line 289
FastCGI: server "/php-fpm-handler" stderr: PHP message: PHP Fatal error:  Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /volume1/web/admidio/adm_program/system/classes/language.php:289
FastCGI: server "/php-fpm-handler" stderr: Stack trace:
FastCGI: server "/php-fpm-handler" stderr: #0 /volume1/web/admidio/adm_program/system/classes/language.php(289): SimpleXMLElement->__construct('/volume1/web/ad...', 0, true)
FastCGI: server "/php-fpm-handler" stderr: #1 /volume1/web/admidio/adm_program/system/classes/language.php(104): Language->searchLanguageText(Array, '/volume1/web/ad...', 'de', 'SYS_LOGIN')
FastCGI: server "/php-fpm-handler" stderr: #2 /volume1/web/admidio/adm_program/index.php(42): Language->get('SYS_LOGIN')
FastCGI: server "/php-fpm-handler" stderr: #3 {main}
FastCGI: server "/php-fpm-handler" stderr:   thrown in /volume1/web/admidio/adm_program/system/classes/language.php on line 289
Nach einer bizarren Googelei habe ich unter http://stackoverflow.com/a/24190224/1009459 gefunden, mit dem Hinweis folgende Zeile einzufügen:

Code: Alles auswählen

libxml_disable_entity_loader(false);
Ich habe es in die language.php oberhalb der Klasse eingefügt und die Seite lud sofort wieder.
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Re: Seite wird nicht dargestellt -- SimpleXMLElement

Beitrag von fasse »

Hi,
Das ist interessant. Ich hab mir das gerade mal angeschaut. In Kommentaren steht, dass dies auch Programmübergreifend ein Problem sein kann. Was läuft denn noch bei dir? Evtl. setzt eine andere Einstellung dies und macht dann bei uns Probleme.

Viele Grüße
Fasse
matcauthon
Beiträge: 12
Registriert: 21. Dez 2015, 12:06

Re: Seite wird nicht dargestellt -- SimpleXMLElement

Beitrag von matcauthon »

Was auf so einer Synology alles läuft kann ich dir gar nicht sagen. Ein Medienserver, eine Administrationsoberfläche, Photo-Gallery, .......

Aber bei mir noch separat installiert sind Piwik, phpMyAdmin und tt-rss. Und tt-rss enthält folgenden Code:

Code: Alles auswählen

libxml_disable_entity_loader(true);
https://github.com/nota-ja/tt-rss/blob/ ... l.php#L496

Könnte also gut sein, dass es daran liegt.
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Seite wird nicht dargestellt -- SimpleXMLElement

Beitrag von XimeX »

https://secure.php.net/manual/de/functi ... loader.php
Disable (TRUE) or enable (FALSE) libxml extensions (such as DOM, XMLWriter and XMLReader) to load external entities.
This function was reported to be not thread safe. So this might affect php-scripts on the same server.
matcauthon
Beiträge: 12
Registriert: 21. Dez 2015, 12:06

Re: Seite wird nicht dargestellt -- SimpleXMLElement

Beitrag von matcauthon »

Das klingt so, als sollte man alle Aufrufe für XML mit diesen Methoden kapseln, um einerseits das korrekte Laden sicherzustellen, andererseits die Sicherheitsprobleme zu vermeiden.
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Re: Seite wird nicht dargestellt -- SimpleXMLElement

Beitrag von fasse »

Eigentlich heißt das, dass man die Funktion libxml_disable_entity_loader besser nicht nutzen sollte, da ansonsten Probleme, wie hier beschrieben auftreten.

Script A ruft die Funktion auf, Script B hat Probleme ...

@ximex: sollten wir den Aufruf libxml_disable_entity_loader(false); in die Common setzen?
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Seite wird nicht dargestellt -- SimpleXMLElement

Beitrag von XimeX »

ja können wir reingeben. Aber hier brauchen wir auf alle fälle eine gute doku (inline)
Antworten