Table of Contents

Les fermes de wikis

Les fermes de wikis permettent d'avoir des wikis différents en utilisant un seul moteur Dokuwiki (pour ne pas avoir à ré-installer Dokuwiki à chaque fois). L'installation des templates et des plugins est partagées entre les différents wikis, mais chacun peut en utiliser des différents.

Il y a deux méthodes :

Pré-requis communs

1) Installer Dokuwiki

Installer un nouveau Dokuwiki qui sera le “farmer” (c'est lui qui aura le moteur Dokuwiki)

2) Récupérer le template "animal"

Créer un dossier ”wikis” à la racine de www sur le serveur FTP d'OVH.

Télécharger le template de ferme animal et le décompresser dans le dossier “wikis” précédemment créé.

Le dossier wikis doit maintenant contenir un dossier _animal.

Dans le cas d'une installation sur serveur mutualisé

Le chemin entré pour DOKU_FARMDIR doit être basé sur le “vrai” chemin du répertoire sur le serveur (comme indiqué par la variable PHP variable $_SERVER['DOCUMENT_ROOT']).

Pour connaître le chemin racine, créer un fchier docroot.php contenant le code ci-dessous :

docroot.php
<?php echo $_SERVER['DOCUMENT_ROOT']; ?>

Transférer ensuite ce fichier à la racine du site (dans www sur ovh par exemple) et accéder à la page via le navigateur (ex: http://monste.fr/docroot.php ). Cela affiche le chemin du dossier racine, par exemple :

/home/user/www 

Méthode 1 : Virtual Host

3) Renommer _animal

Renommer le dossier _animal avec l'url qu'aura la ferme en question. Par exemple, renommer le dossier en ferme1.hungryworlds.fr pour qu'il soit accessible à l'adresse http://ferme1.hungryworlds.fr.

Pour un wiki local sur la machine, choisir un nom de domaine sur lequel on ne compte pas aller, car l'url renverra ensuite vers le site local et non plus vers le site internet.
Par exemple : renommer le dossier _animal en ferme1.localweb.com.

4) Activer les fermes

Faire une copie du fichier \dokuwiki\inc\preload.php.dist et la renommer en preload.php.

Éditer le fichier, enlever les commentaires devant les 2 lignes de code et remplacer /var/www/farm par le chemin du répertoire wikiw sur le serveur* :

preload.php
<?php
/**
 * This is an example for a farm setup. Simply copy this file to preload.php and
 * uncomment what you need. See http://www.dokuwiki.org/farms for more information.
 * You can also use preload.php for other things than farming, e.g. for moving
 * local configuration files out of the main ./conf directory.
 */
 
// set this to your farm directory
if(!defined('DOKU_FARMDIR')) define('DOKU_FARMDIR', '/home/hungrywo/www/wikis');
 
// include this after DOKU_FARMDIR if you want to use farms
include(fullpath(dirname(__FILE__)).'/farm.php');
 
// you can overwrite the $config_cascade to your liking
//$config_cascade = array(
//);

* Par exemple :

5) Créer un sous-domaine chez l'hébegeur

Site hébergé

Dans le cas d'OVH, créer un nouveau sous-domaine du nom du site (par exemple ferme1.hungryworlds.fr) qui pointe sur le répertoire du wiki principal, le “farmer” (ex : ./dokuwiki).

Site local (avec Easy PHP)

Arrêter le serveur EASY PHP.

Ouvrir le dossier de configuration d'Easy PHP (clic droit sur l’icône de la barre des tâches > Configuration > Apache).

Ajouter des virtual hosts correspondant :

NameVirtualHost *
 
<VirtualHost *>
    ServerName ferme1.wiki.example.com
    DocumentRoot "${path}/data/localweb/dokuwiki"
</VirtualHost>

<VirtualHost *>
    ServerName ferme1.localweb.com
    DocumentRoot "D:\Websites\Fermes\Dokuwiki"
</VirtualHost>

Redémarrer le serveur Apache.

Modification du fichier Host

Éditer le fichier Host (C:\Windows\System32\drivers\etc\Hosts) pour ajouter la ligne :

127.0.0.1 ferme1.localweb.com

Maintenant la nouvelle ferme doit être accessible à l'adresse http://ferme1.localweb.com.

7) Administration

7a) Modifier le mot de passe admin

Par défaut, un compte “admin” est créé avec comme mot de passe “admin”. Se connecter avec ce compte et modifier le mot de passe et l'adresse internet.

7b) Modifier l'ACL

Par défaut, l'ACL est en modification pour “@All”, ce qui fait qui n'importe qui peu faire des modifications sans être connecté. Modifier l'ACL comme souhaité.

7b) Modifier la configuration

Modifier les éléments de configuration souhaités.

8) Ajouter d'autres wikis à la ferme

Ajouter un nouvel animal à la ferme en ajoutant un répertoire _animal puis en le renommant, par exemple, en ferme2.wiki.example.com.

Créer les sous-domaines correspondant dans m'interface OVH, en pointant toujours sur le répertoire Dokuwiki

Se loguer sur le nouveau wiki et modifier le mot de passe d'admin et l'ACL.

Méthode 2 : .htaccess

(Testé seulement sur serveur - à compléter pour que ça marche en local)

3) Renommer _animal

Renommer le dossier _animal avec le nom voulu. Par exemple, renommer le dossier “ferme1” pour qu'il soit accessible à l'adresse http://hungryworlds.com\wikis\ferme1.

4) Modifier local.protected.php

Dans le cas de l'installation avec htaccess, il faut enlever les commentaires pour la variable $conf['basedir'] dans le fichier conf/local.protected.php et la modifier avec le chemin url par lequel l'animal peut être accédé.

<?php
/**
 * These settings are "protected" and cannot be overwritten
 * by the configuration manager, but need to be edited manually.
 */
 
$conf['savedir'] = DOKU_CONF.'../data';
$conf['updatecheck'] = 0;
// if you're using the .htaccess base setup, set this to your animal's base directory:
$conf['basedir'] = '/wikis/ferme1/';

5) Activer les fermes

Faire une copie du fichier \dokuwiki\inc\preload.php.dist et la renommer en preload.php.

Éditer le fichier et enlever les commentaires devant les 2 lignes suivantes et remplacer /var/www/farm par le chemin du répertoire farm sur le serveur :

preload.php
<?php
/**
 * This is an example for a farm setup. Simply copy this file to preload.php and
 * uncomment what you need. See http://www.dokuwiki.org/farms for more information.
 * You can also use preload.php for other things than farming, e.g. for moving
 * local configuration files out of the main ./conf directory.
 */
 
// set this to your farm directory
if(!defined('DOKU_FARMDIR')) define('DOKU_FARMDIR', '/home/hungrywo/www/wikis');
 
// include this after DOKU_FARMDIR if you want to use farms
include(fullpath(dirname(__FILE__)).'/farm.php');
 
// you can overwrite the $config_cascade to your liking
//$config_cascade = array(
//);

6) Configurer le serveur

Créer un fichier .htaccess dans le dossier farm contenant :

.htaccess
RewriteEngine On

RewriteRule ^/?([^/]+)/(.*)  /dokuwiki/$2?animal=$1 [QSA]
RewriteRule ^/?([^/]+)$      /dokuwiki/?animal=$1 [QSA]
Options +FollowSymLinks

Note : modifier le chemin (”/dokuwiki/”) si le dokuwiki principal (farmer) n'est pas placé à la racine du serveur ou s'il a un autre nom.

7) Administration

Modifier le mot de passe admin

Par défaut, un compte “admin” est créé avec comme mot de passe “admin”. Se connecter avec ce compte et modifier le mot de passe et l'adresse internet.

Modifier l'ACL

Par défaut, l'ACL est en modification pour “@All”, ce qui fait qui n'importe qui peu faire des modifications sans être connecté. Modifier l'ACL comme souhaité.

Modifier la configuration

Modifier les éléments de configuration souhaités.