Skip to content

Installation de Synopx (doc détaillée)

sboschetto edited this page Oct 28, 2014 · 19 revisions

Installer SynopsX pour BaseX. Documentation externe

Serveurs BaseX

Vous pouvez installer baseX en local ou sur un serveur distant (NB : pensez à lancer le serveur http, voir ici pour la commande exact : http://docs.basex.org/wiki/Startup#BaseX_HTTP_Server)

Pour bénéficier d'une connexion sur un serveur distant, des serveurs de production peuvent être installés, à la demande, à la très grande infrastructure HumaNum.

Première connexion sur le serveur où est installé baseX (basex4labo au CBP) et création d'une base de données

Comme représenté sur le schéma ci-dessous, nous pouvons utiliser plusieurs outils pour aller sur cette machine : oXygen (webdav), commandes bash (curl, ssh), fileZilla (protocole sftp/ssh).

Les commandes bash comme ssh ou curl, nous permettent de travailler directement sur le serveur distant : ces commandes peuvent donc être couplées avec l'utilisation d'un logiciel type fileZilla avec le protocole sftp/ssh en parallèle (pour envoyer les fichiers sur son espace perso, avant de lancer les commandes).

NB : télécharger Putty ou un autre client SSH et Curl

NB : pour les commandes REST, curl pas très pratique, très redondant, car on doit redonner l'url distante à chaque commande

L'utilisation d'oXygen, permettra de se connecter en webdav directement au serveur web (cf documentation plus bas).

Intégrer ici le schéma de Séverine.

Les commandes curl :

  • Avoir en tête l'organisation des fichiers :

  • Ouvrir un terminal

  • Dans le terminal local on va se connecter directement au serveur distant + créer la base de données avec un fichier XML qu'on a en local (-i = include [le http header in the output] / -x = request (c.a.d. qu'on déclare qu'on va travailler avec des http request methods (ici plus spécifiquement le protocole REST qui définit des http request methods qu'on utilise dans des uri) / PUT est une commande REST, qui ici nous permet d'envoyer le fichier xml sur la base distante par une URI; il est compris par curl grâce à la commande -x / -T = upload file) :

  • Créer une nouvelle base avec des données en curl:

(remarques : pour vérifier les bases présentes sur son serveur utiliser l'url suivante dans un navigateur : http://serveur.domaine.fr:8984/rest. Pour vérifier les ressources présentes dans une base du serveur utiliser l'url suivante dans un navigateur : http://serveur.domaine.fr:8984/rest/nom_de_la_BDD)

$ curl -i -X PUT -T "/home/login/file.xml" " admin:[email protected]:8984/rest/nom-de-la-base"

ou pour ajouter un lot de fichiers :

$ curl -i -X PUT -T "/home/login/files.zip" " admin:[email protected]:8984/rest/nom-de-la-base"

  • Ajouter des données dans une base pré-existante:

$ curl -i -X POST -H "Content-Type:" -d "<command xmlns='http://basex.org/rest'><text>ADD /home/login/myProject.xml</text></command>" "login:[email protected]:8984/rest/myProject"

ou pour ajouter un lot de fichiers :

$ curl -i -X POST -H "Content-Type:" -d "<command xmlns='http://basex.org/rest'><text>ADD /home/login/myFiles.zip</text></command>" "login:[email protected]:8984/rest/myProject"

NB 1 : il faut donc penser à placer nos fichiers dans home/login (ex : home/cdupont) via SFTP avant de lancer cette commande.

NB 2 : les espaces étant signifiant dans les corpus XML, il faut spécifier au serveur basex l'option CHOP=FALSE lors de la création d'une base.

$ curl -i -X POST -H "Content-Type:" -d "<command xmlns='http://basex.org/rest'><text>CREATE DB dbname</text><option name='chop' value='false'/></command>" "login:[email protected]:8984/rest/myProject"

NB 3 : On peut de la même manière fixé les options (index full text, index attribute ...), voir la liste complète des options ici : http://docs.basex.org/wiki/Options

NB 4 : Pour vérifier les options sur un serveur, on peut utiliser la commande suivante : http://serveur.domaine.fr:8984?command=INFO%20DB

Les commandes ssh :

  • On ouvre un terminal et on se connecte à au serveur dédié grâce à son login : ssh login:[email protected]
  • ou : ssh [email protected]
  • En vous connectant ainsi à BaseX, vous arrivez par défaut dans le dossier home/login (ex : home/dupond) il faut remonter de 2 répertoires (pour ensuite trouver ce chemin : /usr/local/basex/bin).

Voici un copie d'écran de l'organisation des fichiers :

  • On regarde où on est tombé : pwd /home/login

  • On tape donc le chemin : cd /usr/local/basex/bin

  • Puis on liste le contenu pour vérifier que basexclient est bien dans les parages : ls

Voici la copie d'écran de ce qu'on doit obtenir :

  • Puis on ouvre basexclient : ./basexclient
  • Puis on crée sa BDD : CREATE DATABASE nomdelabase inputdelabase.xml

NB 1 : pour vérifier les bases présentes sur son serveur utiliser l'url suivante dans un navigateur : http://serveur.domaine.fr:8984/rest

NB 2 : pour vérifier les ressources présentes dans une base du serveur utiliser l'url suivante dans un navigateur : http://serveur.domaine.fr:8984/rest/nom_de_la_BDD

NB 3 : il faut donc penser à placer le fichier de base de données XML (monfichier.xml) dans home/login (ex : home/cdupont) via FTP avant de lancer cette commande.

NB 4 : tous les fichiers restxq de synopsx se trouve désormais dans webapp (et plus dans webapp et repo)???

Installer SynopsX

SynopsX est sur Github : https://github.com/ahn-ens-lyon/synopsx. Vous pourrez donc récupérer l'entrepôt des dossiers/fichiers de SynopsX (NB : si ce n'est pas déjà le cas le module synopsX est à placer dans usr/local/ à côté de basex) :

Soit avec Git sur l'application distante :

(ça, c'est déjà installé sur les serveurs pour basex du CBP) On peut donc vérifier et effectuer les mises à jour directement via commandes ssh dans un terminal (sudo [pour dire qu'on est admin root] et git pull / git status). Par exemple, quand on est dans /usr/local/synopsx :

$ sudo git status

$ sudo git pull

soit en utilisant Egit (Github for Eclipse - documentation?)

soit en utilisant l'application Github

Github pour les PC:

Github pour les Mac:

Si on choisit cette 3ème option : on peut récupérer l'entrepôt en cliquant (directement dans l'espace github de synopsX) sur "Clone in Desktop".

  • Une boite de dialogue s'ouvre la première fois :
  • Sélectionner Gihub et cliquer sur OK.
  • Votre mot de passe pour une connexion ssh va vous être demandé plusieurs fois.
  • On va vous demander de choisir en local l'emplacement où ranger l'entrepôt de dossiers/fichiers de SynopsX, par exemple :
  • On peut vérfier le nombre de dépôts auxquels on a accès via "Repositories" :
  • Il ne vous reste plus qu'à aller chercher cet ensemble de dossiers et de fichier et de les envoyer sur le serveur via FTP, dans usr/local/synopsx.

Créer un alias entre usr/local/basex/webapp et usr/local/basex/synopsx/webapp

ln -s /usr/local/synopsx/webapp /usr/local/basex/webapp

Question : où met-on les fichiers restxq? dans /usr/local/basex/webapp? ou dans /usr/local/synopsx/webapp? question des bonnes pratiques sur les modif de fichiers sources de synopsx

Visualiser sur le navigateur

Dans votre navigateur internet, aller faire un tour sur votre installation :

http://nomserveur.domaine.fr:8984/

  • Voici ce que vous devriez obtenir :

Adapter SynopsX pour travailler avec sa base de données

Pour modifier ses fichiers de base de données (les fichiers XML) tout en restant connecté à sa base de données, le plus simple est d'utiliser Oxygen. Ainsi, inutile de recréer la base de données à chaque modification de fichier.

Connexion à la BDD XML via Oxygen

Ouvrir Oxygen

  • Aller dans Fenêtre > Afficher la vue > Explorateur de Sources de Données

  • La fenêtre de dialogue s'ouvre alors à gauche de l'application :

  • Clic droit sur "Connexion" + choisir "Configurer les sources de données" :

  • Selectionner "WebDAV FTP WebDAV (S)FTP" dans la nouvelle boite de dialogue :

  • Ensuite, dans la zone "Connexions", ajouter une nouvelle "connexion" (cliquer sur +).

  • Une boite de dialogue s'ouvre. Renseigner alors les champs pour permettre la connexion (en pensant à sélectionner WebDAV comme "source de données" :

  • La connexion est alors établie avec le serveur : vous ne pouvez modifier en direct que les fichiers de "bases de données" : les fichiers XML. Les fichiers .xqm eux sont à modifier en local et à renvoyer via ftp (avec filezilla par exemple).