Mediawiki Administration

De wikilivois
Aller à la navigationAller à la recherche

Mediawiki est un outil de "base de connaissance" (wiki) développé à l'origine pour l'encyclopédie Wikipedia. Dans LinuxMag 82, Yves Mettier fait la différence entre un wiki et un site de publication (tel que SPIP):

  • Ce que vous écrivez est immédiatement en ligne (sans validation par une autorité)
  • Un document avec son propre format (PDF,audio,video) peut être directement intégré dans Mediawiki. Un site de publication a pour vocation la publication d'un article. Un tel document ne peut être qu'un complément et non l'objet de l'article.
  • La page d'accueil contient ce que vous désirez, contrairement à un site de publications qui, par principe, indiquera les derniers articles en ligne.

Quelques liens:

Administration du wiki

http://meta.wikimedia.org/wiki/LocalSettings.php

Installation

http://meta.wikimedia.org/wiki/Help:Running_MediaWiki_on_Gentoo_Linux

http://gentoo-wiki.com/HOWTO_Wiki

Package Gentoo: mediawiki +imagemagick, tetex

=================================================================
POST-INSTALL INSTRUCTIONS
=================================================================


Completing setup:

To complete installation cd into the MediaWiki install location, but
make sure to start mysql first with:

$ /etc/init.d/mysql start

$ cd /var/www/localhost/htdocs/mediawiki/

The host directory, localhost, may change depending on your installation.

Then temporarily make the MediaWiki /config directory writable
to the  user the web server is running as. The quickest way is
to make  the directory world writable.  For example:

$ chmod a+w config

Then access it, for example:

lynx http://localhost/mediawiki/config/

After setup move the newly created LocalSettings.php from the config/
directory to the main mediawiki directory, for example:

$ mv config/LocalSettings.php .

    Remember to restore safe permissions to the MediaWiki config/ and
    LocalSettings.php (which contains clear-text passwords).
    chmod a-w config
    chmod ug=r,o=  LocalSettings.php
    chown root:apache LocalSettings.php

After these steps MediaWiki should be accesable at
http://localhost/mediawiki/

Enabling Optional Features:

If you wish to enable image uploads then you must manually edit the
LocalSettings.php file to uncomment the $wgEnableUploads line.
If MediaWiki was built with the imagemagick USE-flag the directory
permissions are correct, otherwise you must install ImageMagick and
also adjust permissions on the images directory to allow the server
to write.  For example:

$ chown apache:apache /var/www/localhost/htdocs/mediawiki/images

Math Support:

If you wish to enable the math support then you must manually edit"
the LocalSettings.php file to uncomment the $wgUseTeX line.
MediaWiki must have been built with the math USE-flag enabled or the
necessary support executable will not be present.
You may also have to execute

$ texconfig dvips printcmd -

if you have not configured tetex before.

=================================================================

* Install completed - success

Upgrade

de 1.4.x à 1.5.x

http://meta.wikimedia.org/wiki/Upgrade_Mediawiki

#emerge -v mediawiki
#webapp-config -U -h wiki.livois.com -d mediawiki mediawiki 1.5.x

Copier le fichier AdminSettings.php dans le répertoire de base de mediawiki.

#cp /usr/share/doc/mediawiki-1.5.8/AdminSettings.sample.gz ./
#gunzip AdminSettings.sample.gz
#mv AdminSettings.sample AdminSettings.php

Editer AdminSettings.php avant d'effectuer la maintenace d'upgrade:

#cd maintenance
#php upgrade1_5.php
#php update.php

Editer la variable $wgLogo dans LocalSettings.php.

A noter que le logo wiki.png a pour dimension 135 x 135.

Gestion des images

<licode file="LocalSettings.php"> $wgEnableUploads = true; $wgUseImageMagick = true; $wgImageMagickConvertCommand = "/usr/bin/convert"; </licode>

Droits du répertoire
Vérifier que le répertoire mediawiki soit accessible en lecture et écriture par apache.

Safe mode

Attention: le safe mode de php empêche la copie des fichiers de tmp vers le répertoire images de mediawiki. Une solution est d'éditer le fichier de configuration apache de la façon suivante:


<licode file="Fichier de configuration apache."> <Directory /var/www/wiki.livois.com/wikimedia/images/>

 php_admin_flag safe_mode off
 php_admin_value open_basedir none

</Directory> </licode>

Cette solution ne semble plus marcher. L'utilisation du "safe mode" n'est de toutes les façons plus recommandée.

Limiter l'upload

D'autres paramètres permettent de limiter les chargements, selon le type de fichier ou la taille:

<licode file="LocalSettings.php"> $wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'doc, 'xls', 'ppt', 'sxw', 'pdf', 'gz' ); $wgCheckFileExtensions = true; $wgStrictFileExtensions = true;

$wgUploadSizeWarnings = 150000; </licode>

Gestion des utilisateurs

http://www.mediawiki.org/wiki/Manual:User_rights

N'autoriser que l'administrateur à créer des comptes: <licode file="LocalSettings.php"> $wgGroupPermissions['*']['createaccount'] = false; </licode>

Interdire l'édition en anonyme: <licode file="LocalSettings.php"> $wgGroupPermissions['*']['edit'] = false; </licode>

Ne donner accès aux utilisateurs anonymes qu'à la page d'accueil et deconnexion <licode file="LocalSettings.php"> $wgWhitelistRead = array("Accueil", "Special:Userlogin"); $wgGroupPermissions['*']['read'] = false; $wgGroupPermissions['*']['edit'] = false; </licode>

La gestion des accès par groupes

cf extension Group Based Access Control

Sauvegarde

mysqlhotcopy wikidb -p ****** /mnt/backup/01/mysql --allowold -q

A mettre dans un script quotidien ...

Lutte antispam

  • Use $wgSpamRegex to catch typical spam patterns. In my case this were free hosters, attempts to use 1 pixel height fonts or other "stealth" techniques.
  • Require users to create accounts. This is very useful anyway, you wantto be able to contact authors occasionaly the one or other reason.
  • Reduce the value of spamming the wiki by setting $wgNoFollowLinks to true. This is the default since like 1.3, keep it.

Bad behavior

Version 2 of this software is in testing, and it has explicit MediaWiki support.

http://www.homelandstupidity.us/software/bad-behavior/


Layout Customization

http://www.mediawiki.org/wiki/Help:FAQ#Changing_the_Interface

Les feuilles de styles (CSS)

http://meta.wikimedia.org/wiki/Aide:Personnalisation

Editer la feuille de style globale: MediaWiki:Common.css

Pour change la directive pre {, éditer skins/monobook/main.css: <licode file=skins/monobook/main.css> pre {

       margin: 0em 3em 0em 3em;
       padding: 1em;
       border: 1px dashed #2f6fab;
       color: black;
       background-color: #f9f9f9;
       line-height: 1.1em;

} </licode>

Personnaliser une feuille de style pour un utilisateur: <licode file=includes/DefaultSettings.php> $wgAllowUserJs=true; $wgAllowUserCss=true; </licode>

Editer ses feuilles de style en éditant la page:
index.php/User=<name>/monobook.css

Modifier la boîte de navigation (Sidebar)

http://meta.wikimedia.org/wiki/Sidebar

Editer la page index.php/MediaWiki:Sidebar (version 1.5.x).

Par défaut, le fichier est de la forme:

* navigation
** mainpage|mainpage
** portal-url|portal
** currentevents-url|currentevents
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help
** sitesupport-url|sitesupport

The toolbox is under the search bar is a dynamic element and cannot be easily customized. (It requires programming in PHP.) If you still want to do so, the best solution is to copy skins/MonoBook.php, creating a new skin. You can then make a custom skin to generate these links in your preferred fashion.

Changer le style Monobook

http://meta.wikimedia.org/wiki/Aide:Personnalisation

L'affichage (display) d'une page Monobook se comprend bien à partir des fichiers:

  • skins/MonoBook.tpl - le template d'une page
  • skins/Monobook.php - l'application du template en php
  • skins/monobook/main.css - comment les éléments des fichiers précédents sont disposés sur une page

Une page est composée de divers élements indiqués par

dans Monobook.tpl:
  • globalWrapper
  • La page de droite est définie par les éléments suivants:
    • colum-content
    • content
    • firstHeading
    • bodyContent
    • siteSub
    • contentSub
  • La menu de gauche est défini par les éléments suivants:
    • column-one
    • p-cactions
    • p-personal
    • p-logo => Logo
    • p-$bar (p-navigation)
    • p-search => Menu rechercher
    • p-tb => Menu boîte à outils

Elargir le menu de gauche

Changer skins/monobook/main.css :

  • colum-content (changer margin)

<licode file=skins/monobook/main.css>

  1. column-content {
       width: 100%;
       float: right;
       /*margin: 0 0 .6em -12.2em;*/
       margin: 0 0 .6em -14.2em;
       padding: 0;

} </licode>

  • content (changer margin)

<licode file=skins/monobook/main.css>

  1. content {
       /*margin: 2.8em 0 0 12.2em;*/
       margin: 2.8em 0 0 14.2em;

</licode>

  • .portlet (style du menu de gauche - changer width)

<licode file=skins/monobook/main.css> .portlet {

       border: none;
       margin: 0 0 .5em;
       padding: 0;
       float: none;
       /*width: 11.6em;*/
       width: 14em;
       overflow: hidden;

} </licode>

Divers

Mettre le sommaire (TOC) dans le menu de gauche

Merci à Fred de lea-linux qui m'a donné la solution ...

Mettre dans le template, à l'endroit où le TOC doit apparaitre <licode>

</licode>

Pour le style Monobook, il faut éditer skins/Monobook.php. L'exemple suivant affiche le menu au dessus de la boîte à outils : <licode file=skins/Monobook.php>

</licode>

Ecrire les fonctions javascript pour récupérer le menu dans un fichier js (myskin.js ici) : <licode file=skins/myskin/myskin.js> function addOnLoadEvent(fnc) {

 if ( typeof window.addEventListener != "undefined" )
 {
   window.addEventListener( "load", fnc, false );
 }
 else if ( typeof window.attachEvent != "undefined" )
 {
   window.attachEvent( "onload", fnc );
 }
 else
 {
   if ( window.onload != null )
   {
     var oldOnload = window.onload;
     window.onload = function ( e )
     {
       oldOnload( e );
       window[fnc]();
     };
   }
   else window.onload = fnc;
 }

}

function MenuToc() {

 /* on cherche la table des matieres */
 toc = document.getElementById('toc') ;
 tocdest = document.getElementById('new-toc') ;
 if ((toc != null) && (tocdest != null))
 { /* trouve */
   /* on l'efface de la ou elle est */
   newtoc = toc.parentNode.removeChild(toc) ;
   newtoc.setAttribute("style", "float:none;") ;
   /* on la met la ou l'on le demande */
   tocdest.appendChild(newtoc) ;
 }

}

addOnLoadEvent(MenuToc); </licode>

Appeler les fonctions javascript du template (dans les headers <head>) : <licode file=skins/Monobook.php> <script type="text/javascript" src="<?php $this->text('stylepath' ) ?>/myskin/myskin.js"></script> </licode>

Mediawiki Hacking

Ecrire une extension

http://meta.wikimedia.org/wiki/Write_your_own_MediaWiki_extension

Pour chaque extension utilisée, il faut rajouter une ligne dans LocalSettings.php: <licode file=LocalSettings.php> require_once("extensions/nom_extension.php"); </licode>

Ecrire une page spéciale

http://meta.wikimedia.org/wiki/Writing_a_new_special_page

Liste des variables globales

http://meta.wikimedia.org/wiki/Global_variables

  • 1 wgTitle
  • 2 wgLinkCache
  • 3 wgUser
  • 4 wgLang
  • 5 wgOut
  • 6 wgArticlePath
  • 7 many more...

Liste de fonctions

http://svn.wikimedia.org/doc/

Debuggage

http://meta.wikimedia.org/wiki/WgDebugLogFile

Extensions

http://www.mediawiki.org/wiki/Extension_Matrix

http://meta.wikimedia.org/wiki/Category:Mediawiki_Extensions

Cite

http://www.mediawiki.org/wiki/Extension:Cite/Cite.php

Permet de préciser des références en base de page (avec un [1]). La syntaxe dans la page est:

<ref> texte de la référence </ref>

Il faut aussi ajouter en base de page la balise:

<references />

Liens rss

http://meta.wikimedia.org/wiki/GISWiki/RSS

Nécessite MapieRSS: http://magpierss.sourceforge.net/

MagpieRSS requires a recent PHP 4+ (developed with 4.2.0) with xml (expat) support. Optionally:

  • PHP5 with libxml2 support.
  • cURL for SSL support
  • iconv (preferred) or mb_string for expanded character set support
#wget http://ovh.dl.sourceforge.net/sourceforge/magpierss/magpierss-0.72.tar.gz
#tar zxvf magpierss-0.72.tar.gz
#mv magpierss-0.72 /var/www/wiki.livois.com/mediawiki/extensions/magpierss

Editer rss.php

<licode file=extensions/rss.php> require_once('magpierss/rss_fetch.inc'); </licode>

Export PDF

http://www.mediawiki.org/wiki/Extension:Pdf_Export

Package Gentoo: htmldoc

Liste d'Articles (nouveaux/récents/...)

http://www.mediawiki.org/wiki/Extension:Dynamic_Article_List

Carte du site - Sitemap

http://meta.wikimedia.org/wiki/User:Barre/Extensions/kw_site_map

Authentification LDAP

http://meta.wikimedia.org/wiki/LDAP_Authentication

FileSystemListing - Arborescence de fichiers

http://meta.wikimedia.org/wiki/FileSystemListing

Copier le script proposé dans le répertoire extensions.

Pour activer l'extension, ajouter include ("extensions/FileSystemListing.php"); dans le fichier LocalSettings.php.

Création de compte - notification par mail

http://meta.wikimedia.org/wiki/New_User_Email_Notification

http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/NewUserNotif

Partager une même authentification pour plusieurs wiki

http://bugzilla.wikimedia.org/show_bug.cgi?id=2396

Limiter l'accès à certaines pages

http://www.mediawiki.org/wiki/Extension:Group_Based_Access_Control

http://blog.pagansoft.de/

<licode file=LocalSettings.php> require_once("extensions/accesscontrolSettings.php"); include("extensions/accesscontrol.php"); </licode>

<licode file=extensions/accesscontrolSettings.php> $wgAccessControlDisableMessages = false; // if set to false, show a line on top of each secured page, which says, which groups are allowed to see this page. $wgWikiVersion = 1.8; // Set this to 1.6 or higher, if you use mediaWiki 1.6.X, this is for compatibility reasons $wgAdminCanReadAll = true; // sysop users can read all restricted pages $wgUseMediaWikiGroups = false; // use the groups from MediaWiki instead of own Usergroup pages $wgAccesscontrolDebug = false; // Debug log on if set to true $wgAccesscontrolDebugFile = "/var/www/www.livois.com/mediawiki/debug.txt"; // Path to the debug log $wgAccessControlAnonymousGroupName = "anon"; // The name of the group the anonymous users belongs to

$wgAccessControlGroupPrefix = "Usergroup"; // The prefix for the Usergroup pages $wgAccessControlNoAccessPage = "wiki.php?title=No_Access"; // To this page will these users redirected who ar not allowed to see the page. $wgGroupLineText = "This page is only accessible for group %s !!!"; // The text for the showing on the restricted pages, for one group $wgGroupsLineText = "This page is only accessible for the groups %s !!!"; // The text for the showing on the restricted pages, for more than one group </licode>

<licode file="Page Wiki: Usergroup:Famille">

  • Chris
  • Astrid

</licode>

<licode file="Page Wiki: No_Access">

Vous essayez d'accéder à un espace réservé.

Nous sommes désolés mais cette section de notre site est réservée aux utilisateurs enregistrés seulement.

Merci de votre compréhension.

</licode>

Semantic Mediawiki

http://semantic-mediawiki.org/wiki/Semantic_MediaWiki

cd /var/www/www.livois.com/mediawiki/extensions/
tar zxvf semediawiki-1.1.1.tar.gz
cd SemanticMediawiki

<licode file=LocalSettings.php> include_once('extensions/SemanticMediaWiki/includes/SMW_Settings.php'); enableSemantics('www.livois.com'); </licode>


S'assurer que l'utilisateur mysql de LocalSettings.php a les droits pour créer une table. <licode file=LocalSettings.php>

  1. $wgDBuser = "root";
  2. $wgDBpassword = "***"

</licode>

In your wiki, log in as a user with admin status and go to the page "Special:SMWAdmin" to do the final setup steps.

Sauvegarde et Restauration

http://meta.wikimedia.org/wiki/Help:Backup

Sauvegarde

#php /var/www/wiki.livois.com/mediawiki/maintenance/dumpBackup.php --full --output=bzip2:MWbackup.bz2

Restauration

http://meta.wikimedia.org/wiki/Help:Import

Aller dans les pages spéciales en tant que SysOp et importer le fichier .xml des pages à importer.

Copyright

© 2006-2012 Christophe de Livois

Tête de GNU Vous avez l'autorisation de copier, distribuer et/ou modifier ce document suivant les termes de la GNU Free Documentation License, Version 1.2 ou n'importe quelle version ultérieure publiée par la Free Software Foundation; sans section invariante, sans page de garde, sans entête et sans page finale. Pour plus d'informations consulter le site de l'APRIL.