Déploiement de Virtuoso
De Dbpedia.fr.
(→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''. | ||
- | == | + | |
+ | |||
+ | == 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]. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- |
Version du 4 septembre 2013 à 22:19
Sources
Ces informations ont été tirées principalement des sites suivants :
- How to Install Virtuoso Open Source (VOS) on Fedora Core Linux
- Example for DBpedia data sets Upload
- Guide for Internationalization Developers
- Documentation officielle
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
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
où /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.