Outils personnels
User menu

Déploiement de Virtuoso

De Dbpedia.fr.

(Différences entre les versions)
(Avec Systemd : ajout du redemarrage auto)
(regroupement des pages de doc sur Virtuoso)
Ligne 6 : Ligne 6 :
* [http://wiki.dbpedia.org/Internationalization/Guide Guide for Internationalization Developers]
* [http://wiki.dbpedia.org/Internationalization/Guide Guide for Internationalization Developers]
* [http://docs.openlinksw.com/virtuoso/ Documentation officielle]
* [http://docs.openlinksw.com/virtuoso/ Documentation officielle]
 +
 +
== Installation de Virtuoso ==
== Installation de Virtuoso ==
Ligne 20 : Ligne 22 :
L'interface d'aministration en ligne est aussi très utile :
L'interface d'aministration en ligne est aussi très utile :
  <nowiki># yum install virtuoso-opensource-conductor</nowiki>
  <nowiki># yum install virtuoso-opensource-conductor</nowiki>
 +
=== Compilation des sources ===
=== Compilation des sources ===
Ligne 49 : Ligne 52 :
# ln -s /usr/local/virtuoso/bin/virtuoso-t /usr/bin/virtuoso-t
# ln -s /usr/local/virtuoso/bin/virtuoso-t /usr/bin/virtuoso-t
# ln -s /usr/local/virtuoso/bin/isql-v /usr/bin/isql-v</nowiki>
# ln -s /usr/local/virtuoso/bin/isql-v /usr/bin/isql-v</nowiki>
 +
=== Mise en place de l'interface web d'administration ===
=== Mise en place de l'interface web d'administration ===
Ligne 58 : Ligne 62 :
Remarque : le répertoire ''/usr/local/virtuoso/share/virtuoso/vad/'' ou un répertoire parent doit être listé dans l'entrée ''DirsAllowed '' du fichier de configuration ''virtuoso.ini''.
Remarque : le répertoire ''/usr/local/virtuoso/share/virtuoso/vad/'' ou un répertoire parent doit être listé dans l'entrée ''DirsAllowed '' du fichier de configuration ''virtuoso.ini''.
-
== Démarage automatique de Virtuoso ==
+
 
 +
 
 +
== Configuration de Virtuoso ==
 +
 
 +
Copier dans un emplacement au choix le fichier ''virtuoso.ini'' depuis ''/usr/local/virtuoso/var/lib/virtuoso/db/virtuoso.ini'' ou ''/var/lib/virtuoso/db/'', voir sinon [[Exemple_virtuoso.ini|l'exemple de fichier '''virtuoso.ini'']].
 +
Pour que les changements dans ce fichier soient pris en compte, virtuoso doit être redémarré.
 +
 
 +
 
 +
=== Changer le mot de passe administrateur ===
 +
 
 +
<nowiki>$ isql-v
 +
> set password [ancien mdp] [nouveau mdp];</nowiki>
 +
Sachant que le mot de passe par défault est '''dba''', pour l'utilisateur '''dba'''.
 +
 
 +
 
 +
=== Emplacement de la base de données ===
 +
 
 +
Editer les entrées suivantes du fichier ''virtuoso.ini'' :
 +
[Database]
 +
DatabaseFile      = /data/virtuoso/db/virtuoso.db
 +
ErrorLogFile      = /data/virtuoso/db/virtuoso.log
 +
LockFile          = /data/virtuoso/db/virtuoso.lck
 +
TransactionFile    = /data/virtuoso/db/virtuoso.trx
 +
xa_persistent_file = /data/virtuoso/db/virtuoso.pxa
 +
 
 +
[TempDatabase]
 +
DatabaseFile   = /data/virtuoso/db/virtuoso-temp.db
 +
TransactionFile    = /data/virtuoso/db/virtuoso-temp.trx
 +
 
 +
 
 +
=== Ajuster la mémoire allouée ===
 +
 
 +
Ajuster les paramètres ''NumberOfBuffers'' et ''MaxDirtyBuffers'' dans le le fichier ''virtuoso.ini'' suivant les recommandations données en commentaire, pour 8Go de mémoire vive :
 +
<nowiki>
 +
NumberOfBuffers=680000
 +
MaxDirtyBuffers=500000</nowiki>
 +
 +
 
 +
=== Activer les logs d'accès au serveur ===
 +
 
 +
Ajouter la ligne suivante (la décommenter) au fichier ''virtuoso.ini'' :
 +
HTTPLogFile = ../logs/http.log
 +
A l'exécution de Virtuoso, les fichiers de log auront des noms de la forme http[date sous forme JJMMAAA].log
 +
 
 +
 
 +
=== Déployer Virtuoso sur le port 80 ===
 +
Par défaut, le serveur est déployé sur le port 8890, pour changer de port, modifier les entrées suivante dans le fichier ''virtoso.ini'':
 +
<nowiki>[HTTPServer]
 +
ServerPort = 80
 +
...
 +
[URIQA]
 +
DefaultHost  = localhost:80
 +
</nowiki>
 +
 
 +
Pour pouvoir lancer virtuoso sur un port est <1024 sans utiliser le compte root, il faut allouer le droits à virtuoso:
 +
# setcap 'cap_net_bind_service=+ep' /usr/bin/virtuoso-t
 +
(où /usr/bin:virtuoso-t est le chemin d'accès à virtuoso-t).
 +
 
 +
 
 +
=== Ajout de l'accès au téléchargement des dumps ===
 +
Méthode par accès direct aux fichiers, configuration par l'interface web d'administration.
 +
* Créer un dossier ou un lien symbolique dans le répertoire '''vsp/'''. Par exemple, le répertoire '''vsp/download'''.
 +
* Ouvrir l'interface conductor de virtuoso (<nowiki>[URI du serveur]/conductor/</nowiki>) avec les mêmes identifiants que pour isql.
 +
* Ouvrir l'onglet '''Web Application Server'''\'''Virtual Domains & Directories'''.
 +
* Cliquer sur le lien '''New Directory''' en face de l'interface 0.0.0.0, port 80.
 +
* Choisir l'option '''Type''':'''FileSystem'''
 +
* Entrer le chemin logique (composante de l'URI) dans le champs '''Path''' et le chemin relatif du dossier par rapport au dossier '''vsp/''' dans le champ '''Physical path''' ("/download/" dans le cas de l'exemple).
 +
* Cocher la case '''Allow Directory Browsing''' pour permettre le parcours du contenu du répertoire.
 +
* Il ne reste plus qu'à enregistrer et tester.
 +
 
 +
 
 +
=== Installation de l'interface d'accès aux données de DBpedia (déréférencement des URIs) ===
 +
Suivant les instruction de la [https://github.com/dbpedia/dbpedia-vad-i18n documentation de DBpedia.org] :
 +
 
 +
* Télécharger le fichier [https://github.com/dbpedia/dbpedia-vad-i18n/blob/master/dbpedia_dav.vad dbpedia_dav.vad] et le placer dans une des dossiers du champ '''DirsAllowed''' de '''virtuoso.ini'''.
 +
* Entrer les paramètres suivants dans l'interface isql:
 +
<nowiki>SQL> registry_set ('dbp_decode_iri',  'off');
 +
registry_set ('dbp_domain',      'http://fr.dbpedia.org');
 +
registry_set ('dbp_graph',        'http://fr.dbpedia.org');
 +
registry_set ('dbp_lang',        'fr');
 +
registry_set ('dbp_DynamicLocal', 'on');
 +
registry_set ('dbp_category',    'Catégorie');
 +
registry_set ('dbp_imprint',      'http://dbpedia.fr/doc/Imprint');
 +
registry_set ('dbp_website',      'http://wimmics.inria.fr/projects/dbpedia/');
 +
registry_set ('dbp_lhost',        ':80');
 +
registry_set ('dbp_vhost',        'http://fr.dbpedia.org');</nowiki>
 +
* lancer l'installation :
 +
<nowiki>vad_install('[chemin/vers/dbpedia_dav.vad]', 0);</nowiki>
 +
 
 +
'''Pour changer les paramètres''' :
 +
* trouver la version de dbpedia_vad, elle apparaît en deuxième colonne de
 +
SQL> vad_list_packages ();
 +
La version actuelle est '''1.3.25'''.
 +
* désinstaller dbpedia_dav.vad
 +
<nowiki>SQL> vad_uninstall('dbpedia/[version]');</nowiki>
 +
* entrez à nouveau les instructions '''registry_set''' des champs à modifier.
 +
* lancer à nouveau l'installation de dbpedia_dav.vad.
 +
 
 +
 
 +
 
 +
== Démarrer Virtuoso ==
 +
 
 +
=== Démarrage de virtuoso ===
 +
<nowiki>virtuoso-t -f -c [chemin/vers/virtuoso.ini]</nowiki>
 +
L'option <nowiki>-c</nowiki> permet de spécifier le fichier de configuration. Pour tester, il peut être instéressant d'ajouter l'option <nowiki>-f</nowiki> qui permet de garder al sortie dans la console (foreground).
 +
 
 +
Les logs d'exécution sont enregistrés dans le fichier ''virtuoso.log'', (voir entrée ''ErrorLogFile'' de ''virtuoso.ini'').
 +
 
 +
 
 +
=== Accès à la console SQL de Virtuoso ===
 +
 
 +
Suivant l'installation choisie, exécuter la commande ''isql-v'', ''/usr/local/virtuoso/bin/isql-v'' ou ''/usr/bin/virtuoso/bin/isql-v''.
 +
 
 +
 
 +
=== Accès à la page d'administration web de Virtuoso ===
 +
 
 +
Si le module conductor a été installé, l'interface d'administration est accessible à l'adresse http://localhost:[port]/conductor .
 +
 
 +
 
 +
 
 +
== Configurer le démarrage automatique de Virtuoso ==
Le mieux est d'utiliser le système de gestion de démons installé par défault avec la distribution utilisée, [[#Avec Systemd|Systemd]] pour Fedora, [[#Avec Upstart|Upstart]] pour Ubuntu, [[#Ancienne version, avec system V|SystemV]] pour les plus anciennes distributions.
Le mieux est d'utiliser le système de gestion de démons installé par défault avec la distribution utilisée, [[#Avec Systemd|Systemd]] pour Fedora, [[#Avec Upstart|Upstart]] pour Ubuntu, [[#Ancienne version, avec system V|SystemV]] pour les plus anciennes distributions.
 +
=== Avec Systemd ===
=== Avec Systemd ===
Ligne 90 : Ligne 215 :
Pour faire en sorte que le service soit lancé au démarrage :
Pour faire en sorte que le service soit lancé au démarrage :
  <nowiki># systemctl enable virtuoso</nowiki>
  <nowiki># systemctl enable virtuoso</nowiki>
 +
=== Avec Upstart ===
=== Avec Upstart ===
Ligne 135 : Ligne 261 :
=== Ancienne version, avec system V ===
=== Ancienne version, avec system V ===
 +
Un modèle de script de démarage est donné dans les sources de virtuoso : <nowiki>debian/init.d</nowiki>
Un modèle de script de démarage est donné dans les sources de virtuoso : <nowiki>debian/init.d</nowiki>
Ligne 151 : Ligne 278 :
Voir les instructions sur [http://docs.openlinksw.com/virtuoso/unxinstvirt.html#unxautovirt les instructions de openlink].
Voir les instructions sur [http://docs.openlinksw.com/virtuoso/unxinstvirt.html#unxautovirt les instructions de openlink].
-
 
-
== Commandes et emplacement des fichiers ==
 
-
 
-
Fichier de configuration : virtuoso.ini, par défault il se trouve dans /var/lib/virtuoso/db/.
 
-
 
-
Démarrage de virtuoso :
 
-
<nowiki>virtuoso-t -f -c [chemin/vers/virtuoso.ini]</nowiki>
 
-
L'option <nowiki>-f</nowiki> permet d'avoir la sortie dans la console (foreground), l'option  <nowiki>-c</nowiki> permet de spécifier le fichier de configuration.
 
-
 
-
== Configuration ==
 
-
 
-
* Pour changer le mot de passe administrateur:
 
-
<nowiki>$ isql-v
 
-
> set password [ancien mdp] [nouveau mdp];</nowiki>
 
-
Sachant que le mot de passe par défault est '''dba''', pour l'utilisateur '''dba'''.
 
-
 
-
* Pour activer les logs d'accès au serveur http de Virtuoso, il faut ajouter la ligne suivante (la décommenter) au fichier virtuoso.ini :
 
-
HTTPLogFile = ../logs/http.log
 
-
A l'exécution de Virtuoso, les fichiers de log auront des noms de la forme http[date sous forme JJMMAAA].log
 
-
 
-
* Pour rendre le serveur http de Virtuoso accessible sur le port 80 :
 
-
** autoriser virtuoso-t à lire les ports sécurisés (<1024), avec les droits root :
 
-
# setcap 'cap_net_bind_service=+ep' /usr/bin/virtuoso-t
 
-
(où /usr/bin:virtuoso-t est le chemin d'accès à virtuoso-t). Cela permet d'accéder au port 80 sans pour autant donner les droits root à virtuoso.
 
-
** configurer Virtuoso pour lire sur le port 80
 
-
*** soit directement dans le fichier virtuoso.ini
 
-
*** soit [http://wiki.dbpedia.org/Internationalization/Guide#h152-7 par isql] (méthode recommandée par l'équipe de DBpedia).
 

Version du 4 septembre 2013 à 22:19

Sommaire

Sources

Ces informations ont été tirées principalement des sites suivants :


Installation de Virtuoso

Installation depuis un dépôt Linux

Sur Fedora 15 et RHEL 6:

# yum install virtuoso-opensource

Il est aussi utile d'installer une invite de commande SQL pour virtuoso : isql (attention, ce n'est pas la même commande que pour odbc) :

# yum install virtuoso-opensource-utils

L'interface d'aministration en ligne est aussi très utile :

# yum install virtuoso-opensource-conductor


Compilation des sources

Documentation de Openlink

Liste des dépendances

Téléchargement des sources

Page correspondante de la doc Openlink

$ git clone git://github.com/openlink/virtuoso-opensource.git
$ git checkout --track remotes/origin/stable/7

pour télécharger la dernière version stable de la branche 7.x.

Compilation

Page correspondante de la doc Openlink

  • Spécifier les paramètres de compilation donnés dans cette page, dans le cas d'une machine Linux 64:
$ export CFLAGS="-O2 -m64"
  • Génération des fichiers de configuration :
$ cd virtuoso-opensource
$ ./autogen.sh
  • configuration du chemin d'installation, différentes options sont décrites sur cette page, par exemple pour installer virtuoso dans le répertoire /usr/bin/virtuoso :
$ ./configure --prefix=/usr/local/virtuoso 
  --program-transform-name="s/isql/isql-v/"

Rq. l'option --prefix=/usr/local/virtuoso spécifie l'emplacement où sera installé virtuoso, --program-transform-name="s/isql/isql-v/" permet de renommer l'interface de commande sql de virtuoso en isql-v pou éviter un clash avec celle de unixODBC.

  • compilation et installation
$ make
# make install
# ln -s /usr/local/virtuoso/bin/virtuoso-t /usr/bin/virtuoso-t
# ln -s /usr/local/virtuoso/bin/isql-v /usr/bin/isql-v


Mise en place de l'interface web d'administration

Le serveur peut être administré par l'interface web à l'adresse /condutor. Pour l'activer :

$ isql-v
> vad_install ('/usr/local/virtuoso/share/virtuoso/vad/conductor_dav.vad',0);

Remarque : le répertoire /usr/local/virtuoso/share/virtuoso/vad/ ou un répertoire parent doit être listé dans l'entrée DirsAllowed du fichier de configuration virtuoso.ini.


Configuration de Virtuoso

Copier dans un emplacement au choix le fichier virtuoso.ini depuis /usr/local/virtuoso/var/lib/virtuoso/db/virtuoso.ini ou /var/lib/virtuoso/db/, voir sinon l'exemple de fichier 'virtuoso.ini. Pour que les changements dans ce fichier soient pris en compte, virtuoso doit être redémarré.


Changer le mot de passe administrateur

$ isql-v
> set password [ancien mdp] [nouveau mdp];

Sachant que le mot de passe par défault est dba, pour l'utilisateur dba.


Emplacement de la base de données

Editer les entrées suivantes du fichier virtuoso.ini :

[Database]
DatabaseFile       = /data/virtuoso/db/virtuoso.db
ErrorLogFile       = /data/virtuoso/db/virtuoso.log
LockFile           = /data/virtuoso/db/virtuoso.lck
TransactionFile    = /data/virtuoso/db/virtuoso.trx
xa_persistent_file = /data/virtuoso/db/virtuoso.pxa
[TempDatabase]
DatabaseFile	   = /data/virtuoso/db/virtuoso-temp.db
TransactionFile    = /data/virtuoso/db/virtuoso-temp.trx


Ajuster la mémoire allouée

Ajuster les paramètres NumberOfBuffers et MaxDirtyBuffers dans le le fichier virtuoso.ini suivant les recommandations données en commentaire, pour 8Go de mémoire vive :

NumberOfBuffers=680000
MaxDirtyBuffers=500000

Activer les logs d'accès au serveur

Ajouter la ligne suivante (la décommenter) au fichier virtuoso.ini :

HTTPLogFile = ../logs/http.log

A l'exécution de Virtuoso, les fichiers de log auront des noms de la forme http[date sous forme JJMMAAA].log


Déployer Virtuoso sur le port 80

Par défaut, le serveur est déployé sur le port 8890, pour changer de port, modifier les entrées suivante dans le fichier virtoso.ini:

[HTTPServer]
ServerPort = 80
...
[URIQA]
DefaultHost  = localhost:80

Pour pouvoir lancer virtuoso sur un port est <1024 sans utiliser le compte root, il faut allouer le droits à virtuoso:

# setcap 'cap_net_bind_service=+ep' /usr/bin/virtuoso-t

(où /usr/bin:virtuoso-t est le chemin d'accès à virtuoso-t).


Ajout de l'accès au téléchargement des dumps

Méthode par accès direct aux fichiers, configuration par l'interface web d'administration.

  • Créer un dossier ou un lien symbolique dans le répertoire vsp/. Par exemple, le répertoire vsp/download.
  • Ouvrir l'interface conductor de virtuoso ([URI du serveur]/conductor/) avec les mêmes identifiants que pour isql.
  • Ouvrir l'onglet Web Application Server\Virtual Domains & Directories.
  • Cliquer sur le lien New Directory en face de l'interface 0.0.0.0, port 80.
  • Choisir l'option Type:FileSystem
  • Entrer le chemin logique (composante de l'URI) dans le champs Path et le chemin relatif du dossier par rapport au dossier vsp/ dans le champ Physical path ("/download/" dans le cas de l'exemple).
  • Cocher la case Allow Directory Browsing pour permettre le parcours du contenu du répertoire.
  • Il ne reste plus qu'à enregistrer et tester.


Installation de l'interface d'accès aux données de DBpedia (déréférencement des URIs)

Suivant les instruction de la documentation de DBpedia.org :

  • Télécharger le fichier dbpedia_dav.vad et le placer dans une des dossiers du champ DirsAllowed de virtuoso.ini.
  • Entrer les paramètres suivants dans l'interface isql:
SQL> registry_set ('dbp_decode_iri',   'off');
registry_set ('dbp_domain',       'http://fr.dbpedia.org');
registry_set ('dbp_graph',        'http://fr.dbpedia.org');
registry_set ('dbp_lang',         'fr');
registry_set ('dbp_DynamicLocal', 'on');
registry_set ('dbp_category',     'Catégorie');
registry_set ('dbp_imprint',      'http://dbpedia.fr/doc/Imprint');
registry_set ('dbp_website',      'http://wimmics.inria.fr/projects/dbpedia/');
registry_set ('dbp_lhost',        ':80');
registry_set ('dbp_vhost',        'http://fr.dbpedia.org');
  • lancer l'installation :
vad_install('[chemin/vers/dbpedia_dav.vad]', 0);

Pour changer les paramètres :

  • trouver la version de dbpedia_vad, elle apparaît en deuxième colonne de
SQL> vad_list_packages ();

La version actuelle est 1.3.25.

  • désinstaller dbpedia_dav.vad
SQL> vad_uninstall('dbpedia/[version]');
  • entrez à nouveau les instructions registry_set des champs à modifier.
  • lancer à nouveau l'installation de dbpedia_dav.vad.


Démarrer Virtuoso

Démarrage de virtuoso

virtuoso-t -f -c [chemin/vers/virtuoso.ini]

L'option -c permet de spécifier le fichier de configuration. Pour tester, il peut être instéressant d'ajouter l'option -f qui permet de garder al sortie dans la console (foreground).

Les logs d'exécution sont enregistrés dans le fichier virtuoso.log, (voir entrée ErrorLogFile de virtuoso.ini).


Accès à la console SQL de Virtuoso

Suivant l'installation choisie, exécuter la commande isql-v, /usr/local/virtuoso/bin/isql-v ou /usr/bin/virtuoso/bin/isql-v.


Accès à la page d'administration web de Virtuoso

Si le module conductor a été installé, l'interface d'administration est accessible à l'adresse http://localhost:[port]/conductor .


Configurer le démarrage automatique de Virtuoso

Le mieux est d'utiliser le système de gestion de démons installé par défault avec la distribution utilisée, Systemd pour Fedora, Upstart pour Ubuntu, SystemV pour les plus anciennes distributions.


Avec Systemd

Systemd un système de gestion utilisé dans Fedora 17-, Debian, ...

Copier le code suivant dans le fichier /usr/lib/systemd/system/virtuoso.service:

[Unit]
Description=The Virtuoso Server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
Restart=always
RestartSec=2
ExecStart=/usr/bin/virtuoso-t -f -c /data/virtuoso/db/virtuoso.ini +wait
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Charger la configuration et vérifier qu'elle est bien prise en compte:

# systemctl --system daemon-reload
$ systemctl status virtuoso

Le champ Loaded ne doit pas contenir d'erreur. Pour démarrer le service:

# systemctl start virtuoso

Pour l'arrêter, c'est pareiol avec la commande stop. Pour faire en sorte que le service soit lancé au démarrage :

# systemctl enable virtuoso


Avec Upstart

Upstart un système de gestion utilisé dans Ubuntu.

Copier le code suivant dans le fichier /etc/init/virtuoso.conf:

# myservice - myservice job file

description "Virtuoso"
author "Julien Cojan <julien.cojan@inria.fr>"

# Stanzas
#
# Stanzas control when and how a process is started and stopped
# See a list of stanzas here: http://upstart.ubuntu.com/wiki/Stanzas#respawn

# When to start the service
start on runlevel [2345]

# When to stop the service
stop on runlevel [016]

# Automatically restart process if crashed
respawn

# Start the process
script
 virtuoso-t -d -c /data/virtuoso/db/virtuoso.ini +wait
 sleep 60
end script

/data/virtuoso/db/virtuoso.ini est le chemin du fichier de configuration à utiliser. (adapté de http://thegeekcorner.pagesperso-orange.fr/fr/memo/creer_script_upstart.html).

Recharger la configuration de Upstart:

# initctl reload-configuration

Virtuoso devrait être lancé au démarrage et redémarrer automatiquement après une pause de 60 secondes en cas d'arrêt.

Pour le démarrer manuellement:

$ initctl start virtuoso

Pour l'arrêter (il n'y aura pas de redémarrage auto):

$ initctl stop virtuoso


Ancienne version, avec system V

Un modèle de script de démarage est donné dans les sources de virtuoso : debian/init.d

Après l'avoir édité :

# cp [chemin vers le fichier édité] /etc/init.d/virtuoso
# chmod ugo+rx /etc/init.d/virtuoso

Cela permet de lancer virtuoso par la commande service:

$ service virtuoso start

(idem pour l'arrêt en remplaçant start par stop).

Pour faire démarrer virtuoso lors du boot:

# ln -s /etc/init.d/virtuoso /etc/rc2.d/S99virtuoso
# ln -s /etc/init.d/virtuoso /etc/rc3.d/S99virtuoso
# ln -s /etc/init.d/virtuoso /etc/rc5.d/S99virtuoso

Voir les instructions sur les instructions de openlink.