Outils personnels
User menu

Déploiement de Virtuoso

De Dbpedia.fr.

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.


Voir aussi

Chargement_des_données_dans_Virtuoso

Notes sur l'utilisation de Virtuoso

  • Dernière modification de cette page le 4 septembre 2013 à 22:22.
  • Cette page a été consultée 10 531 fois.