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/bin/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

Démarage 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
ExecStart=/usr/bin/virtuoso-t -f -c /data/virtuoso/db/virtuoso.ini +wait
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Vérifier que la configuration est bien prise en compte:

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.

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 :

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

L'option -f permet d'avoir la sortie dans la console (foreground), l'option -c permet de spécifier le fichier de configuration.

Configuration

  • 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 par isql (méthode recommandée par l'équipe de DBpedia).