Un Wiki chez Free

De ORSWiki
Aller à : navigation, rechercher

Comment installer un wiki sur son site perso. chez Free

MédiaWiki est le moteur de Wikipédia, Wikipédia est une instance de MédiaWiki, la plus célèbre. Pour installer un wiki fonctionnant comme Wikipédia sur son site perso. chez free, il faut faire trois choses : d'une part, installer MédiaWiki en local sur son poste de travail, en le faisant tourner avec une pile LAMP (en particulier PHP/MySQL), EasyPHP étant le moyen le plus simple d'y parvenir. Ensuite vous devez activer votre base de données chez Free (cela peut prendre quelques jours). Enfin, vous devez transférer le code source PHP de MédiaWiki sur votre site perso., ainsi que les tables (et éventuellement les premières données saisies en local). Détaillons chaque étape.

Installation de MediaWiki en local

Voici le guide d'installation : www.mediawiki.org/wiki/Manual:Installation_guide/fr

Avant de commencer l'installation, vous devez savoir qu'il existe une différence entre vos bases de données MySQL en local et celle hébergée sur votre espace perso. Free : en local, chacune de vos bases MySQL est située dans un dossier différent, alors que sur votre espace perso. Free, vous n'avez en fait qu'une seule base MySQL, ce qui fait que si vous voulez héberger plusieurs applications de base de données, vous devez préfixer vos tables selon chacun de vos projets pour faciliter leur gestion, sinon vous obtiendrez une pagaille inextricable. Une autre différence est que vous n'avez pas autant de droits sur votre base hébergée, que sur vos bases locales (et vous n'avez pas non plus la même confidentialité des données : en principe, les pages perso. de Free sont réservées à des sites perso., et non à des sites commerciaux, qui contiendraient des données sensibles).

Vous devez cocher "Use superuser account" et préciser le compte root avec son mot de passe correspondant, de façon à créer automatiquement la base wiki en local.

Vous devez donc préfixer les tables : "Database table prefix" : par exemple wiki_, pour les regrouper plus facilement une fois qu'elles seront hébergées chez Free.

Vous pouvez aussi remplacer la ligne admin@localhost en votre.courriel@free.fr

Si vous souhaitez après coup déplacer le dossier web du wiki, par exemple renommer mediawiki-1.15.1 en wiki, il faudra modifier dans LocalSettings.php la rubrique suivante :

 $wgScriptPath = "/mediawiki-1.15.1";
 ->
 $wgScriptPath = "/wiki";

Si vous obtenez l'erreur suivante, alors éditez le fichier php.ini comme ci-dessous :

Warning: A value for session.save_path has not been set in PHP.ini. If the default value causes problems with saving session data, set it to a valid path which is read/write/execute for the user your web server is running under.

Correction du fichier php.ini, dans le cas de Windows :

 session.save_path = C:\windows\temp

Ajoutez les lignes suivantes si vous souhaitez rendre obligatoire l'identification des utilisateurs qui modifient ou créent des pages et rendre impossible l'inscription automatique (c'est conseillé pour limiter le wikispam, quoique cela n'est pas fait sur Wikipédia en français) :

 $wgGroupPermissions['*']['edit'] = false;
 $wgShowIPinHeader = false;

Pour modifier le logo de votre wiki, ajouter une ligne au fichier LocalSettings.php (la casse doit être respectée, une fois en ligne) :

 $wgLogo = "{$wgScriptPath}/MonLogoWiki.jpg";

Une fois que votre wiki fonctionne parfaitement en local, vous pouvez passer à l'étape suivante :

Installation de MediaWiki son site perso. chez Free

Il faut d'abord activer votre base de données chez Free, pour cela rendez-vous dans votre interface de gestion (Mon compte), à la rubrique Activer votre base de données MySQL.

La base sera activée au bout de quelques jours, elle peut alors être gérée via :

http://sql.free.fr/phpMyAdmin

Chez Free, la version de PHP activée par défaut est PHP4 mais vous pouvez activer PHP5 en créant un fichier .htaccess à la racine de votre site et en y plaçant simplement la ligne suivante : php 1

http://wiki.free.fr/wiki/index.php/Php5

Pour créer un fichier avec un nom vide sous Windows, il y a une astuce (ce n'est pas permis via l'interface graphique) : créez d'abord un fichier vide.htaccess contenant php 1, puis ouvrez une fenêtre "Invite de commandes" MS-Dos et renommez le fichier vide.htaccess en .htaccess dans son dossier :

 rename vide.htaccess .htaccess

Prévoyez une configuration locale et distante de la base de données dans LocalSettings.php :

 // Configuration locale désactivée : entre commentaires
 /*
 $wgDBserver         = "localhost";
 $wgDBname           = "wikidb";
 $wgDBuser           = "MonCompteMySQL";
 $wgDBpassword       = "MonMotDePasseMySQL";
 */
 // Configuration Free activée
 $wgDBserver         = "sql.free.fr";
 $wgDBname           = "monprenom_monnom";
 $wgDBuser           = "monprenom.monnom"; // Login de votre compte Free
 $wgDBpassword       = "MonMotDePasseFree"; // Mot de passe de votre compte Free

Via le PHPAdmin local (de EasyPHP), exportez toutes les tables MySQL générées lors de l'installation de WikiMédia, en mode compressé. Via le PHPAdmin de Free, importez-les dans votre base distante chez Free.

Ensuite recopiez tout le dossier wiki local sur votre espace personnel chez Free, dans un dossier portant exactement le même nom, par exemple wiki, au moyen d'un client FTP, par exemple FileZilla (le transfert peut prendre quelques minutes, car il y a des milliers de fichiers PHP et autres, et il serait complexe de les mutualiser avec tous ceux qui veulent un wiki sur leur page perso., à cause des fichiers de configuration). Exemple :

C:\EasyPHP5.3.0\www\wiki

vers :

http://monprenom.monnom.free.fr/wiki/

Enfin créez un répertoire vide nommé "sessions" sur la racine de votre site Web (et non dans le dossier wiki), sans ça, vous aurez des messages d'erreurs dans les pages wiki affichées.

Installation de MediaWiki sur place

Une autre façon d'installer MediaWiki est de copier tous les fichiers d'origine sur le FTP, puis d'ouvrir la page wiki directement sur place : le wiki saura que c'est une installation, et prendra en charge toutes les étapes via un assistant, et à la fin vous proposera de télécharger le fichier LocalSettings.php avec les options choisies dans l'assistant : une dernière vérification puis le re-téléchargement de ce fichier sur le FTP terminera l'installation, ce qui est très simple.

Comment faire des sauvegardes des données MySQL

Vous pouvez d'une part utiliser la page utilitaire proposée par Free :

http://sql.free.fr/backup.php

Vous obtiendrez un fichier de la forme :

monprenom_monnom-2010-03-10-11-56-47.gz

Vous pouvez d'autre part utiliser la page correspondante de PHPAdmin de Free, avec le même effet : vous obtenez par exemple un fichier monprenom_monnom[1].sql.zip.

Vous pouvez enfin utiliser WGet, ce qui permet en outre d'automatiser les sauvegardes :

 wget http://sql.free.fr/backup.php --post-data="login=monprenom.monnom&password=MonMotDePasseFree&check=1&all=1" -O backup.sql.gz

WGet pour Windows peut être téléchargé ici :

www.clubic.com/telecharger-fiche11202-wget.html

Pour vérifier que la sauvegarde est correcte, commencer par rétablir la configuration locale de LocalSettings.php :

 // Configuration locale activée
 $wgDBserver         = "localhost";
 $wgDBname           = "wikidb";
 $wgDBuser           = "MonCompteMySQL";
 $wgDBpassword       = "MonMotDePasseMySQL";
 // Configuration Free désactivée : entre commentaires
 /*
 $wgDBserver         = "sql.free.fr";
 $wgDBname           = "monprenom_monnom";
 $wgDBuser           = "monprenom.monnom"; // Login de votre compte Free
 $wgDBpassword       = "MonMotDePasseFree"; // Mot de passe de votre compte Free
 */

Ensuite réimportez le fichier de sauvegarde via le PHPAdmin local, pour cela vous devez d'abord supprimer la base wikidb locale au préalable, puis en recréer une autre vide, puis réimporter le fichier monprenom_monnom[1].sql.zip dans cette base vide wikidb.

Mais cette méthode est limitée à 2 Mo. Pour dépasser cette limite, vous pouvez utiliser un script utilisant directement MySQL, par exemple :

 C:\EasyPHP5.3.0\mysql\bin\mysql.exe -uroot -pMonMotDePasseRootMySQLLocal -D wikidb < backup.sql

Cette fois, vous n'avez pas besoin de supprimer la base locale wikidb au préalable, ce sera fait automatiquement, il y a juste le fichier backup.sql.gz à décompresser en backup.sql au préalable, par exemple via IZArc.


Voici un exemple de batch complet pour la sauvegarde de votre wiki chez free ainsi que sa restauration dans votre wiki local (synchronisation du wiki local par le wiki distant) :

@echo off
echo. 
echo. 
echo Recuperation des bases MySQL chez Free (Ctrl-C pour abandonner)
echo ***************************************************************
pause
echo on

wget http://sql.free.fr/backup.php --post-data="login=MonEmail@MonFAI.fr&password=MonMotDePasse&check=1&all=1" -O backup.sql.gz

@echo off
echo. 
echo. 
echo Decompression de la sauvegarde MySQL
echo ************************************
echo on

"C:\Program Files\7-Zip\7z.exe" e -y backup.sql.gz

@echo off
echo. 
echo. 
echo Remplacer la base WikiDb locale par cette sauvegarde ? (Ctrl-C pour ab.)
echo ************************************************************************
pause
echo on

C:\EasyPHP5.3.0\mysql\bin\mysql.exe -uroot -pMonMotDePasse -D wikidb < backup.sql

@echo off
echo. 
echo. 
echo Synchronisation effectuee avec succes !
echo *************************************
pause

Comment réinstaller un wiki en local ?

Bon votre wiki fonctionne depuis plusieurs années, un jour vous avez besoin de changer d'ordinateur et il vous faut réinstaller votre version locale de votre wiki. Vous n'avez pas besoin de tout ce bla-bla, il vous faut un résumé pour refaire l'installation d'un seul coup :


Réinstaller EasyPHP-5.3.0-setup.exe en changeant le chemin :

C:\Program Files\EasyPHP5.3.0
en :
C:\EasyPHP5.3.0


Puis, Administration sur bouton droit dans l'icône EasyPHP dans les tâches en cours, puis cliquer sur PHPMYADMIN, puis Privilèges, cocher root, puis sur le bouton à droite : "Changer les privilèges"

Puis saisir deux fois votre mot de passe root puis Exécuter.

Si vous n'avez pas le message suivant, ce n'est pas bon : "Le mot de passe de 'root'@'localhost' a été changé."


Tout quitter, sinon vous obtenez logiquement l'erreur : « MySQL a répondu: #1045 - Acc?s refus? pour l'utilisateur: 'root'@'@localhost' (mot de passe: NON) phpMyAdmin a tenté de se connecter au serveur MySQL, et le serveur a rejeté la connexion. Veuillez vérifier les valeurs de "host", "username" et "password" dans votre configuration et vous assurer qu'elles correspondent aux informations fournies par l'administrateur du serveur MySQL. »


Ensuite éditer le fichier suivant avec par exemple WordPad ("C:\Program Files\Windows NT\Accessoires\wordpad.exe", le bloc-notes ne gérant pas bien ces sauts de ligne) : C:\EasyPHP5.3.0\phpmyadmin\config.inc.php et changer le password et AllowNoPassword de la façon suivante :

$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'MonMotDePasse';
$cfg['Servers'][$i]['AllowNoPassword'] = false;


Relancer PHPMYADMIN : vérifier la connexion MySQL (rafraîchir le navigateur s'il y a toujours le message d'erreur).


Puis passer à l'installation de mediawiki-1.15.1.tar.gz

Dezipper puis déplacer par exemple dans :

C:\EasyPHP5.3.0\www\WikiLocal

et depuis EasyPHP lancer "web local" puis cliquer sur WikiLocal pour lancer l'installation du wiki :

Wiki : WikiLocal
MonEmail@MonFAI.fr
fr - Français
WikiSysop : MonMotDePasse
wikiuser : MonMotDePasse
Vous devez cocher "Use superuser account"
Il faut mettre le même préfixe que votre wiki chez free pour pouvoir récupérer les sauvegardes !
Database table prefix : wiki_

Puis faites comme indiqué à la fin de l'installation, c'est-à-dire déplacer :

C:\EasyPHP5.3.0\www\WikiLocal\config\LocalSettings.php
vers :
C:\EasyPHP5.3.0\www\WikiLocal\LocalSettings.php

Votre wiki est maintenant installé. Si la restauration (voir la rubrique précédente) ne s'affiche pas alors qu'il n'y a aucune erreur, penser à vous connecter au wiki sous votre compte utilisateur habituel !

Comment éviter le WikiSpam ?

Depuis Novembre 2011, des personnes peu scrupuleuses s'amusent à se faire de la pub. pour leur site web en créant une page sur mon propre wiki ! Une première solution à ce problème peut être la suivante : désactiver la création de nouvelle page pour les utilisateurs qui n'ont pas encore validé leur courriel (il semble qu'ils ne le font pas, ou qu'ils n'y arrivent pas, car je reçois des notifications d'erreur de courriel de confirmation de leur adresse : "Undelivered Mail Returned to Sender" : "Connection timed out") : Le paramètre wgEmailConfirmToEdit=false de \includes\DefaultSettings.php doit être changé en true dans la configuration locale de LocalSettings.php :

 /**
  * Should editors be required to have a validated e-mail
  * address before being allowed to edit?
  */
 $wgEmailConfirmToEdit=true;

En consultant l'historique des pages crées, il est clair que cela n'est pas suffisant ! Pour aller plus loin, il est suggéré dans le manuel plusieurs solutions, voici celle que j'ai retenue : Seules les administrateurs pourront éditer les pages, il suffit alors de préciser qui est administrateur (on peut aussi créer un groupe des éditeurs, pour faire moins brutal) :

 Restrict editing by all non-sysop users :
 Requires that a user be a member of the administrators (sysop) usergroup.
 $wgGroupPermissions['*']['edit'] = false;
 $wgGroupPermissions['user']['edit'] = false;
 $wgGroupPermissions['sysop']['edit'] = true;
 Setting user groups in MediaWiki :
 INSERT INTO wiki_user_groups (ug_user, ug_group) VALUES ('YOUR_USER_ID', 'bureaucrat'); 
 INSERT INTO wiki_user_groups (ug_user, ug_group) VALUES ('YOUR_USER_ID', 'sysop');

Mise à jour de MediaWiki

(17/08/2016) La dernière version de MédiaWiki est la 1.27.0, mais la dernière version compatible avec le dernier EasyPHP disponible sans trojan (en tout cas selon VirusTotal, à savoir EasyPHP-DevServer-14.1VC11-install.exe) est la 1.26.3, c'est donc celle-là que je vais installer pour remplacer ma vieille version 1.15.1.

La première étape est de télécharger sur le FTP (upload) de free les 11000 fichiers de MédiaWiki (10997 exactement). Vous pouvez par exemple renommer votre ancien dossier wiki en wiki_old, puis réutiliser le dossier wiki pour le nouveau wiki, pour conserver toutes les URL.

Ensuite, il faut créer un nouveau fichier .htaccess contenant seulement "php56 1" (sans les guillemets, avec un retour à la ligne) qu'il faut mettre dans le répertoire wiki.

Ensuite, naviguer sur le lien /wiki/mw-config de votre site (par exemple sur mon site ce serait http://patrice.dargenton.free.fr/wiki/mw-config) et suivez les instructions : votre fichier LocalSettings.php va être détecté puis mis à jour, ainsi que votre base de données. Si par mégarde vous écrasez votre fichier LocalSettings.php corrigé, voici les info. qu'il doit notamment contenir, dans mon cas (il y a juste la ligne wgServer qui est nouvelle) :

 $wgServer = "http://patrice.dargenton.free.fr";
 $wgDBtype = "mysql";
 $wgDBserver = "sql.free.fr";
 $wgDBname = "patrice_dargenton";
 $wgDBuser = "patrice.dargenton";
 $wgDBpassword = "[MonMotDePasse]";
 $wgDBprefix = "wiki_";

Voilà, c'est tout ! La migration de la base de données s'est passée sans aucun problème, c'est fantastique !

Lien externe

Cette page est une mise à jour de l'excellente page :

Comment installer MediaWiki sur son site perso. chez Free ?

http://piblo29.free.fr/wiki/index.php?title=MediaWiki_chez_Free