Installation

De Langolen.

Sommaire

Installation du mediawiki de base (source de la ferme)

  • Se logger root
  • Aller dans la homedirectory d'apache : # cd /var/www/html
  • Télécharger le tarball de mediawiki par un : # wget http://download.wikimedia.org/mediawiki/1.13/mediawiki-1.13.3.tar.gz (le no de version, ici 1.13.3, est a moduler selon la version courante)
  • Décompresser le tarball : # tar -zxvf mediawiki-1.13.3.tar.gz
  • Renommer le dossier produit : # mv mediawiki-1.13.3 mediawiki_ref
  • Mettre le bon utilisateur au dossier : # chown -R apache:apache mediawiki_ref
  • Mettre des droits bloquants (sécurité) pour ce dossier de référence : # chmod 0 mediawiki_ref

Le wiki de base (dossier /var/www/html/mediawiki est maintenant prêt a être dupliqué n fois.

Installation des fichiers

Exemple : on souhaite créer le nouveau wiki "company"

  • se logger root
  • aller dans le home directory du serveur web : # cd /var/www/html
  • recopier le wiki de ref dans un répertoire au nom du futur wiki : # cp -R mediawiki_ref company
  • mettre les bons droits sur ce répertoire :
  1. # chown -R apache:apache company
  2. # chmod 750 company

Installation wiki et configuration

  • Lancer un navigateur sur ce répertoire, et créer le wiki : http://oysterz.univ-brest.fr/company en suivant les pages (attention à penser à nommer la bdd MySQL produite wikidbcompany)
  • Déplacer le fichier de configuration à la bonne place : # mv company/config/LocalSettings.php company
  • Le wiki est actif est disponible à l'URL : http://oysterz.univ-brest.fr/company
  • Facultatif normalement, mais assez indispensable pour une ferme : personnaliser le logo
  1. Choisir une image de 135x135 pixels, si possible png et fond transparent (conseil mediawiki mais pas obligatoire)
  2. La nommer logocompany.png
  3. Mettre cette image dans le dossier /var/www/html/company (par ftp ou autre)
  4. Modifier le fichier /var/www/html/company/LocalSettings.php pour y ajouter en fin la ligne : $wgLogo = 'http://oysterz.univ-brest.fr/company/logocompany.png';

Installation extension sémantique

# Couche semantique en +
include_once("$IP/extensions/SemanticMediaWiki/includes/SMW_Settings.php");
enableSemantics('oysterz.univ-brest.fr');
  • Se logger au wiki en tant qu'administrateur
  • Aller à la page spéciale "Fonctions administrateur pour Semantic MediaWiki" : [[1]]
  • Cliquer sur le bouton "Initialiser ou mettre à niveau les tables"
  • Si le script se bloque sur "Setting up table `smw_ids` ...", c'est que les droits de l'utilisateur du wiki pour les BDD ne sont pas suffisants, dans ce cas :
  1. Faire "back" dans le navigateur
  2. Editer le fichier /var/www/html/company/LocalSettings.php
  3. Modifier provisoirement les lignes
$wgDBuser     = "xxx"; par $wgDBuser     = "root"; (superuser de mysql)
$wgDBpassword = "xxx"; par $wgDBpassword = "xxx";  (mot de passe de ce superuser)
  1. Cliquer à nouveau sur le bouton "Initialiser ou mettre à niveau les tables"
  2. Attendre le message : "Le moteur de stockage a été installé avec succès."
  3. Restaurer les valeur originales dans le fichier /var/www/html/company/LocalSettings.php
  • Retourner à la page "Fonctions administrateur pour Semantic MediaWiki"
  • Cliquer sur le bouton "Commencer la mise à jour des données"
  • Ajouter la visualisation de la factbox en éditant le fichier de configuration de l'extension sémantique
#vi company/extensions/SemanticMediaWiki/includes/SMW_Settings.php
décommenter la ligne : $smwgShowFactbox = SMW_FACTBOX_NONEMPTY; # show only those factboxes that have some content
commenter la ligne : //$smwgShowFactbox = SMW_FACTBOX_HIDDEN; # hide always

Installation extension ParserFunctions

  • Se déplacer dans le répertoire extensions du wiki : # cd /var/www/html/company/extensions/
  • Récupérer le tarball nécessaire sur [2]
  • Décompresser le tarball : # tar -zxvf ParserFunctionsxxx.tar.gz
  • Activer cette extension en ajoutant en fin du fichier /var/www/html/company/LocalSettings.php, la ligne :
include_once('extensions/SemanticForms/includes/SF_Settings.php');
  • Vérifier le bon fonctionnement par la page "Version" dans les Pages spéciales

Installation extension formulaires sémantiques

require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );

  • Vérifier le bon fonctionnement par la présence de la catégorie "Semantic Forms" dans les Pages spéciales

Et maintenant ?

Le wiki sémantique est prêt.

Sécurité et droits d'accès

Les autorisations/restrictions sur les groupes se font par le tableau à 2 dimensions $wgGroupPermissions. Toute la configuration par défaut est faite dans le fichier include/DefaultSettings.php (à ne pas modifier).

Pour apporter des modifications, il faut les ajouter en fin du fichier LocalSettings.php (surcharge ou ajout de lignes dans le tableau wgGroupPermissions).

Première restriction globale : seuls les utilisateurs enregistrés peuvent modifier des pages :

Ajouter en fin de LocalSettings.php :
$wgGroupPermissions['*']['edit']    = false;
$wgGroupPermissions['user']['edit'] = true;

Ajout de nouveaux groupes dans le wiki :

Ajouter en fin de LocalSettings.php un ajout au tableau $wgGroupPermissions, exemple :
$wgGroupPermissions['Chef_projet']['bot']    = true;
$wgGroupPermissions['Chef_projet']['block']  = true;
$wgGroupPermissions['Chef_projet']['delete'] = true;

Ajout de l'extension LockDown pour restreindre l'accès à certaines pages par groupes et namespace :

Aller dans le répertoire extensions : # cd extensions
Télécharger l'extension lockdown : # svn checkout http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/Lockdown/
Ajouter en fin de LocalSettings.php : require_once( "$IP/extensions/Lockdown/Lockdown.php");

Utilisation de LockDown :

Ajouter en fin de LocalSettings.php :
# Creation d'un nouveau namespace 
$wgExtraNamespaces[100] = 'Private';
$wgExtraNamespaces[101] = 'Private_talk'; # Les namespaces vont par 2, pair le namespace, impair le _talk associé

#restrict "read" permission to users of group Chef_projet
$wgNamespacePermissionLockdown[100]['read'] = array('Chef_projet');
$wgNamespacePermissionLockdown[101]['read'] = array('Chef_projet');

#prevent inclusion of pages from that namespace
$wgNonincludableNamespaces[] = 100;
$wgNonincludableNamespaces[] = 101;

Liens inter-langues

Par essence les wikis sont prévus pour travailler en multi-langues, chaque langue ayant son wiki prefixé.

Exemple le wiki dont le sujet est publig, n'existe pas en tant que tel, il est décliné en fr.publig, en.publig, de.publig, etc. Ce qui donne pour les url http://oysterz.univ-brest.fr/fr.publig, http://oysterz.univ-brest.fr/en.publig, etc.

Pour que ces liens automatiques fonctionnent, il faut 3 conditions :

  • Que le wiki désigné existe
  • Que la table interwiki de la BDD associée au wiki contiennent un article par autre langue voulue de la forme : 'de', 'url du wiki de cette lange/$1', '0', '0'
  • Que la page où on souhaite voir apparaitre les liens multilangue contienne le code de référence, par exemple : [[de:Hauptseite]], cette balise ne génère rien dans le texte, mais fait apparaitre le lien "Deutsch" dans la boite à outils.

Nota : La table interwiki stocke l'url sous la forme d'un BLOB difficile à modifier/consulter. Il est plus sage pour y ajouter un article d'utiliser une insertion SQL de la forme :

INSERT INTO interwiki SET iw_prefix='de', iw_url='http://oysterz.univ-brest.fr/de.publig/$1', iw_local=0, iw_trans=0 ;
INSERT INTO interwiki SET iw_prefix='en', iw_url='http://oysterz.univ-brest.fr/en.publig/$1', iw_local=0, iw_trans=0 ;

etc.

Outils personnels