PHP Version und DOM

Status
Für weitere Antworten geschlossen.

Dideli

Benutzer
Mitglied seit
18. Feb 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Habe eine Webseite die auf XML und DOM aufgebaut ist. -Leider funktioniert sie auf der DiskStation nicht, da die PHP Version scheinbar dies nicht unterstützt. Ist es nicht möglich eine normale PHP Version z.B 5.3.1 auf die DiskStation zu laden? Habe die Station eigentlich wegen der Webserverfunktionalität gekauft und nun kann ich sie nicht verwenden! Ach es ist die DS110j.
 

strix

Benutzer
Mitglied seit
04. Jan 2010
Beiträge
107
Punkte für Reaktionen
0
Punkte
0
Ich habe auch eine 110j und bei mir läuft (mal abgesehen davon, dass sie momentan gar nicht mehr geht;)) PHP, MySQL, DOM etc alles problemlos.

Edit: kurz nachgeschaut: PHP Version 5.2.10
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Auf meiner DS207+ (Firmware-Stand: 844) läuft PHP 5.2.6. Dies enthält - nach langer Zeit des Wartens - auch DOM und die libxml:

'./configure.syno' '--host=armle-unknown-linux' '--target=armle-unknown-linux' '--build=i686-pc-linux' '--with-apxs2=/usr/local/apache/bin/apxs' '--prefix=/usr/syno/php' '--with-config-file-path=/usr/syno/etc' '--with-pgsql=/usr/syno/pgsql' '--with-mysql=/usr/syno/mysql' '--with-mysqli=/usr/syno/mysql/bin/mysql_config' '--with-iconv=/usr/syno/libiconv' '--enable-mbstring' '--with-gd' '--enable-gd-native-ttf' '--with-zlib-dir=/usr/local/arm-marvell-linux-gnu' '--with-png-dir=/usr/local/arm-marvell-linux-gnu' '--with-jpeg-dir=/usr/local/arm-marvell-linux-gnu' '--enable-exif' '--with-imap=../imap-2007e' '--enable-calendar' '--enable-ftp' '--enable-sockets' '--with-libexpat-dir=/usr/syno' '--enable-dom' '--with-libxml-dir=/source/libxml2-2.6.32' '--enable-simplexml' '--enable-libxml' '--enable-xmlreader' '--enable-xmlwriter' '--disable-ipv6' '--disable-pdo' '--without-pdo-sqlite' '--without-sqlite' '--with-curl=/usr/syno' '--disable-cgi' '--enable-bcmath' '--with-gettext'

Auf meiner DS509+ (Firmware-Stand: 1118 (Beta)) läuft PHP 5.2.10. Dies enthält auch DOM und die libxml:

'./configure.syno' '--host=powerpc-unknown-linux' '--target=powerpc-unknown-linux' '--build=i686-pc-linux' '--with-apxs2=/usr/local/apache/bin/apxs' '--prefix=/usr/syno/php' '--with-config-file-path=/usr/syno/etc' '--with-pgsql=/usr/syno/pgsql' '--with-mysql=/usr/syno/mysql' '--with-mysqli=/usr/syno/mysql/bin/mysql_config' '--with-iconv=/usr/syno/libiconv' '--with-pdo-mysql=/usr/syno/mysql' '--with-pdo-pgsql=/usr/syno/pgsql' '--enable-mbstring' '--with-gd' '--with-freetype-dir=/usr/syno' '--enable-gd-native-ttf' '--with-zlib-dir=/usr/local/powerpc-linux-gnuspe' '--with-png-dir=/usr/local/powerpc-linux-gnuspe' '--with-jpeg-dir=/usr/local/powerpc-linux-gnuspe' '--enable-exif' '--with-imap=../imap-2007e' '--enable-calendar' '--enable-ftp' '--enable-sockets' '--with-libexpat-dir=/usr/syno' '--enable-dom' '--with-libxml-dir=/source/libxml2-2.6.32' '--enable-simplexml' '--enable-libxml' '--enable-xmlreader' '--enable-xmlwriter' '--disable-ipv6' '--without-pdo-sqlite' '--without-sqlite' '--with-curl=/usr/syno' '--disable-cgi' '--enable-bcmath' '--with-openssl=/usr/syno' '--with-gettext'

Kontrolliere einfach mal, ob das bei dir auch so ist. Wenn nicht, dann schreibe dem Synology-Support eine E-Mail, dass sie dir eine Firmware-Version zusenden, die das auch enthält.

Selbstverständlich kannst auch per IPKG dir einen weiteren Apachen installieren. Dies ist weder kompliziert noch schmälert es in irgendeiner Weise die Performance. Habe ich auch laufen wegen anderer Dinge ... Per IPKG gibt es auch noch andere Web-Server ... alles was das Herz begehrt.

Itari
 

Dideli

Benutzer
Mitglied seit
18. Feb 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Naja die Betaversion hab ich noch nicht probiert. Auf jedenfall hab ich mit ipkg den Apache neu eingebunden. Das hat auch funktioniert! Nur ein PHP Aufruf wie

$dom->load('data/Themen.xml');

Erzeugt eine Fehlermeldung. Leider weiss ich jetzt aber nicht mehr wie die genau lautet. Habe die Webseite vorher auf einem normalen Rechner mit XAMPP am laufen gehabt. Dort hat's einwandrei funktioniert. Naja dann versuche ich mal die Beta aus, mal sehen ob's geht. Danke für die schnelle Antwort von euch!

Was ich noch fragen wollte, gibts ein Tool ,wo man die ini's gescheit ohne Terminal editieren kann?
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Was ich noch fragen wollte, gibts ein Tool ,wo man die ini's gescheit ohne Terminal editieren kann?

Webeditor oder jetzt neu das Admin Tool (schau unter 3rdparty-Anwendungen)

Itari
 

Dideli

Benutzer
Mitglied seit
18. Feb 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Ja danke dir!

Habe die Beta installiert, leider habe ich immer noch das gleiche Problem!
Die PHP-Fehlermeldung lautet folgendermassen:

Warning: DOMDocument::load() [domdocument.load]: I/O warning : failed to load external entity

Der Aufruf geschieht folgendermassen:

function Load_Thema ($tnumber,$bname) {

$dom = new DOMDocument();
$domBible = new DOMDocument();
$dom->preserveWhiteSpace = false;
$domBible->preserveWhiteSpace = false;
$dom->load('data/Themen.xml');
$domBible->load('data/NW1986.xml');
$element = new DomXPath($dom);
$element2 = new DomXPath($domBible);

$i = 1;
$content = "";

// Thema-Titel ermitteln
$thema = $element->query('//thema[' . $tnumber . ']/@title');
$thema = $thema->item(0)->value;

// Definitions-Text ermitteln
$nodelist = $element->query('//thema[' . $tnumber . ']/*');

// Thema-Titel in Ausgabevariabel speichern
$content = 'Thema:  ' . $thema . '$$';

foreach ($nodelist as $node){

// Ermitteln der Art der Unterknoten (definition, bs)
if($node->nodeName == 'definition'){
$content = $content . '<div id="definition">' . $node->nodeValue . '</div>';
}
elseif($node->nodeName == 'bs'){
$content = $content . '<div id="bibelstelle"><table>';
$b++;
$bs = $node->nodeValue;
$split = explode(":", trim($bs));
$bs1 = $split[0] . ' ' . $split[1] . ':' . $split[2];

if(strpos($bs,"-") == false){
$vers = $element2->query('//BIBLEBOOK[@bsname=\'' . $split[0] . '\']/CHAPTER[@cnumber=\'' . $split[1] . '\']/VERS[@vnumber=\'' . $split[2] . '\']');
$content = $content . '<tr><td id="bs"><b>' . $bs1 . '</b>' . '</td><td id="bt">' . $vers->item(0)->firstChild->data . '</td></tr>';
}
else{
$bs1 = $split[0] . ' ' . $split[1] . ':';
$versnumber = explode("-", $split[2]);
$v = $versnumber[0];
$w = $versnumber[1];
while ($v <= $w) {
$vers = $element2->query('//BIBLEBOOK[@bsname=\'' . $split[0] . '\']/CHAPTER[@cnumber=\'' . $split[1] . '\']/VERS[@vnumber=\'' . $v . '\']');
$content = $content . '<tr><td id="bs"><b>' . $bs1 . $v . '</b>' . '</td><td id="bt">' . $vers->item(0)->firstChild->data . '</td></tr>';
$v++;
}
}
$content = $content . '</table></div>';
}
}

// Alle State-Einträge ermitteln
$states = $element->query('//thema[' . $tnumber . ']/state/*');

// Schleife für alle State-Einträge
foreach ($states as $state) {
$b = 0;

// Selektion aller States
$nodelist = $element->query('//thema[' . $tnumber . ']/state[' . $i . ']/*');

// Schleife über alle State-Unterknoten
foreach ($nodelist as $node){

// Ermitteln der Art der Unterknoten (title, note, bs)
if($node->nodeName == 'title'){
$content = $content . '<h4>' . $node->nodeValue . '</h4>';
}
elseif($node->nodeName == 'note'){
$content = $content . '<div id="textnote">' . $node->nodeValue . '</div>';
}
elseif($node->nodeName == 'bs'){
$content = $content . '<div id="bibelstelle"><table>';
$b++;
$bs = $node->nodeValue;
$split = explode(":", trim($bs));
$bs1 = $split[0] . ' ' . $split[1] . ':' . $split[2];

if(strpos($bs,"-") == false){
$vers = $element2->query('//BIBLEBOOK[@bsname=\'' . $split[0] . '\']/CHAPTER[@cnumber=\'' . $split[1] . '\']/VERS[@vnumber=\'' . $split[2] . '\']');
$content = $content . '<tr><td id="bs"><b>' . $bs1 . '</b>' . '</td><td id="bt">' . $vers->item(0)->firstChild->data . '</td></tr>';
}
else{
$bs1 = $split[0] . ' ' . $split[1] . ':';
$versnumber = explode("-", $split[2]);
$v = $versnumber[0];
$w = $versnumber[1];
while ($v <= $w) {
$vers = $element2->query('//BIBLEBOOK[@bsname=\'' . $split[0] . '\']/CHAPTER[@cnumber=\'' . $split[1] . '\']/VERS[@vnumber=\'' . $v . '\']');
$content = $content . '<tr><td id="bs"><b>' . $bs1 . $v . '</b>' . '</td><td id="bt">' . $vers->item(0)->firstChild->data . '</td></tr>';
$v++;
}
}
$content = $content . '</table></div>';
}
}
$i++;
}
echo $content;
}

Wie gesagt mit XAMPP funktioniert es einwandfrei. Verstehe einfach nicht warum dies mit der DiskStation net geht!
 
Zuletzt bearbeitet:

Dideli

Benutzer
Mitglied seit
18. Feb 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Also hab es kurz eingerichtet.

Unter http://www.onlinebibelstudium.ch kommst du auf das Web das auf dem XAMPP Server läuft.
Und unter http://www.onlinebibelstudium.ch:8080 auf das Web auf der DiskStation.

Eigentlich funktioniert das DOM ja auch, nur bei den Themen nicht und das kapiere ich echt net. Ich denke, das in der PHP Version des NAS einfach etwas anderst ist oder vielleicht ein Bug mitspielt.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Wenn ich das richtig sehe, dann lädst du XML-Dateien ein. Dateinamen unter Windows können groß und klein geschrieben werden und sind trotzdem identisch. Das ist anders unter Linux ('Themen' ungleich 'themen' ungleich 'THEMEN'). Kontrolliere einfach mal ganz genau, die Schreibweise. Falls es daran nicht liegt, könnten es noch die Zugriffsrechte der Dateien oder Verzeichnisse sein oder die Pfade stimmen nicht genau überein ... XML und DOM auf der DS sind es mit größter Wahrscheinlichkeit nicht das Problem.

Itari
 

Dideli

Benutzer
Mitglied seit
18. Feb 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Itari du bist der Beste echt! :). Danke dir tausendmal! Themen.xml ist tatsächlich net das gleiche wie THEMEN.xml! Ab sofort werde ich mir angewöhnen alles klein zu schreiben.

PS: Hättest dir jetzt ein Nachtessen verdient!
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Itari du bist der Beste echt! :). Danke dir tausendmal! Themen.xml ist tatsächlich net das gleiche wie THEMEN.xml! Ab sofort werde ich mir angewöhnen alles klein zu schreiben.

PS: Hättest dir jetzt ein Nachtessen verdient!

Wenn dir der Begriff Kollekte nicht fern ist, dann schau einfach mal in meinen Blog (Signatur die 1.) und denk feste daran, dass ich gerne Kaffee trinke ... :D

Itari
 
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