www.starend.org

TechNIX

Tags

wiki mediawiki debian

Installation d'un wiki MediaWiki sous Debian

16/11/2007

25/03/2008 MaJ conf machine.

1/Introduction

J'ai besoin de créer un espace de partage pour la sono. Un espace beaucoup plus souple que ce que permet mon moteur de page (perso) de technix. En fait, un wiki publique mais à contribution restreinte est parfais pour ça :-)

Ce wiki devra reconnaitre les utilisateurs contributeurs (surtout moi en fait) par rapport à un annuaire LDAP. Il utilisera un serveur de base de données externe MySQL. Il aura l'adresse interne 10.254.80.20, et il sera accessible à l'adresse http://technix.starend.org/sono/ pour tout le monde.

Et il devra pouvoir héberger d'autres wikis indépendants les uns des autres.

Donc installation...

2/Installation

Montage fait sur une machine virtuelle Xen, 32Mo de RAM, 1 carte réseau.

Installer une Debian 4.0r1 de base. Le réseau doit être opérationnel, notament vers internet. J'utilise les dépôts de paquets officiels sur internet.

Partitionnement :
1Go de /
64Mo de swap

Se connecter en 'root'.

On commence par installer le minimum vital (Apache2 avec PHP5, et le client MySQL) avec la commande :

aptitude install apache2-mpm-prefork libapache2-mod-php5 php5 php5-gd php5-mysql php5-cli mysql-client-5.0

L'installation de Mediawiki proprement dit se fait avec la commande :

aptitude install mediawiki mediawiki-math

Si vous n'avez pas de serveur de base de donnée externe, il faut en ajouter un. Par exemple MySQL que l'on ajoute avec la commande :

aptitude install mysql-server-5.0

3/Configuration

3.1/Serveur web Apache

Par défaut, le paquet Mediawiki place un lien symbolique dans '/etc/apache2/conf.d/' vers la configuration spécifique à Mediawiki pour Apache, c'est à dire le fichier '/etc/mediawiki1.7/apache.conf'.

Sauf personnalisation, rien à faire donc :-)

Mais je décide de refaire le lien, le mettre à une place plus appropriée :

cd /etc/apache2/
rm conf.d/mediawiki1.7.conf
ln -s /etc/mediawiki1.7/apache.conf sites-enabled/001-mediawiki

C'est plus propre même si cette dernière manipe n'est pas indispensable en temps normale. Elle me façilitera la tâche pour le renommage plus loin.

3.2/Base de donnée MySQL

J'utilise un serveur MySQL dédié. J'ai du rajouter, via PhpMyAdmin, un utilisateur 'root' (par exemple) avec tous les privilèges, pouvant se connecter depuis le serveur wiki.

Cela peut se faire aussi en ligne de commande en lancant :

mysql -u root -p

et en tapant ces instructions :

CREATE USER 'root'@'10.254.80.20' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.254.80.20' IDENTIFIED BY '********' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

Cet utilisateur sera à supprimer une fois la configuration terminée (voir plus bas) :

DROP USER 'root'@'10.254.80.20';

3.3/Renommage

La sous-arborescence /mediawiki/ dans l'URL ne me plait pas. Je la préfèrerais en /sono/ tout simplement. Il faut mettre à jour plusieurs choses.

D'abort modifier Mediawiki. J'ai choisi de concerver la possibilité de pouvoir ajouter plus tard d'autres wiki indépendants sur la même machine. Pour cela je conserve la base des fichiers du wiki, mais non configuré, et je la duplique sous un autre nom en conservant les droits existants des fichiers. Se connecter en 'root' et taper :

cd /var/lib
cp -rp mediawiki1.7 wikisono

Ensuite modifier Apache pour lui faire prendre en compte le nouveau nommage tout en préservant la possibilité d'ajouter d'autres wiki. Duplique la configuration :

cd /etc/mediawiki1.7/
cp apache.conf apache_sono.conf

Dans le fichier 'apache.conf', commenter la première ligne (alias) comme ceci :

#Alias /mediawiki /var/lib/mediawiki1.7

Modifier le fichier 'apache_sono.conf' en remplacent toutes les occurences de 'mediawiki1.7' par 'wikisono', et 'mediawiki' par 'sono'. Vous devez avoir un fichier ressemblant à ça :

Alias /sono /var/lib/wikisono

<Directory /var/lib/wikisono/>
        Options +FollowSymLinks
        AllowOverride All
        order allow,deny
        allow from all
</Directory>

# some directories must be protected
<Directory /var/lib/wikisono/config>
        Options -FollowSymLinks
        AllowOverride None
</Directory>
<Directory /var/lib/wikisono/upload>
        Options -FollowSymLinks
        AllowOverride None
</Directory>

Ajouter le lien dans Apache pour le nouveau wiki :

cd /etc/apache2/
ln -s /etc/mediawiki1.7/apache_sono.conf sites-enabled/002-wikisono

Redémarrer Apache :

/etc/init.d/apache2 restart

3.4/Première connexion, configuration

Se connecter au serveur avec cette adresse :

http://10.254.80.20/sono/

/clic_setup.png" border=0 alt="Entrer dans le setup" />

Cliquer sur 'setup the wiki'.

Sur la page de configuration, il faut maintenant renseigner les différentes valeurs. Certaines n'ont pas forçément d'importance, commme le nom du wiki, le contact mail, la langue, la licence, etc... Par contre, d'autres paramètres doivent être renseignés correctement, comme le compte admin et la configuration du serveur MySQL.

Valeurs automatiquement remplies :

  • PHP 5.2.0-8+etch7 installed
  • Found database drivers for: MySQL
  • PHP server API is apache2handler; ok, using pretty URLs (index.php/Page_Title)
  • Have XML / Latin1-UTF-8 conversion support.
  • PHP's memory_limit is 16M. If this is too low, installation may fail! Attempting to raise limit to 20M... ok.
  • Have zlib support; enabling output compression.
  • Neither Turck MMCache nor eAccelerator nor APC are installed, can't use object caching functions
  • Found GNU diff3: /usr/bin/diff3.
  • Found ImageMagick: /usr/bin/convert; image thumbnailing will be enabled if you enable uploads.
  • Found GD graphics library built-in.
  • Installation directory: /var/lib/wikisono
  • Script URI path: /sono
  • Environment checked. You can install MediaWiki.

Valeurs à renseigner :

  • Wiki name: WikiSono
  • Contact e-mail: webmaster@starend.org
  • Language: fr - Français
  • Copyright/license: Creative Commons license http://creativecommons.org/licenses/by-nc-sa/3.0/ (là c'est un choix très personnel ;-)
  • Admin username: webmaster IMPORTANT !!!
  • (Admin) Password: password IMPORTANT, à changer soigneusement!
  • (Admin) Password confirm: password
  • Shared memory caching: * No caching
  • E-mail features (global): * Disabled (si vous l'activez, toutes les valeurs e-mail deviennent disponibles)
  • Database type: * MySQL
  • Database host: mysql.starend.lan IMPORTANT !!! (là c'est mon serveur externe)
  • Database name: wikidb
  • DB username: wikiuser
  • DB password: password IMPORTANT, à changer soigneusement!
  • DB password confirm: password
  • Database table prefix: sono_
  • Database charset: * Backwards-compatible UTF-8
  • Superuser account: root IMPORTANT !!!
  • Superuser password: password (le mot de passe définit plus haut lors de la configuration de MySQL) IMPORTANT, à désactiver dès que possible!

Un petit truc pour générer un chouette mot de passe au compte 'wikiuser' :

date | md5sum

Valider le tout en cliquant sur le bouton [ Install MediaWiki! ]

3.5/Mise en place de la configuration

Si tout se passe bien, il ne reste qu'à mettre en place la nouvelle configuration, comme indiqué :

cd /var/lib/wikisono
mv config/LocalSettings.php .

A partir de là, le wiki est fonctionnel mais pas encore en ligne sur internet. Il est accessible à cette adresse :

http://10.254.80.20/sono/

/connexion_accueil_wiki.png" border=0 alt="Nouvel accueil wiki sono" />

3.6/Nettoyage

L'utilisateur MySQL 'root'@'10.254.80.20' n'est plus nécessaire. Il peut maintenant être supprimé. Voir plus haut.

3.7/Personnalisation et droits

Toute la configuration doit se faire dans le fichier '/var/lib/wikisono/LocalSettings.php'.

Première chose à changer, la plus façile, le logo. Copier une image (type PNG avec transparence, 135x135) dans '/var/lib/wikisono/', et modifier :

$wgLogo = "$wgScriptPath/logo.png";
/logo.png" border=0 alt="logo starend" />

Pour permettre le téléchargement (upload) d'images et de fichiers vers le serveur, mettre :

$wgEnableUploads = "true";

Et éventuellement ajouter la clé :

$wgFileExtensions = array('png', 'gif', 'jpg', 'jpeg', 'pdf');

Restreindre les visiteurs (anonymes) à la seule consultation des pages :

$wgGroupPermissions['*'    ]['read']            = true;
$wgGroupPermissions['*'    ]['edit']            = false;
$wgGroupPermissions['*'    ]['createpage']      = false;
$wgGroupPermissions['*'    ]['createtalk']      = false;

Interdire la création d'un compte à un visiteur, seul est permit la connexion avec un compte existant :

$wgGroupPermissions['*'    ]['createaccount']   = false;

Le wiki peut maintenant sereinement être ouvert au plublic :-)

3.8/Serveur derrière un reverse proxy

Bon, là, ça se complique un peu...

Pour mon cas perso, j'ai déjà un serveur web plus généraliste. Ce nouveau serveur web est spécifiquement dédié à l'hébergement du wiki. Et le serveur web généraliste est le point d'entrée obligatoire des connexions web. Il doit donc faire office de frontal de connexion web par rapport au wiki, un reverse-proxy en fait :-)

Et le wiki doit apparaitre dans un sous-répertoire 'virtuel' du site TechNIX, donc avec l'url http://technix.starend.org/sono/. Sur le serveur web frontal (qui héberge TechNIX en fait), modifier le fichier de configuration du site virtuel de TechNIX en ajoutant :

...
ProxyRequests Off
<Proxy *>
        Order deny,allow
        Allow from all
</Proxy>
ProxyPass /sono/ http://wiki.starend.lan/sono/
ProxyPassReverse /snon/ http://wiki.starend.lan/sono/
...

4/Authentification sur LDAP

A faire...

Actuellement, seul l'utilisateur 'webmaster' est déclaré.

5/Accès

Le wiki est accessible à cette adresse :

http://technix.starend.org/sono/

/wikisono.png" border=0 alt="Accueil wiki sono" />
Licence Creative Common 2007 :: BY-NC-SA :: Webdesign DENDIEVEL Stéphane