Moodle-Technikforum

Serverumzug und Umlautprobleme

 
Nutzerbild Rolf Petersen
Serverumzug und Umlautprobleme
 

Hallo Moodler,

M.3.1!

Ich muss eine Moodleinstallation von einem Unix- auf einen Win-Server umziehen.

Alles läuft auch perfekt.

Nur ein Problem:

Es sind auf dem Ursprungssystem eine ganze Menge Bilder eingesetzt worden, deren Dateinamen leider noch deutsche Umlaute enthalten.

Diese Bilder werden nun von dem Moodle auf dem Win-Server nicht angezeigt.

Ich habe die Datenbank mehrfach mit konkreter Einstellung "...UTF8" gedumpt und ebenso in eine UTF8-Datenbank reimportiert. Hat aber alles nichts genützt.

Was kann ich tun, damit die Dateinamen trotz verwendeter Umlaute richtig umgesetzt werden, also die Bilder auch richtig erscheinen?

- Einzeln umbenennen ist für  mich keine Option, da viele Bilder z. B. in SCORM-Paketen genutzt werden, wo man ja gar nicht sieht/weiß, wo die Bilder im System tatsächlich gespeichert liegen und somit nicht ohne weiters ausgetauscht werden können.

Vielen Dank für jede Hilfe!!!

Gruß

Rolf Petersen

 
Mittelwert:  -
Nutzerbild Tobias Reischmann
Re: Serverumzug und Umlautprobleme
Besonders aktive MoodlerEntwickler

Hallo Rolf,

erstmal ne kurze Nachfrage: Hast du auch daran gedacht, das moodledata Verzeichnis mit umzuziehen? Nur die Datenbank bringt dir nämlich erst mal nichts. Die Bilder liegen in moodledata.

Eine genaue Fehlermeldung wäre auch hilfreich, um den Fehler besser nachvollziehen zu können.

Wie sehen die entsprechenden Einträge denn in der Datenbank nach Reimport aus. Sind sie überhaupt importiert worden?

VG

Tobias

 
Nutzerbild Rolf Petersen
Re: Serverumzug und Umlautprobleme
 

Hallo Tobias,

Danke fürs kümmern!

1. Ja, moodledata ist mit umgezogen, auf alt zusammengezippt, auf neu einfach entzippt.

2. Fehlermeldung gibt es keine, lediglich die entsprechenden Bilder werden nicht angezeigt. Siehe Screenshot:


3. In der Datenbank, (Tabelle mdl_files) finden sich Einträge wie "Wurtsbrötchen.jpg" oder "Ärzte.png" oder "Qualitätsmanagement.jpg"

Die DB ist utf-8 codiert, sowohl als Dump, als auch als Import.

...

Tja, so sieht's aus und macht mich ratlos... traurig


Rolf

 
Nutzerbild Tobias Reischmann
Re: Serverumzug und Umlautprobleme
Besonders aktive MoodlerEntwickler

Hallo Rolf,

die Bilder werden in Moodle über ein img tag ausgegeben, welche im src Attribute einen Link auf die Datei bzw. die pluginfile.php enthalten. Schau doch mal im Quelltext nach, wie der Link aussieht. Teilweise wird dort nämlich der Dateiname mit verwendet. Wenn dieser durch den Server nicht richtig encodiert wird, könnte das der Grund sein, warum die Bilder nicht geladen werden.

Gruß

Tobias

 
Mittelwert: Nützlich (1)
Nutzerbild Rolf Petersen
Re: Serverumzug und Umlautprobleme
 

Hi Tobias,

das geht schon in die von mir vermutete Richtung.

Der Link, der erscheint, wenn ich das BIld im Screenshot untersuche, lautet "...Qualit%C3%A4tsmanagement.jpg".

In der Datenbank ist das, wie schon berichtet, gespeichert als "Qualitätsmanagement.jpg".

Gespeichert ist das Bild wohl (wo auch immer) als "Qualitätsmanagement.jpg".#

Jedenfalls sind in einigen SCORM-Paketen Bilder definitiv mit Umlauten gespeichert.

Mein Problem ist nun: Wie kann ich das ändern, damit solche Bilder richtig angezeigt werden?

Rolf

 
Nutzerbild Tobias Reischmann
Re: Serverumzug und Umlautprobleme
Besonders aktive MoodlerEntwickler

Ruf die URL aus dem img Tag mal direkt in einem eigenen Tab auf (optimaler Weise mit aktivierten Debugging Ausgaben) und poste den Output inklusive Stack trace.

Wenn das Bild einfach nur nicht gefunden wird, sollte eine Ausgabe wie:

        Sorry, the requested file could not be found

erscheinen.

Ich hoffe auf eine Fehlermeldung, die dein Problem genauer beschreibt.


 
Nutzerbild Rolf Petersen
Re: Serverumzug und Umlautprobleme
 

Debugging ist an, es kommt aber keine qualifizierte Fehlermeldung. Nur:


Nochmal vielen dank für Deine Mühen, Tobias.


Rolf

 
Nutzerbild Tobias Reischmann
Re: Serverumzug und Umlautprobleme
Besonders aktive MoodlerEntwickler

Füg mal das hier mal am Ende deiner config.php ein:

@error_reporting(E_ALL | E_STRICT); // NOT FOR PRODUCTION SERVERS!
@ini_set('display_errors', '1'); // NOT FOR PRODUCTION SERVERS!
$CFG->debug = (E_ALL | E_STRICT); // === DEBUG_DEVELOPER - NOT FOR PRODUCTION SERVERS!
$CFG->debugdisplay = 1; // NOT FOR PRODUCTION SERVERS!
Dann solltest du den Stack Trace ausgegeben bekommen.
 
Nutzerbild Tobias Reischmann
Re: Serverumzug und Umlautprobleme
Besonders aktive MoodlerEntwickler

Eine Idee wäre, dass ein Webserver ebenfalls auf UTF-8 gestellt werden muss.

Was verwendest du denn für einen Server und was verwendest du für eine Datenbank?

 
Mittelwert: Nützlich (1)
Nutzerbild Visvanath Ratnaweera
Re: Serverumzug und Umlautprobleme
Besonders aktive Moodler
Das denke ich auch. Lade eine HTML-Datei mit einfachem Inhalt mit Umlaute in denen neuen Server hoch und rufe die Datei in deinem Browser auf.

Z.B. http://example.com/test.html, der Inhalt von test.html:
<html>
<body>
äüö
</body>
</html>
 
Nutzerbild Rolf Petersen
Re: Serverumzug und Umlautprobleme
 

Danke sehr Visvanath.

Etwas in der Art hatte ich auch schon ganz am Anfang als Analysehilfe benutzt.

Alle Textteile, die Umlaute enthalten werden korrekt interpretiert.

Meine Recherche zu dem Problem habe ich noch einmal in der Antwort an Tobias geschrieben.


Wie gesagt ... ratlos!

Gruß

Rolf 

 
Nutzerbild Rolf Petersen
Re: Serverumzug und Umlautprobleme
 

Hallo Tobias

ich denke, ich habe eine ganz andere Spur:

Auf dem Quellsystem (Unix) sind Bilder mit Umlauten benutz worden. Soweit, so schlecht aber Tatsache.

Die Dateinamen der Bilder sind in der DB (files) korrekt mit Umlauten gespeichert (filename und filesource).  Das ist vor dem Export und nach dem Import identisch. Beide DBs sind utf8, auch die entsprechenden DB-Felder sind utf8.

In der Tabelle "files" gibt es zu den Bildern jeweils den "contenthash", der auf die Datei in moodledata verweist. Wenn man nun diese, nach langem Suchen gefundene Datei mit "Paint" öffnet, sieht man das Bild auch korrekt. Bilder werden in moodledata offenbar als Bitmap gespeichert.

Schaut man sich den Hex-Code der Datei genau an, erkennt man, dass dort für das "ä" mit dem Hex-code "C3 A4" abgelegt wurde. So gespeichert kommt das ganze dann in der importierten moodledata auf dem Zielsystem an. Dort wird der Code aber nicht als "ä" interpretiert, sonder als %C3%A4. Das ist genau die Zeichenfolge, die in der URL des Bildes dann auftaucht, das damit so nicht angezeigt werden kann und die Fehlanzeige produziert.

Kopiere ich die "Bildquelle", so wie sie beim Untersuchen des nicht angezeigten Bildes erscheint:

---https://mymoodle/pluginfile.php/498/course/overviewfiles/Qualit%C3%A4tsmanagement-in-Tierarztpraxen-kliniken-800x533.jpg--- 

und gebe das in die Adresszeile des Browsers ein, so wird das sofort interpretiert als:

---https://testportal.hyacademy.net/pluginfile.php/498/course/overviewfiles/Qualitätsmanagement-in-Tierarztpraxen-kliniken-800x533.jpg--- 

und es erscheint außer "Die gesuchte Datei wurde nicht gefunden." keine weitere Fehlermeldung


Bezüglich der Codierung ist eigentlich schon alles mehrfach geprüft.

Server, Ursprungs-Datenbank, Zieldatenbank.

Ich bin völlig ratlos, wie man dieses Problem beseitigen kann. Wie gesagt, die Anzahl der Bilder, die mit Umlauten im Ursprungssystem gespeichert sind, verbietet es, eine manuelle Umbenennung >ae, ue, oe, ss vorzunehmen.  

Gruß

Rolf

 
Mittelwert: Nützlich (1)
Nutzerbild Visvanath Ratnaweera
Re: Serverumzug und Umlautprobleme
Besonders aktive Moodler
Hallo Rolf

Die Sputensuche war aber minuziös!
zwinkernd

Ist Zip im Spiel? Siehe "(Moodle 2.1.2) Problem with Unziping zip files that contain special characters" https://moodle.org/mod/forum/discuss.php?d=190958#p831287.
 
Nutzerbild Rolf Petersen
Re: Serverumzug und Umlautprobleme
 

Hi Visvanath

Und ja, Zip ist im Spiel.

Die Datenbank hat ca 1,2GB und wird daher gezippt.

Sowohl der Blick in die Quelldatenbank (Tabelle "files") als auch in die übertragene Zieldatenbank zeigen aber die "korrekten" Filenamen, z. B. "Qualität..." im der Spalte filename (u. a.)

Moodledata habe ich schon ungezippt per FTP übertragen.


Gruß

Rolf

 

 
Nutzerbild Visvanath Ratnaweera
Re: Serverumzug und Umlautprobleme
Besonders aktive Moodler
Hallo Rolf

Den SQL-Dump gezippt übertragen habe ich nicht gemeint. Ich meinte, ob die betroffenen Dateien nicht einzeln sondern als Zip-Archiven hochgeladen und dann vom Moodle entzippt wurde. Ich fürchte, SCORM funktioniert so. Aber wie häufig SCORM erfolgreich in Moodle eingesetzt wird, würde ich diese Spur anhalten und die Hinweise von Tobias https://moodle.org/mod/forum/discuss.php?d=366712#p1480615 folgen. Windows-bezogen kann ich sowieso nichts sagen. Habe praktisch keine Erfahrung! (Dass es sich um einen Umstieg von Unix zu Windows handelt habe ich übersehen.)
 
Nutzerbild Tobias Reischmann
Re: Serverumzug und Umlautprobleme
Besonders aktive MoodlerEntwickler

Hallo Rolf,

dass in der URL %C3%A4 auftaucht, ist absolut richtig. Das ist das entsprechende URL-Encoding des Zeichens ä.

Für weitere Lösungsansätze brauche ich die Infos auf meine beiden Aufgaben/Fragen vom 7.3. (den vollständigen Stack-Trace und die Angabe, welche Server und Datenbanken du verwendest).

Gruß

Tobias

 
Nutzerbild Rolf Petersen
Re: Serverumzug und Umlautprobleme
 

Hallo Tobias


Der Quellserver ist ein Unix-System, der Zielserver ist ein Windows-Server (2012 R2)

Die Quell- und Zieldatenbank sind beide MySQL. Beide utf8, auch die Tabellenspalten sind geprüft: utf8. (für Tabelle "files" geprüft)

Die DB hat knapp 1,2GB, daher wird sie gezippt übertragen (.zip).

Die Daten habe ich 

a - per MySQL-Workbench Tool übertragen

b - per MySQL commandline übertragen.

Beides führt zum gleichen Ergebnis > Bilder werden nicht angezeigt.

Moodledata habe ich nun schon per FTP und ungezippt übertragen. > keine Änderung.


Bin mal gespannt, wo das Problem sich lokalisieren lässt.

Hier der Fehler-Stack:

Debug info: 
Error code: filenotfound
Stack trace:
  • line 496 of \lib\setuplib.php: moodle_exception thrown
  • line 1803 of \lib\filelib.php: call to print_error()
  • line 4341 of \lib\filelib.php: call to send_file_not_found()
  • line 37 of \pluginfile.php: call to file_pluginfile()

Gruß

Rolf


 
Nutzerbild Tobias Reischmann
Re: Serverumzug und Umlautprobleme
Besonders aktive MoodlerEntwickler

Hallo Rolf,

die Frage nach dem Server bezog sich nicht auf das Betriebsystem, sondern die Anwendung: Apache, nginx, etc.

Das Problem liegt auf jeden Fall in der filelib.php. Hier wird in Zeile 4340 versucht auf die Datei zuzugreifen. Meine Vermutung ist, dass schon dort die entsprechenden Parameter falsch sind, da das Encoding nicht korrekt vom Server eingelesen werden konnte.

Kannst du mal versuchen vor Zeile 4340 eine neue Zeile einzufügen mit:

echo $filename;

Anschließend bitte die selbe Seite nochmal aufrufen. Dann solltest du vor der Fehlermeldung den gesuchten Dateinamen sehen. Wenn da die Umlaute richtig aufgelöst sind, bin ich ratlos...

Gruß

Tobias

 
Nutzerbild Rolf Petersen
Re: Serverumzug und Umlautprobleme
 

Tobias,

Mit deiner Zeile eingefügt ergibt sich:

Stack trace:
  • line 496 of \lib\setuplib.php: moodle_exception thrown
  • line 1803 of \lib\filelib.php: call to print_error()
  • line 4342 of \lib\filelib.php: call to send_file_not_found()
  • line 37 of \pluginfile.php: call to file_pluginfile()
+++++++++++
Output buffer: Qualittsmanagement-in-Tierarztpraxen-kliniken-800x533.jpg
+++++++++++

Also hier wird das "ä" nicht angezeigt, es sollte sein "Qualitätsmanagement..."

... hätte ich beinahe vergessen: Neuer Server arbeitet mit IIS. 

Ich hoffe, Du kannst noch weiter helfen.

Gruß
Rolf

 
Nutzerbild Tobias Reischmann
Re: Serverumzug und Umlautprobleme
Besonders aktive MoodlerEntwickler

Das klingt dann sehr danach, dass der Server das falsche Encoding verwendet. Hast du für den IIS das Encoding auf UTF-8 gestellt?

Schau mal hier:

https://stackoverflow.com/questions/45198518/how-to-set-encoding-to-utf-überraschtn-a-iis-web-config-file

 
Nutzerbild Rolf Petersen
Re: Serverumzug und Umlautprobleme
 

Hört sich gut an.

Alles eingestellt, App-Pool und IIS mehrfach neu gestartet, aber leider ohne Erfolg traurig

Rolf