Configuration MediaWiki pour Intranet + LDAP partie 2
Par WorldWarrior le mardi, août 11 2009, 15:18 - Logiciel - Lien permanent
Dans ce billet, je vais continuer la configuration de MediaWiki.
Configuration générale
Fichiers LocalSettings.php
La configuration générale de MediaWiki se fait par l'intermédiaire d'ajout de code dans le fichier LocalSettings.php.
Pour que tout fonctionne correctement, ne pas oublier de mettre dans LocalSettings.php :
#nom du serveur $wgServer="https://wiki.intranet.jpsystem.info";
Configuration Menu gauche
Vous avez la possibilité d'ajouter et d'agencer correctement les menus à gauche.
Pour cela, il suffit d'éditer la page MediaWiki:Sidebar
Liens : Navigation_bar
Liens
Liste des toutes les variables disponibles dans le fichiers LocalSettings.php :
En Français : Manual:Configuration_settings fr
En Anglais : Manual:Configuration_settings
LDAP Authentification
On veut utiliser un serveur LDAP pour l'authentification sur le Wiki.
Télécharger le plugin :
Copier le fichier LdapAuthentication.php dans le dossier extensions/LDAP/.
Puis :
chown www-data: LdapAuthentication.php
Activation du plugin
Ajouter ces lignes dans 'Localsettings.php' :
require_once( "$IP/extensions/LDAP/LdapAuthentication.php" ); $wgAuth = new LdapAuthenticationPlugin(); $wgLDAPDomainNames = array( "jpsystem" ); $wgLDAPServerNames = array( "jpsystem"=>"ldap.jpsystem.info" ); $wgLDAPUseLocal = false; $wgLDAPEncryptionType = array( "jpsystem"=>"clear" ); $wgLDAPSearchStrings = array( "jpsystem"=>"uid=USER-NAME,ou=people,o=jpsystem,dc=meta,c=fr" ); $wgLDAPBaseDNs = array( "jpsystem"=>"o=jpsystem,dc=meta,c=fr" ); $wgLDAPGroupBaseDNs = array( "jpsystem"=>"ou=Groups,o=jpsystem,dc=meta,c=fr" ); $wgLDAPUserBaseDNs = array( "jpsystem"=>"ou=people,o=jpsystem,dc=meta,c=fr" );
On configure ci-dessus le Wiki pour qu'il interroge le serveur LDAP dans la bonne branche.
Vérification du compte Administrateur
Pour la suite de la configuration, il nous faut vérifier qu'il existe un compte "Administrateur".
Pour cela, se connecter à la base de données du Wiki et vérifier le contenu de la table "user_groups".
select * from user_groups ;
Si la table est vide
mysql> select * from user_groups ; Empty set (0.00 sec)
Il faut repérer l'ID de l'utilisateur que l'on veut définir Administrateur :
mysql> select user_name, user_id from user ; +-+---+ | user_name | user_id | +-+---+ | wikiadm | 4 | | jpsystem | 2 | | titi | 3 | | toto | 1 | +-+---+ 4 rows in set (0.00 sec)
Ensuite il faut ajouter l'ID de l'utilisateur à la table « user_groups » avec le nom du groupe :
mysql> INSERT INTO user_groups VALUES('4','bureaucrat');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO user_groups VALUES('4','sysop');
Query OK, 1 row affected (0.00 sec)
mysql> select * from user_groups ; +-++ | ug_user | ug_group | +-++ | 4 | bureaucrat | | 4 | sysop | +-++ 2 rows in set (0.00 sec)
L'utilisateur wikiadm d'ID = 4, sera donc identifié comme Bureaucrate (c'est à dire comme appartenant au groupe de plus au niveau du Wiki (incluant Administrateur)).
Si cette table est remplie
Il suffit de repérer l'utilisateur ayant le bon user_id et de ce connecter avec.
Extension PdfExport
On va activer la possibilité d'exporter les pages en PDF.
Installation de htmldoc
$apt-get install htmldoc
Création de l'extension PdfExport
Créer le répertoire de l'extension :
cd /var/www/mediawiki/extension mkdir -p PdfExport/
Créer les deux fichiers suivant en copiant le contenu site : PdfExport
vi PdfExport.php vi PdfExport.i18n.php
Lien d'explication : Extension Pdf_Export
Modification du fichier PdfExport.php
Pour éviter les problèmes avec HTTPS activé. Avant :
#system("perl -pi -e 's/img src=\"https:\/\//img src=\"http:\/\//g' '$mytemp'");
Après :
system("perl -pi -e 's/img alt=\"\" src=\"/img alt=\"\" src=\"http:\/\/wiki.jpsystem.info/g' '$mytemp'");
Activation du module
Ajouter ce qui suit à 'LocalSettings.php' :
require_once("extensions/PdfExport/PdfExport.php");
L'extension est maintenant activée.
Extension PdfBook
On veut rajouter la possibilité d'exporter toutes les pages d'une catégorie en PDF dans un seule fichier et avec un sommaire.
Installation
Récupérer le fichier : Extension Pdf_Book
Mettre le fichier PdfBook.php dans le dossier "PdfBook".
Ajouter cela à la fin du 'LocalSettings.php' :
#Ajout de l'extension PdfBook require_once( "$IP/extensions/PdfBook/PdfBook.php" ); $serverWithoutHttps = 'http://wiki.jpsystem.info';
De plus, il faut modifier le fichier 'PdfBook.php' comme ceci, en rajoutant une variable globale :
Avant :
global $wgServer, $wgArticlePath, $wgScriptPath, $wgUploadPath, $wgUploadDirectory, $wgScript;
Après :
global $wgServer, $wgArticlePath, $wgScriptPath, $wgUploadPath, $wgUploadDirectory, $wgScript, $serverWithoutHttps;
Puis ici :
Avant :
$text = preg_replace('|(<img[^>]+?src=")(/.+?>)|', "$1$wgServer$2", $text); # make image urls absolute
Après :
$text = preg_replace('|(<img[^>]+?src=")(/.+?>)|', "$1$serverWithoutHttps$2", $text); # make image urls absolute
Template PdfBook
Pour afficher dans les pages des catégories la possibilité d'exporter une sélection d'article en PDF, il faut créer deux templates (modèles) :
- template:message
{|class="message"
{|style="color:#000000; width:100%; border:solid 1px #A8A8A8; padding:0.5em; margin:0.5em 0; background-color:#e9eaf9;font-size:95%; vertical-align:middle;"
|\{\{\{icon\}\}\}
|<div style=width:100%; text-align:center;>\{\{\{text\}\}\}</div>
|}
|}
- template:pdf
{{message|icon=[Image:Books.png\|60px]|text=Cette sélection d'articles peut être '[{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} téléchargée en PDF]' <small>(ou comme [{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook&format=html}} pages html])</small><br />
Vous pouvez aussi [https://fileserver.intranet.jpsystem.info/documents/ consulter directement le dossier de cette catégorie sur le serveur de fichier]<br>
}}
Ainsi dans toutes les pages de catégories, on va insérer ceci :{{pdf}}
ATTENTION : A cause de Dotclear, des caractères antislash apparaisse, il faut les enlever 
Cela va permettre d'exporter les articles en pdf, ainsi lorsque vous cliquerez sur le lien, vous pourrez télécharger un fichier contenant un sommaire et tous les articles de la catégorie.
Interdiction modification par utilisateur anonyme
Ajouter cela à la fin du LocalSettings.php :
$wgGroupPermissions['*']['edit']= false; $wgGroupPermissions['user']['edit'] = true;
Interdiction utilisateur non inscrit de voir les pages
Ajouter cela à la fin du LocalSettings.php :
$wgGroupPermissions['*']['read']= false; $wgGroupPermissions['user']['read'] = true;
Voila pour l'instant, le reste suivra dans un autre billet....
Commentaires
Bonjour,
Je suis en pleine recherche pour faire fonctionner mon mediawiki comme intranet de base de connaissance. Cependant pour la connexion à notre infrastructure Active Directory 2003, c'est la merde pas possible.
Il y a plein de documentation mais ils ne précisent que trop peu souvent si c'est pour du LDAP ou AD.
Quand je vois votre configuration, cela me fait un peu peur.
o=jpsystem,dc=meta
ne devrais meme pas y être. A la limite dc=jpsystem,dc=fr par exemple, mais le o ou le c ne sont pas utilisé pour AD.
Je fait donc appelle à votre aide pour m'éclairer un peu dans le noir
car j'obtiens toujours :
Erreur de connexion
Le mot de passe est incorrect. Veuillez essayer à nouveau.
Et impossible pour moi de trouver où se trouve le fichier de log
LDAP : 1.2b
MediaWiki 1.15.1
PHP 5.3.1 (apache2handler)
MySQL 5.1.41