Universal Office Konverter: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
{{Zum Überarbeiten}}
{{Servereinstellungen}}
{{Neu}}
 
==Was ist unoconv?==
Das Kommandozeilenprogramm '''unoconv''' wird verwendet, um Office-Dokumente in verschiedene Dateiformate zu konvertieren. Das Programm verwendet zur Konvertierung [http://libreoffice.org LibreOffice]. Die Konvertierung wird bei [[Aufgabe]]nabgaben genutzt, um hochgeladene Dateien in PDFs zu konvertieren, in denen Bewerter/innen Annotationen hinterlegen können. Sollte auf dem Moodle-Server kein '''unoconv''' installiert sein, dann können Bewerter/innen nur dann Annotationen in Aufgabenabgaben hinterlegen, wenn die hochgeladenen Dateien bereits PDFs sind.
 
Die Installationsschritte hängen vom Betriebssystem des Moodle-Servers ab.
 
== Installation unter Linux ==
Sie benötigen '''unoconv''' mindestens in der Version 0.7. Abhängig von Ihrer Linus-Distribution ist das Programm über den Paketmanager verfügbar oder kann direkt installiert werden:
 
===Ubuntu 16.04 LTS===
 
<pre>
apt-get install unoconv
</pre>
 
Wenn Ihr Paketmanager eine ältere Version enthält, müssen Sie nach der erforderlichen neuen Version suchen und diese manuell installieren ([https://packages.debian.org/stretch/unoconv Debian Testing]). Unoconv selbst ist ein Python-Skript, d.h. es hat verschiedene Abhängigkeiten.
 
Mögliche Probleme:
* Auf manchen Systemen ist das Homeverzeichnis des Apache-Nutzers als ein Verzeichnis definiert, das gar nicht existiert. Das kann dazu führen, dass '''unoconv''' nicht funktioniert. Dann gibt es zwei Lösungsmöglichkeiten: Entweder legen Sie ein schreibbares Homeverzeichnis für den Apache-Nutzer an (z.B. ''/home/www-data'') oder Sie lassen einen '''unoconv''' Listener (siehe unten) unter einem anderen Nutzer als dem Apache-Nutzer laufen, und dieser andere Nutzer muss ein schreibbares Homeverzeichnis haben.
* Wenn Sie noch 14.04LTS laufen haben, wird '''unoconv''' nicht wie erwartet arbeiten. In diesem Fall können Sie folgendermaßen vorgehen: Installieren Sie '''unoconv''' in der Version 0.6 wie oben beschrieben über den Paketmanager. Ziehen Sie dann '''unoconv''' in der Version 0.7 vom Github (https://github.com/dagwieers/unoconv). Aktualisieren Sie auf die aktuellste LibreOffice-Version mit Hilfe von PPA (https://launchpad.net/~libreoffice/+archive/ubuntu/ppa). Verweisen Sie Moodle auf die  Github-Version von '''unoconv'''. Sie müssen dazu die Python-Datei von '''unoconv''' modifizieren, indem Sie in der 1. Zeile <code>python</code> durch <code>python3</code> ersetzen. Außerdem müssen Sie die Rechte für das Verzeichnis ''/var/www'' so ändern, dass der Apache-Nutzer www-data dort schreiben kann.
 
Unter Debian Stable ist es die sauberste Lösung, [https://packages.debian.org/jessie-backports/unoconv unoconv] mit Hilfe der Jessie-Backports zu installieren. Als erstes aktivieren Sie die Backports Repo Zeile in ''/etc/apt/sources.list'':
<pre>
#### Jessie-Backports  ####
deb http://ftp.debian.org/debian jessie-backports main
</pre>
 
Anschließend aktualisieren und installieren Sie '''unoconv''' von den Jessie-Backports:
<pre>
apt-get update
apt-get install -t jessie-backports unoconv
</pre>
 
Das Paket wird mit allen benötigten Abhängigkeiten ausgeliefert.
 
===Ubuntu 14.04 LTS===
 
*Wechseln Sie in das Verzeichnis ''/opt'':
<pre>
cd /opt
</pre>
*Laden Sie '''unoconv''' herunter:
<pre>
sudo wget https://raw.githubusercontent.com/dagwieers/unoconv/master/unoconv
</pre>
*Öffnen Sie die Python-Datei '''unoconv''' in einem Texteditor (z.B. '''nano''')  und ersetzen Sie in der 1. Zeile <code>python</code> durch <code>python3</code>:
<pre>
sudo nano /opt/unoconv
</pre><br>
*Stellen Sie sicher, dass '''unoconv''' eine ausführbare Datei ist:
<pre>
sudo chmod ugo+x /opt/unoconv
</pre>
*Fügen Sie die LibreOffice PPA zu Ihrem System hinzu und installieren Sie die aktuellste Version:
<pre>
sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get install libreoffice
</pre>
*Ändern Sie die Rechte, so dass der Apache-Nutzer in seinem Homeverzeichnis schreiben kann:
<pre>
sudo chown www-data /var/www
</pre>
*Rufen Sie im Browser Ihre Moodle-Site auf. Gehen Sie auf die Seite ''Website-Administration > Server > Systempfade'' und geben Sie den Pfad für '''unoconv''' an: ''/opt/unoconv''
*'''Hinweis''': Wenn Sie den Standard-Pfad verwenden wollen, dann setzen Sie einen symbolischen Link auf ''/usr/bin'':
<pre>
sudo ln -s /opt/unoconv /usr/bin/
</pre>
*Gehen Sie auf die Seite ''Website-Administration > Plugins > Dokumentkonverter > Unoconv'' und klicken Sie auf den Link ''unoconv-Pfad testen''.<br>
Sie sollten dann diesen Hinweis sehen: ''Der unoconv-Pfad scheint richtig konfiguriert zu sein.''
*Klicken Sie auf den Link ''Kovertierte PDF-Testdatei herunterladen''. Wenn das nicht funktioniert, prüfen Sie, ob der Apache-Nutzer '''www-data''' Schreibrechte für sein Home-Verzeichnis ''/var/www'' hat.
 
===CentOS / RedHat===
*Bevor Sie beginnen, überlegen Sie, ob Sie nicht die aktuelle [http://www.tecmint.com/install-libreoffice-on-rhel-centos-fedora-debian-ubuntu-linux-mint/ LibreOffice 5.2] Version direkt als RPM-Paket installieren, das nicht Teil Ihrer aktuellen Dsitribution ist. CentOS und RedHat 7.2 enthalten seit November 2016 OpenOffice 4.3. Wenn Sie diese Version nicht  verwenden wollen und die aktuelle und unabhängige LibreOffice 5.2 Version, dann deinstallieren Sie alle bisherigen Office-Pakete:
<pre>
yum remove openoffice* libreoffice*
</pre>
*Anschließend folgen Sie der Installationsanleitung  [http://www.tecmint.com/install-libreoffice-on-rhel-centos-fedora-debian-ubuntu-linux-mint/ LibreOffice 5.2]. Es wird empfohlen, eine lokalisierte LibreOffice Version zu verwenden, damit die Dokumente später besser konvertiert werden können. Außerdem können Sie den Befehl "yum install openoffice* ..." weglassen.
<pre>
yum install openoffice* openoffice-pyuno
git clone https://github.com/dagwieers/unoconv.git
# kopieren
cp unoconv/unoconv /usr/bin
# oder symbolisch verlinken
ln -s unoconv/unoconv /usr/bin/unoconv
</pre>
:'''Hinweis''': Stellen Sie sicher, dass Sie auch das Paket '''openoffice-pyuno''' bzw. '''libreoffice-pyuno''' installiert haben.
*Stellen Sie sicher, dass '''unoconv''' in Ihrer Moodle-Site richtig konfigiuriert ist: ''http://IhreMoodleSite/admin/search.php?query=unoconv''.
 
Auf Produktivsystemen können Sie überlegen, ob Sie unoconv als Listener laufen lassen (siehe unten).
*Erstellen Sie eine Datei ''unoconv.service'':
<pre>
vi /etc/systemd/system/unoconv.service
</pre>
*Kopieren Sie folgende Zeilen in diese Datei:
<pre>
[Unit]
Description=Unoconv listener for document conversions
Documentation=https://github.com/dagwieers/unoconv
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
Environment="UNO_PATH=/usr/lib64/libreoffice/program"
ExecStart=/usr/bin/unoconv --listener
[Install]
WantedBy=multi-user.target
</pre>
*Aktivieren und starten Sie den Service:
<pre>
systemctl enable unoconv.service
systemctl start unoconv.service
</pre>
 
== Installation unter OS X ==
*Laden Sie LibreOffice für Mac herunter und installieren Sie es. Leider sind neuere Versionen von LibreOffice momentan nicht kompatibel mit '''unoconv''' für Mac, so dass Sie LibreOffice 4.2 installieren müssen (Direkter Download-Link: https://downloadarchive.documentfoundation.org/libreoffice/old/4.2.5.2/mac/x86_64/LibreOffice_4.2.5.2_MacOS_x86-64.dmg).
*Installieren Sie die aktuellste Version des Python-Skripts '''unoconv''', z.B. mit '''brew''' (siehe http://brew.sh/):
<pre>
brew install unoconv
</pre>
*Falls Sie es noch nicht getan haben, installieren Sie '''ghostscript''', z.B. mit '''brew''':
<pre>
brew install ghostscript
</pre>
*Tragen Sie in Ihrer Moodle-Site die Pfade zu ghostscript und unoconv ein (''Website-Administration > Server > Systempfade'' bzw. ''Website-Administration > Plugins > Dokumentkonverter > Unoconv''). Wenn Sie '''brew''' verwenden haben, dann wurden beide Programme im Verzeichnis ''/usr/local/bin'' installiert.
*LibreOffice benötigt Schreibzugriff auf das Homeverzeichnis des aktuellen Nutzers, um temporäre Testdateien anzulegen. Wenn '''unoconv''' unter dem Webserver-Nutzer läuft, ist das normalerweise '''nicht''' der Fall. Eine Lösungsmöglichkeit besteht darin, dem Webserver-Nutzer diese Schreibrechte für das Verzeichnis ''Library/WebServer'' zu geben. Alternativ können Sie LibreOffice mitteilen, dass das Homeverzeichnis des Webserver-Nutzers ein anderes schreibbares Verzeichnis ist(z.B. ''/tmp''). Tragen Sie dazu im Python-Skript '''unoconv''' in die Zeile 36, direkt nach der Zeile <code>exitcode = 0</code> folgenden Code ein:
<pre>
# Homeverzeichnis auf schreibbares Verzeichnis setzen.
os.environ['HOME'] = '/tmp/'                                                                                                       
</pre>
 
== Installation unter Windows ==
*Laden Sie LibreOffice für Windows herunter und installieren Sie es.
*Laden Sie die aktuellste Version von '''unoconv''' von https://github.com/dagwieers/unoconv/releases herunter (.zip Datei).
*Entpacken Sie die .zip Datei. Das Archiv enthält die Datei ''unoconv-0.7\unoconv'' (ohne Dateiendung). Das ist das '''unoconv''' Skript (die anderen Dateien des Archivs werden nicht benötigt).
*Benennen Sie das Skript um in ''C:\unoconv\unoconv.py''.
*Erstellen Sie eine Batch-Datei ''C:\unoconv\unoconv.bat'' mit diesem Inhalt:
<pre>
@"C:\Program Files\LibreOffice 5\program\python.exe" c:\unoconv\unoconv.py %*
</pre>
*In Moodle gehen Sie auf die Seite ''Website-Administration > Server > Systempfade'' und setzen Sie den Pfad zu '''ghostscript''' (C:\gs\bin\gswin32.exe)
*In Moodle gehen Sie auf die Seite ''Website-Administration > Plugins > Dokumentkonverter > Unoconv'' und setzen Sie den Pfad zu '''unoconv''' (C:\unoconv\unoconv.bat).
*Testen Sie, ob ghostscript und unoconv korrekt funktionieren, indem Sie auf der Seite ''Website-Administration > Plugins > Dokumentkonverter > Unoconv''  auf den Link ''unoconv-Pfad testen' klicken.
 
== unoconv Listener einrichten==
Bei der Konvertierung von Dokumenten nutzt '''unoconv''' einen Client-Server-Prozess. Wenn es keinen laufenden Server-Prozess gibt, dann wird standardmäßig bei jedem Aufruf von '''unoconv''' ein Server-Prozess gestartet, der die Anfrage bearbeitet und der nach Bearbeitung der Anfrage wieder beendert wird. Der Nachteil dieser Verfahrensweise ist folgender: Wenn zwei Anfragen gleichzeitig erfolgen, kann es passieren, dass die 1. Anfrage den Server-Prozess beendet, während die 2. Anfrage noch läuft, und dann scheitert die 2. Anfrage der Dokumentkonvertierung. Eine zuverlässigere Funktion von '''unoconv''' ist gewährleistet, wenn der Server-Prozess beim Booten gestartet wird und ein Skript diesen Prozess überwacht und gegebenenfalls neu startet, wenn der Prozess aus irgendeinem Grund abgestürzt ist.
 
Um einen unoconv-Listener beim Booten zu starten, benötigen Sie ein entsprechendes Skript. Dieses Skript hängt vom Betriebssystem und bzw. der Linux-Distributionen ab. Im folgenden finden Sie einige Beispielskripte für verschiedene Systeme:
A more robust way to configure unoconv is to start a server process at boot time, and/or run a script to monitor it and restart it if it crashes.
*[[mod/assign/feedback/editpdf/testunoconv/upstart |Upstart Skript für Ubuntu Systeme]]
*[[mod/assign/feedback/editpdf/testunoconv/launchd | Launchd Skript für OS X]]
*[[mod/assign/feedback/editpdf/testunoconv/initd | Init skript für Debian]]
*[[mod/assign/feedback/editpdf/testunoconv/initdcentos6 | Init Skript für CentOS/RedHat 6.x]]
*[[mod/assign/feedback/editpdf/testunoconv/systemd | SystemD Service Skript für CentOS/RedHat 7.x]]
 
==Auslagerung der Konvertierung auf einen anderen Server ==
Die Konvertierung von Dokumenten kann zu einer höheren Last für den Webserver führen und die Geschwindigkeit Ihrer Moodle-Site beeinträchtigen. Bei großen Moodle-Installationen können Sie '''unoconv''' auch auf einen anderen Server auslagern.
 
Wie geht das?
*Installieren Sie '''unoconv''' auf einem beliebigen Webserver (Remote-Server) wie oben beschrieben.
*Stellen Sie sicher, dass '''unoconv''' beim Booten des Remote-Servers gestartet wird.
*Öffnen Sie den Firewall Port 2002 zwischen dem Moodle-Server und dem Remote-Server.
*Teilen Sie das [[Moodle-Datenverzeichnis]] zwischen dem Moodle-Server und dem Remote-Server. Das Verzeichnis muss auf beiden Servern unter demselben Pfad gemountet werden.
*Installieren Sie auf dem Moodle-Server einen Wrapper für '''unoconv''', der die Anfragen an den Remote-Server weiterleitet.
:'''Beispiel''':
<pre>
#!/bin/bash
# Wrapper Skript für unoconv zur Weiterleitung von Anfragen.
# Installiert in /usr/bin/unoconv-remote mit 755 Rechten
/usr/bin/unoconv --server=<ip des Remote-Servers> "$@"
</pre>
*Konfigurieren Sie in Ihrer Moodle-Site den Pfad zu '''unoconv''' so, dass er auf das Wrapper-Skript zeigt.
 
==Weitere Informationen==
Weitere Informationen zur Installation und Fehlerbehebung finden Sie auf der [https://github.com/dagwieers/unoconv unoconc Website].
 
==Siehe auch==
 
* [https://moodle.org/mod/forum/discuss.php?d=335310 Ist unoconv ein Sicherheitsrisiko?] - Diskussionsbeitrag auf moodle.org
 
[[Category:Website-Administration]]
[[Category:Aufgabe]]


[[en:Universal Office Converter (unoconv)]]
[[en:Universal Office Converter (unoconv)]]

Version vom 14. Juni 2017, 10:09 Uhr


Was ist unoconv?

Das Kommandozeilenprogramm unoconv wird verwendet, um Office-Dokumente in verschiedene Dateiformate zu konvertieren. Das Programm verwendet zur Konvertierung LibreOffice. Die Konvertierung wird bei Aufgabenabgaben genutzt, um hochgeladene Dateien in PDFs zu konvertieren, in denen Bewerter/innen Annotationen hinterlegen können. Sollte auf dem Moodle-Server kein unoconv installiert sein, dann können Bewerter/innen nur dann Annotationen in Aufgabenabgaben hinterlegen, wenn die hochgeladenen Dateien bereits PDFs sind.

Die Installationsschritte hängen vom Betriebssystem des Moodle-Servers ab.

Installation unter Linux

Sie benötigen unoconv mindestens in der Version 0.7. Abhängig von Ihrer Linus-Distribution ist das Programm über den Paketmanager verfügbar oder kann direkt installiert werden:

Ubuntu 16.04 LTS

apt-get install unoconv

Wenn Ihr Paketmanager eine ältere Version enthält, müssen Sie nach der erforderlichen neuen Version suchen und diese manuell installieren (Debian Testing). Unoconv selbst ist ein Python-Skript, d.h. es hat verschiedene Abhängigkeiten.

Mögliche Probleme:

  • Auf manchen Systemen ist das Homeverzeichnis des Apache-Nutzers als ein Verzeichnis definiert, das gar nicht existiert. Das kann dazu führen, dass unoconv nicht funktioniert. Dann gibt es zwei Lösungsmöglichkeiten: Entweder legen Sie ein schreibbares Homeverzeichnis für den Apache-Nutzer an (z.B. /home/www-data) oder Sie lassen einen unoconv Listener (siehe unten) unter einem anderen Nutzer als dem Apache-Nutzer laufen, und dieser andere Nutzer muss ein schreibbares Homeverzeichnis haben.
  • Wenn Sie noch 14.04LTS laufen haben, wird unoconv nicht wie erwartet arbeiten. In diesem Fall können Sie folgendermaßen vorgehen: Installieren Sie unoconv in der Version 0.6 wie oben beschrieben über den Paketmanager. Ziehen Sie dann unoconv in der Version 0.7 vom Github (https://github.com/dagwieers/unoconv). Aktualisieren Sie auf die aktuellste LibreOffice-Version mit Hilfe von PPA (https://launchpad.net/~libreoffice/+archive/ubuntu/ppa). Verweisen Sie Moodle auf die Github-Version von unoconv. Sie müssen dazu die Python-Datei von unoconv modifizieren, indem Sie in der 1. Zeile python durch python3 ersetzen. Außerdem müssen Sie die Rechte für das Verzeichnis /var/www so ändern, dass der Apache-Nutzer www-data dort schreiben kann.

Unter Debian Stable ist es die sauberste Lösung, unoconv mit Hilfe der Jessie-Backports zu installieren. Als erstes aktivieren Sie die Backports Repo Zeile in /etc/apt/sources.list:

#### Jessie-Backports  ####
deb http://ftp.debian.org/debian jessie-backports main

Anschließend aktualisieren und installieren Sie unoconv von den Jessie-Backports:

apt-get update
apt-get install -t jessie-backports unoconv

Das Paket wird mit allen benötigten Abhängigkeiten ausgeliefert.

Ubuntu 14.04 LTS

  • Wechseln Sie in das Verzeichnis /opt:
cd /opt
  • Laden Sie unoconv herunter:
sudo wget https://raw.githubusercontent.com/dagwieers/unoconv/master/unoconv
  • Öffnen Sie die Python-Datei unoconv in einem Texteditor (z.B. nano) und ersetzen Sie in der 1. Zeile python durch python3:
sudo nano /opt/unoconv


  • Stellen Sie sicher, dass unoconv eine ausführbare Datei ist:
sudo chmod ugo+x /opt/unoconv
  • Fügen Sie die LibreOffice PPA zu Ihrem System hinzu und installieren Sie die aktuellste Version:
sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get install libreoffice
  • Ändern Sie die Rechte, so dass der Apache-Nutzer in seinem Homeverzeichnis schreiben kann:
sudo chown www-data /var/www
  • Rufen Sie im Browser Ihre Moodle-Site auf. Gehen Sie auf die Seite Website-Administration > Server > Systempfade und geben Sie den Pfad für unoconv an: /opt/unoconv
  • Hinweis: Wenn Sie den Standard-Pfad verwenden wollen, dann setzen Sie einen symbolischen Link auf /usr/bin:
sudo ln -s /opt/unoconv /usr/bin/
  • Gehen Sie auf die Seite Website-Administration > Plugins > Dokumentkonverter > Unoconv und klicken Sie auf den Link unoconv-Pfad testen.

Sie sollten dann diesen Hinweis sehen: Der unoconv-Pfad scheint richtig konfiguriert zu sein.

  • Klicken Sie auf den Link Kovertierte PDF-Testdatei herunterladen. Wenn das nicht funktioniert, prüfen Sie, ob der Apache-Nutzer www-data Schreibrechte für sein Home-Verzeichnis /var/www hat.

CentOS / RedHat

  • Bevor Sie beginnen, überlegen Sie, ob Sie nicht die aktuelle LibreOffice 5.2 Version direkt als RPM-Paket installieren, das nicht Teil Ihrer aktuellen Dsitribution ist. CentOS und RedHat 7.2 enthalten seit November 2016 OpenOffice 4.3. Wenn Sie diese Version nicht verwenden wollen und die aktuelle und unabhängige LibreOffice 5.2 Version, dann deinstallieren Sie alle bisherigen Office-Pakete:
yum remove openoffice* libreoffice*
  • Anschließend folgen Sie der Installationsanleitung LibreOffice 5.2. Es wird empfohlen, eine lokalisierte LibreOffice Version zu verwenden, damit die Dokumente später besser konvertiert werden können. Außerdem können Sie den Befehl "yum install openoffice* ..." weglassen.
yum install openoffice* openoffice-pyuno
git clone https://github.com/dagwieers/unoconv.git
# kopieren
cp unoconv/unoconv /usr/bin
# oder symbolisch verlinken
ln -s unoconv/unoconv /usr/bin/unoconv
Hinweis: Stellen Sie sicher, dass Sie auch das Paket openoffice-pyuno bzw. libreoffice-pyuno installiert haben.

Auf Produktivsystemen können Sie überlegen, ob Sie unoconv als Listener laufen lassen (siehe unten).

  • Erstellen Sie eine Datei unoconv.service:
vi /etc/systemd/system/unoconv.service
  • Kopieren Sie folgende Zeilen in diese Datei:
[Unit]
Description=Unoconv listener for document conversions
Documentation=https://github.com/dagwieers/unoconv
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
Environment="UNO_PATH=/usr/lib64/libreoffice/program"
ExecStart=/usr/bin/unoconv --listener
[Install]
WantedBy=multi-user.target
  • Aktivieren und starten Sie den Service:
systemctl enable unoconv.service
systemctl start unoconv.service

Installation unter OS X

brew install unoconv
  • Falls Sie es noch nicht getan haben, installieren Sie ghostscript, z.B. mit brew:
brew install ghostscript
  • Tragen Sie in Ihrer Moodle-Site die Pfade zu ghostscript und unoconv ein (Website-Administration > Server > Systempfade bzw. Website-Administration > Plugins > Dokumentkonverter > Unoconv). Wenn Sie brew verwenden haben, dann wurden beide Programme im Verzeichnis /usr/local/bin installiert.
  • LibreOffice benötigt Schreibzugriff auf das Homeverzeichnis des aktuellen Nutzers, um temporäre Testdateien anzulegen. Wenn unoconv unter dem Webserver-Nutzer läuft, ist das normalerweise nicht der Fall. Eine Lösungsmöglichkeit besteht darin, dem Webserver-Nutzer diese Schreibrechte für das Verzeichnis Library/WebServer zu geben. Alternativ können Sie LibreOffice mitteilen, dass das Homeverzeichnis des Webserver-Nutzers ein anderes schreibbares Verzeichnis ist(z.B. /tmp). Tragen Sie dazu im Python-Skript unoconv in die Zeile 36, direkt nach der Zeile exitcode = 0 folgenden Code ein:
# Homeverzeichnis auf schreibbares Verzeichnis setzen. 
os.environ['HOME'] = '/tmp/'                                                                                                        

Installation unter Windows

  • Laden Sie LibreOffice für Windows herunter und installieren Sie es.
  • Laden Sie die aktuellste Version von unoconv von https://github.com/dagwieers/unoconv/releases herunter (.zip Datei).
  • Entpacken Sie die .zip Datei. Das Archiv enthält die Datei unoconv-0.7\unoconv (ohne Dateiendung). Das ist das unoconv Skript (die anderen Dateien des Archivs werden nicht benötigt).
  • Benennen Sie das Skript um in C:\unoconv\unoconv.py.
  • Erstellen Sie eine Batch-Datei C:\unoconv\unoconv.bat mit diesem Inhalt:
@"C:\Program Files\LibreOffice 5\program\python.exe" c:\unoconv\unoconv.py %*
  • In Moodle gehen Sie auf die Seite Website-Administration > Server > Systempfade und setzen Sie den Pfad zu ghostscript (C:\gs\bin\gswin32.exe)
  • In Moodle gehen Sie auf die Seite Website-Administration > Plugins > Dokumentkonverter > Unoconv und setzen Sie den Pfad zu unoconv (C:\unoconv\unoconv.bat).
  • Testen Sie, ob ghostscript und unoconv korrekt funktionieren, indem Sie auf der Seite Website-Administration > Plugins > Dokumentkonverter > Unoconv auf den Link unoconv-Pfad testen' klicken.

unoconv Listener einrichten

Bei der Konvertierung von Dokumenten nutzt unoconv einen Client-Server-Prozess. Wenn es keinen laufenden Server-Prozess gibt, dann wird standardmäßig bei jedem Aufruf von unoconv ein Server-Prozess gestartet, der die Anfrage bearbeitet und der nach Bearbeitung der Anfrage wieder beendert wird. Der Nachteil dieser Verfahrensweise ist folgender: Wenn zwei Anfragen gleichzeitig erfolgen, kann es passieren, dass die 1. Anfrage den Server-Prozess beendet, während die 2. Anfrage noch läuft, und dann scheitert die 2. Anfrage der Dokumentkonvertierung. Eine zuverlässigere Funktion von unoconv ist gewährleistet, wenn der Server-Prozess beim Booten gestartet wird und ein Skript diesen Prozess überwacht und gegebenenfalls neu startet, wenn der Prozess aus irgendeinem Grund abgestürzt ist.

Um einen unoconv-Listener beim Booten zu starten, benötigen Sie ein entsprechendes Skript. Dieses Skript hängt vom Betriebssystem und bzw. der Linux-Distributionen ab. Im folgenden finden Sie einige Beispielskripte für verschiedene Systeme: A more robust way to configure unoconv is to start a server process at boot time, and/or run a script to monitor it and restart it if it crashes.

Auslagerung der Konvertierung auf einen anderen Server

Die Konvertierung von Dokumenten kann zu einer höheren Last für den Webserver führen und die Geschwindigkeit Ihrer Moodle-Site beeinträchtigen. Bei großen Moodle-Installationen können Sie unoconv auch auf einen anderen Server auslagern.

Wie geht das?

  • Installieren Sie unoconv auf einem beliebigen Webserver (Remote-Server) wie oben beschrieben.
  • Stellen Sie sicher, dass unoconv beim Booten des Remote-Servers gestartet wird.
  • Öffnen Sie den Firewall Port 2002 zwischen dem Moodle-Server und dem Remote-Server.
  • Teilen Sie das Moodle-Datenverzeichnis zwischen dem Moodle-Server und dem Remote-Server. Das Verzeichnis muss auf beiden Servern unter demselben Pfad gemountet werden.
  • Installieren Sie auf dem Moodle-Server einen Wrapper für unoconv, der die Anfragen an den Remote-Server weiterleitet.
Beispiel:
#!/bin/bash
# Wrapper Skript für unoconv zur Weiterleitung von Anfragen.
# Installiert in /usr/bin/unoconv-remote mit 755 Rechten
/usr/bin/unoconv --server=<ip des Remote-Servers> "$@"
  • Konfigurieren Sie in Ihrer Moodle-Site den Pfad zu unoconv so, dass er auf das Wrapper-Skript zeigt.

Weitere Informationen

Weitere Informationen zur Installation und Fehlerbehebung finden Sie auf der unoconc Website.

Siehe auch