« Universal Office Converter » : différence entre les versions

De MoodleDocs
Aller à :navigation, rechercher
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 167 : Ligne 167 :




== Installing unoconv on Windows ==
== Installer unoconv sous Windows ==
Download and install LibreOffice for Windows. Open Office will work just as well, but the documentation for unonconv is set to Libre Office.


Download the latest version of the unoconv script from https://github.com/dagwieers/unoconv/releases (download the zip version).  
Téléchargez et installez LibreOffice pour Windows. Open Office fonctionnera aussi bien, mais la documentation pour unonconv est fixée à Libre Office.  


From the downloaded zip file - extract the one file "unoconv-0.7\unoconv" (no file extension). This is the unoconv script - none of the other files in the package are required.  
Téléchargez la dernière version du script unoconv sur https://github.com/dagwieers/unoconv/releases (télécharger la version zip).  


Rename the downloaded script to '''unoconv.py''' and copy it to a folder in either C:\Program Files or C:\Program Files (x 86)  
Du fichier zip téléchargé, extraire le fichier "unoconv-0.7\unoconv" (sans extension de fichier). C'est le script unoconv, aucun des autres fichiers du paquetage n'est requis.


Create a batch file in the same folder as unoconv.py name it something like '''unoconv.bat''', it must be a batch file, with these contents:
Renommez le script téléchargé en ''unoconv.py''' et copiez-le dans un dossier dans C:\Program Files ou C:\Program Files (x 86)
 
Créez un fichier batch dans le même dossier que unoconv.py nommez-le quelque chose comme ''unoconv.bat''', il doit être un fichier batch, avec ce contenu :


<code>@"C:\Program Files\LibreOffice (or Open Office #v)\program\python.exe" c:\unoconv\unoconv.py %*  </code>
<code>@"C:\Program Files\LibreOffice (or Open Office #v)\program\python.exe" c:\unoconv\unoconv.py %*  </code>


Next, you have to '''Set paths in Moodle.'''
Ensuite, vous devez "'Définir les chemins dans Moodle"'.  


Login as admin and go to ''Site administration > Server > System paths''
Connectez-vous en tant qu'administrateur et allez dans ''Administration du site > Serveur > Chemin du système''.


Set:   
Set:   
<code>Path to Ghostscript (pathtogs) C:\Program Files\gs\gsversion\bin\gswin64c.exe  </code>
<code> Chemin vers Ghostscript (pathtogs) C:\Program Files\gs\gsversion\bin\gswin64c.exe  </code>
Do not use gswin32.exe or gswin64.exe, these are not command line programs - use gswin32c.exe or gswin64c.exe.  
N'utilisez pas gswin32.exe ou gswin64.exe, ce ne sont pas des programmes en ligne de commande, utilisez gswin32c.exe ou gswin64c.exe.


Set:   
Set:   
<code>Path to Python (pathtopython) to C:\Program Files (x86)\OpenOffice v#(or Libra Office v#)\program\python.exe  </code>
<code>Chemin vers Python (pathtopython) à C:\Program Files (x86)\OpenOffice v#(ou Libra Office v#)\program\python.exe  </code>
Identify in the path whichever program you use and include the full exe name for both Ghostscript and Python.
Identifiez dans le chemin le programme que vous utilisez et incluez le nom complet de l'exe pour Ghostscript et Python.
   
   
Save the pathto statements and a green tick should appear if Moodle is communicating with the required files.  
Sauvegardez les instructions chemin vers et une coche verte devrait apparaître si Moodle communique avec les fichiers requis.
 
Allez dans ''Administration du site > Plugins > Convertisseurs de documents'' et activez '''Unoconv''' puis sélectionnez Paramètres
 
Saisissez l'instruction de chemin d'accès à
<code> Chemin d'accès au convertisseur de document unoconv : C:\Program Files (x86)\unoconv\unoconv.bat</code>
Inclure le nom complet du fichier .bat.  


Go to Site administration > Plugins > Document converters and enable '''Unoconv''' then select Settings
Test ghostscript et unoconv fonctionnent correctement dans les pages de test de l'administrateur "Administration du site > Plugins > Modules d'activité > Devoir > Plugins de feedback > Annoter PDF".


Enter the path statement to
== Exécutez un auditeur unoconv ==
<code>Path to unoconv document converter : C:\Program Files (x86)\unoconv\unoconv.bat</code>
Include the full name of the .bat file.


Test ghostscript and unoconv are working correctly in the admin test pages "Site administration > Plugins > Activity modules > Assignment > Feedback plugins > Annotate PDF".
Unoconv utilise un processus client/serveur lors de la conversion de documents. Par défaut, lorsqu'il n'y a pas de processus serveur en cours d'exécution, chaque fois que unoconv s'exécute, il démarre un processus serveur, envoie sa requête et arrête le processus serveur lorsque la requête est terminée. L'inconvénient de ce mode est que si 2 requêtes sont soumises simultanément, ce qui peut entraîner l'arrêt du processus du serveur lors de la première requête alors que la seconde est toujours en cours, et la seconde requête de conversion échoue. Une façon plus robuste de configurer unoconv est de démarrer un processus serveur au démarrage, et/ou d'exécuter un script pour le surveiller et le redémarrer s'il plante.


== Run a unoconv listener ==
Pour démarrer un auditeur inconvenant au démarrage, vous avez besoin d'un script de démarrage. Différents systèmes d'exploitation et distributions Linux utilisent différents scripts de démarrage, mais voici quelques exemples de scripts de démarrage pour différents systèmes.
Unoconv utilises a client/server process when converting documents. By default, when there is no running server process - each time unoconv runs it will start a server process, send its request and shut down the server process when the request is complete. The drawback of this mode is that if 2 requests are submitted simultaneously - this can cause the first request to shutdown the server process when the second request is still in progress - and the second conversion request fails. 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.


To start a unoconv listener at boot time - you need a start up script. Different operating systems and Linux distributions use different startup scripts - but here are some examples of startup scripts for different systems.
[[mod/assign/feedback/editpdf/testunoconv/upstart | Script Upstart pour les systèmes basés sur Ubuntu]]


[[mod/assign/feedback/editpdf/testunoconv/upstart | Upstart script for Ubuntu based systems]]
[[mod/assign/feedback/editpdf/testunoconv/launchd | Script de lancement pour OS X]]


[[mod/assign/feedback/editpdf/testunoconv/launchd | Launchd script for OS X]]
[[mod/assign/feedback/editpdf/testunoconv/initd | Script d'initialisation pour Debian]]


[[mod/assign/feedback/editpdf/testunoconv/initd | Init script for Debian]]
[[mod/assign/feedback/editpdf/testunoconv/initdcentos6 | Script d'initialisation pour CentOS/RedHat 6.x]]


[[mod/assign/feedback/editpdf/testunoconv/initdcentos6 | Init script for CentOS/RedHat 6.x]]
[[mod/assign/feedback/editpdf/testunoconv/systemd | Script de service SystemD pour CentOS/RedHat 7.x]]


[[mod/assign/feedback/editpdf/testunoconv/systemd | SystemD service script for CentOS/RedHat 7.x]]
== Déchargement du traitement sur un autre serveur ==


== Offload processing to a different server ==
Le traitement des documents de bureau peut augmenter la charge de travail de votre serveur Web, ce qui peut avoir un impact sur la réactivité de votre site. Si vous installez unoconv sur un grand site, vous pouvez envisager d'exécuter unoconv sur un serveur qui ne répond pas également aux requêtes Web.
Processing office documents can put increased load on your webserver, which may impact on the responsiveness of your site. If you are installing unoconv on a large site you may want to consider running unoconv on a server that is not also serving web requests.


How to do this:
Comment faire cela :


Install unoconv on each webservers and the remote server following the installation instructions above.  
Installez unoconv sur chaque serveur web et sur le serveur distant en suivant les instructions d'installation ci-dessus.


Make sure unoconv is started at boot time on the remote server with the "--listener" argument and is monitored and restarted if it exits (see Debian init script for an example of how to do this). By default, unoconv will only listen on localhost (127.0.0.1): if you want to connect to the listener process from another server, you need to start the unoconv listener process with the "--server" argument too!
Assurez-vous que unoconv est lancé au démarrage sur le serveur distant avec l'argument " --listener" et qu'il est surveillé et redémarré s'il sort (voir le script init de Debian pour un exemple). Par défaut, unoconv n'écoutera que sur localhost (127.0.0.1) : si vous voulez vous connecter au processus d'écoute depuis un autre serveur, vous devez aussi démarrer le processus d'écoute avec l'argument "--server" !


An example command for starting a listener on a remote server (0.0.0.0 listens on all interfaces):
Un exemple de commande pour démarrer un auditeur sur un serveur distant (0.0.0.0 écoute sur toutes les interfaces) :
<pre>
<pre>
unoconv --listener --server 0.0.0.0 --port 2002
unoconv --listener --server 0.0.0.0 --port 2002
</pre>
</pre>


Open the firewall port 2002 between the moodle webservers and the machine running unoconv.
Ouvrez le port pare-feu 2002 entre les serveurs web moodle et la machine qui tourne sansoconv.


Share the moodle data root between the webservers and the machine running unoconv. This folder must be mounted at the same path on all servers.  
Partagez la racine des données de moodle entre les serveurs web et la machine qui tourne sur unoconv. Ce dossier doit être monté sur le même chemin sur tous les serveurs.  


Install a wrapper for unoconv on the webservers that forwards the requests to the remote server. Example:
Installez un wrapper pour unoconv sur les serveurs web qui transmet les requêtes au serveur distant. Exemple :
<pre>
<pre>
#!/bin/bash
#!/bin/bash
# Wrapper script for unoconv to forward processing.
# Script d'emballage pour unoconv au traitement de transfert.
# Install to /usr/bin/unoconv-remote with 755 permissions
# Installer dans /usr/bin/unoconv-remote avec 755 permissions.
/usr/bin/unoconv --server=<ip of remote server> "$@"
/usr/bin/unoconv --server=<ip of remote server> "$@"
</pre>
</pre>


Configure the path to unoconv in the Moodle admin settings to point to this wrapper script.
Configurez le chemin vers unoconv dans les paramètres d'administration de Moodle pour pointer vers ce script wrapper.


==Additional resources==
==Ressources supplémentaires ==


[https://github.com/dagwieers/unoconv GitHub dagwieers/unoconv] has additional information on installation of unoconv and troubleshooting tips.
[https://github.com/dagwieers/unoconv GitHub dagwieers/unoconv] contient des informations supplémentaires sur l'installation de l'anticonvolution et des conseils de dépannage.


==Troubleshooting==
==Résolution des problèmes==
* [http://webnetkit.com/soffice-bin-using-100-cpu-moodle/ soffice.bin using 100% of CPU MOODLE]
* [http://webnetkit.com/soffice-bin-using-100-cpu-moodle/ soffice.bin using 100% du CPU MOODLE]


==See also==
==Voir aussi==


* [https://moodle.org/mod/forum/discuss.php?d=335310 Is the unoconv installation a security risk?] forum discussion
* [https://moodle.org/mod/forum/discuss.php?d=335310 L'installation unoconv représente-t-elle un risque pour la sécurité ?] forum de discussion


[[Category:Site administration]]
[[Category:Administration du site]]
[[Category:Assignment]]
[[Category:Assignment]]



Version du 30 mai 2019 à 10:19

Modèle:Convertisseurs de documents

Qu'est ce qu'unoconv?

"Unoconv" est un programme en ligne de commande qui est utilisé pour convertir entre différents formats de fichiers de documents Office. Il utilise une instance de LibreOffice pour effectuer la conversion et est utilisé par le Devoir pour convertir les documents en pdf afin qu'ils puissent être annotés. Si unoconv n'est pas installé, le seul impact est que les devoirs ne permettront les annotations que lorsque les étudiants téléchargeront un document pdf.

Les étapes requises pour installer unoconv sont différentes selon le système d'exploitation sur lequel vous avez installé Moodle.

Installer unoconv sur Linux

La version requise de unoconv est d'au moins 0.7. Selon votre goût de linux, cela peut être disponible dans votre gestionnaire de paquetages et vous pouvez l'installer directement avec :

Ubuntu 16.04 LTS

apt-get installer unoconv

Si votre gestionnaire de paquetages contient une ancienne version du paquetage, vous devrez trouver une version plus récente et l'installer manuellement (Tests Debian). Unoconv lui-même n'est qu'un script python, donc il a peu de dépendances.

Problèmes potentiels :

  • Sur certains systèmes, le répertoire personnel de l'utilisateur apache est défini sur un dossier non existant. Cela peut entraîner l'échec de l'unoconv. Il y a 2 solutions à cela : l'une est de créer un répertoire personnel (accessible en écriture) pour l'utilisateur apache (comme /home/www-data). L'autre est d'exécuter un auditeur unoconv (décrit ci-dessous) comme un autre utilisateur que l'utilisateur apache (quelqu'un avec un répertoire personnel valide et écrit).
  • Si vous utilisez toujours 14.04LTS, unoconv ne fonctionnera pas tel quel. Ce n'est peut-être pas la méthode la plus efficace, mais elle a fonctionné en installant unoconv (version 0.6) depuis le gestionnaire de paquetages comme ci-dessus. Vous devrez ensuite récupérer unoconv 0.7 de Github (https://github.com/dagwieers/unoconv), puis passer à la dernière version de libreoffice en utilisant le PPA (https://launchpad.net/~libreoffice/+archive/ubuntu/ppa). Pointez moodle sur la version Github de unoconv, vous devez modifier le fichier Python unoconv en changeant "python" dans la première ligne à "python3". Vous devez également changer les permissions sur le répertoire /var/www pour que l'utilisateur www-data puisse lui écrire (www-data doit écrire dans son répertoire home ce qu'il ne peut pas faire par défaut).

Sur Debian Stable, la méthode la plus sûre pour installer unoconv est d'utiliser Jessie-backports. Tout d'abord, activez la ligne backports repo dans /etc/apt/sources.list :

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

Ensuite, mettez à jour et installez unoconv depuis jessie-backports :

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

Le forfait vous apportera toutes les dépendances nécessaires.

Ubuntu 14.04 LTS

1) Naviguez jusqu'au répertoire opt

cd /opt

2) Télécharger unoconv

sudo wget https://raw.githubusercontent.com/dagwieers/unoconv/master/unoconv

3) Modifier le fichier Python unoconv en changeant "python" dans la première ligne en "python3".

sudo nano /opt/unoconv


ex.

#!/usr/bin/env python3

4) Rendre unoconv exécutable

sudo chmod ugo+x /opt/unoconv

5) Ajoutez LibreOffice PPA à votre système et installez la dernière version.

sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get install libreoffice

6) Modifier les permissions pour qu'apache puisse écrire dans son répertoire personnel

sudo chown www-data /var/www

7) Depuis votre navigateur, naviguez jusqu'à Administration du site > Serveur > Chemin système et ajoutez le chemin vers unoconv
/opt/unoconv

  • Remarque : si vous souhaitez préserver le chemin par défaut, ajoutez un lien symbolique vers /usr/bin:
sudo ln -s /opt/unoconv /usr/bin/

8) Naviguer jusqu'à Administration du site > Plugins > Modules d'activité > Devoir > Plugin de Feedback > Annoter PDF > Tester le chemin unoconv.
Vous devriez voir :
"Le chemin unoconv semble être correctement configuré."

  • Téléchargez le fichier de test converti au format pdf. (si le PDF ne se charge pas, assurez-vous que www-data peut écrire dans son répertoire personnel : /var/www)

CentOS / RedHat

Juste avant de commencer, vous pouvez envisager d'installer la dernière version LibreOffice 5.2 directement à partir de paquetages RPM, qui ne font pas partie de la distribution que vous utilisez. A partir de nov-2016, CentOS et RedHat 7.2 sont livrés avec OpenOffice 4.3 donc si vous n'êtes pas intéressé à utiliser cette version et souhaitez installer la dernière version 5.2 indépendante LibreOffice 5.2, veuillez supprimer tout paquetage openoffice que vous pourriez avoir sur votre OS en publiant :

yum remove openoffice* libreoffice*

Il est recommandé de choisir votre version localisée de libreoffice pour de meilleures conversions de documents.

yum install libreoffice libreoffice-pyuno
git clone https://github.com/dagwieers/unoconv.git
# copier
cp unoconv/unoconv /usr/bin
# ou lier unoconv à /usr/bin
ln -s unoconv/unoconv /usr/bin/unoconv
Remarque : dépend de la version que vous installez, openoffice ou libreoffice, assurez-vous d'avoir installé le paquetage *-pyuno. (le paquetage headless est déjà compilé dans le noyau)

Assurez-vous qu'il est correctement configuré : http://your-moodle/admin/search.php?query=unoconv

Les serveurs de production devraient envisager d'exécuter unoconv en mode auditeur, voir Installation unoconv#Exécutez un auditeur unoconv ou suivre les instructions ci-dessous

vi /etc/systemd/system/unoconv.service

Puis copiez et collez la configuration suivante :

[Unité]
Description=Unoconv auditeur pour les conversions de documents
Documentation=https://github.com/dagwieers/unoconv
Après=réseau.target remote-fs.target nss-lookup.target.target

[Service]
Type=simple
Environnement="UNO_PATH=/usr/lib64/libreoffice/program"
ExecStart=/usr/bin/unoconv --listener

[Installation]
WantedBy=multi-user.target

Puis activez et démarrez le service ci-dessus

systemctl enable unoconv.service
systemctl start unoconv.service
Si votre selinux est activé, vous devez définir
#setsebool -P httpd_execmem on

Installer unoconv sur OS X

Téléchargez et installez LibreOffice pour Mac. Malheureusement, les nouvelles versions de LibreOffice ne sont pas compatibles avec unoconv pour mac et vous devrez installer LibreOffice 4.2 (lien de téléchargement direct https://downloadarchive.documentfoundation.org/libreoffice/old/4.2.5.2/mac/x86_64/LibreOffice_4.2.5.2_MacOS_x86-64.dmg).

Get the latest version of the unoconv python script. One way to do this is with http://brew.sh/ brew.

brew install unoconv

Si vous ne l'avez pas déjà fait, installez ghostscript. Une autre façon d'installer ghostscript : http://brew.sh/ brew

brew install ghostscript

Définissez les chemins vers unoconv et ghostscript dans Moodle (Administration du site > Serveur > Chemin du système). Si vous avez utilisé brew, ils seront tous les deux installés dans /usr/local/bin.

LibreOffice a besoin d'un accès en écriture au répertoire personnel des utilisateurs actuels pour créer des fichiers temporaires. Quand unoconv est exécuté en tant qu'utilisateur du serveur web (_www) il n'a normalement pas cette permission.

Il y a quelques façons de contourner ce problème, une étant de donner à l'utilisateur "_www" un accès en écriture à /Library/WebServer.

Une autre solution est de convaincre LibreOffice que ce répertoire utilisateur est ailleurs. Ceci peut être fait en insérant ce code dans le haut du script python unoconv. Code à insérer :

#  Définir la maison à un dossier inscriptible.
os.environ['HOME'] = '/tmp/'                                                                                                        

Il doit être inséré à la ligne 36 immédiatement après la ligne "exitcode = 0".


Installer unoconv sous Windows

Téléchargez et installez LibreOffice pour Windows. Open Office fonctionnera aussi bien, mais la documentation pour unonconv est fixée à Libre Office.

Téléchargez la dernière version du script unoconv sur https://github.com/dagwieers/unoconv/releases (télécharger la version zip).

Du fichier zip téléchargé, extraire le fichier "unoconv-0.7\unoconv" (sans extension de fichier). C'est le script unoconv, aucun des autres fichiers du paquetage n'est requis.

Renommez le script téléchargé en unoconv.py' et copiez-le dans un dossier dans C:\Program Files ou C:\Program Files (x 86)

Créez un fichier batch dans le même dossier que unoconv.py nommez-le quelque chose comme unoconv.bat', il doit être un fichier batch, avec ce contenu :

@"C:\Program Files\LibreOffice (or Open Office #v)\program\python.exe" c:\unoconv\unoconv.py %*

Ensuite, vous devez "'Définir les chemins dans Moodle"'.

Connectez-vous en tant qu'administrateur et allez dans Administration du site > Serveur > Chemin du système.

Set: Chemin vers Ghostscript (pathtogs) C:\Program Files\gs\gsversion\bin\gswin64c.exe

N'utilisez pas gswin32.exe ou gswin64.exe, ce ne sont pas des programmes en ligne de commande, utilisez gswin32c.exe ou gswin64c.exe.

Set: Chemin vers Python (pathtopython) à C:\Program Files (x86)\OpenOffice v#(ou Libra Office v#)\program\python.exe Identifiez dans le chemin le programme que vous utilisez et incluez le nom complet de l'exe pour Ghostscript et Python.

Sauvegardez les instructions chemin vers et une coche verte devrait apparaître si Moodle communique avec les fichiers requis.

Allez dans Administration du site > Plugins > Convertisseurs de documents et activez Unoconv puis sélectionnez Paramètres

Saisissez l'instruction de chemin d'accès à

Chemin d'accès au convertisseur de document unoconv : C:\Program Files (x86)\unoconv\unoconv.bat Inclure le nom complet du fichier .bat.

Test ghostscript et unoconv fonctionnent correctement dans les pages de test de l'administrateur "Administration du site > Plugins > Modules d'activité > Devoir > Plugins de feedback > Annoter PDF".

Exécutez un auditeur unoconv

Unoconv utilise un processus client/serveur lors de la conversion de documents. Par défaut, lorsqu'il n'y a pas de processus serveur en cours d'exécution, chaque fois que unoconv s'exécute, il démarre un processus serveur, envoie sa requête et arrête le processus serveur lorsque la requête est terminée. L'inconvénient de ce mode est que si 2 requêtes sont soumises simultanément, ce qui peut entraîner l'arrêt du processus du serveur lors de la première requête alors que la seconde est toujours en cours, et la seconde requête de conversion échoue. Une façon plus robuste de configurer unoconv est de démarrer un processus serveur au démarrage, et/ou d'exécuter un script pour le surveiller et le redémarrer s'il plante.

Pour démarrer un auditeur inconvenant au démarrage, vous avez besoin d'un script de démarrage. Différents systèmes d'exploitation et distributions Linux utilisent différents scripts de démarrage, mais voici quelques exemples de scripts de démarrage pour différents systèmes.

Script Upstart pour les systèmes basés sur Ubuntu

Script de lancement pour OS X

Script d'initialisation pour Debian

Script d'initialisation pour CentOS/RedHat 6.x

Script de service SystemD pour CentOS/RedHat 7.x

Déchargement du traitement sur un autre serveur

Le traitement des documents de bureau peut augmenter la charge de travail de votre serveur Web, ce qui peut avoir un impact sur la réactivité de votre site. Si vous installez unoconv sur un grand site, vous pouvez envisager d'exécuter unoconv sur un serveur qui ne répond pas également aux requêtes Web.

Comment faire cela :

Installez unoconv sur chaque serveur web et sur le serveur distant en suivant les instructions d'installation ci-dessus.

Assurez-vous que unoconv est lancé au démarrage sur le serveur distant avec l'argument " --listener" et qu'il est surveillé et redémarré s'il sort (voir le script init de Debian pour un exemple). Par défaut, unoconv n'écoutera que sur localhost (127.0.0.1) : si vous voulez vous connecter au processus d'écoute depuis un autre serveur, vous devez aussi démarrer le processus d'écoute avec l'argument "--server" !

Un exemple de commande pour démarrer un auditeur sur un serveur distant (0.0.0.0 écoute sur toutes les interfaces) :

unoconv --listener --server 0.0.0.0 --port 2002

Ouvrez le port pare-feu 2002 entre les serveurs web moodle et la machine qui tourne sansoconv.

Partagez la racine des données de moodle entre les serveurs web et la machine qui tourne sur unoconv. Ce dossier doit être monté sur le même chemin sur tous les serveurs.

Installez un wrapper pour unoconv sur les serveurs web qui transmet les requêtes au serveur distant. Exemple :

#!/bin/bash
# Script d'emballage pour unoconv au traitement de transfert.
# Installer dans /usr/bin/unoconv-remote avec 755 permissions.
/usr/bin/unoconv --server=<ip of remote server> "$@"

Configurez le chemin vers unoconv dans les paramètres d'administration de Moodle pour pointer vers ce script wrapper.

Ressources supplémentaires

GitHub dagwieers/unoconv contient des informations supplémentaires sur l'installation de l'anticonvolution et des conseils de dépannage.

Résolution des problèmes

Voir aussi