MediaWiki

De OpenWikiBSD
Aller à : navigation, rechercher

Installation

Ubuntu

sudo apt-get install apache2 mysql-server php5 php5-mysql mediawiki
sudo vi /etc/mediawiki/apache.conf

Décommenter l'Alias

 sudo apache2ctl restart


OpenBSD

Le paquet Mediawiki n'existe plus.

cd /root/
pkg_add wget nginx php php-mysql  php-gd php-intl mariadb-client mariadb-server 
wget https://releases.wikimedia.org/mediawiki/1.29/mediawiki-1.29.0.tar.gz
mkdir -p  /var/www/conf/modules
ln -sf /var/www/conf/modules.sample/php-5.6.conf /var/www/conf/modules/php.conf
ln -sf /etc/php-5.6.sample/gd.ini /etc/php-5.6/gd.ini
ln -sf /etc/php-5.6.sample/intl.ini /etc/php-5.6/intl.ini
ln -sf /etc/php-5.6.sample/mysql.ini /etc/php-5.6/mysql.ini
cd /var/www
tar zxvf /root/mediawiki-1.29.0.tar.gz 
mv mediawiki-1.29.0/ mediawiki


  • Sur MySQL:
create database MBDD;
CREATE USER 'ADMINWIKI'@'localhost' IDENTIFIED BY 'PASS';
use mysql;
GRANT ALL PRIVILEGES ON MABDD.* TO 'ADMINWIKI'@'localhost' IDENTIFIED BY 'PASS';
exit;

Par défaut, sur OpenBSD, le nginx.conf contient une second directive root :

           root           /var/www/htdocs;

une fois décommentée et php-fpm installé et lancé, tout marche.

INstallez le cache apc :

pkg_add pecl-APC
    ln -sf /etc/php-5.4.sample/apc.ini /etc/php-5.4/apc.ini

Relancez php-fpm et NginX


mv /var/www/mediawiki/config/LocalSettings.php /var/www/mediawiki/
chmod 600 /var/www/mediawiki/LocalSettings.php

Migration

  • Faire une sauvegarde de la base
  • Faire une sauvegarde des fichiers
  • Restaurer les fichiers

Sur l'ancien serveur :

/usr/local/bin/mysqldump --user=root --host=localhost  --password=PASSROOTMYSQL MABDDWIKI  >  /root/MABDDWIKI.sql
tar zcvf /root/MABDDWIKI.Images.tar.gz /var/www/mediawiki/images

Sur le nouveau:

mysql MABDD < /root/MABDDWIKI.sql
tar zxvf /root/MABDDWIKI.Images.tar.gz
mv /PATH/mediawiki/images/* /var/www/mediawiki/images/

Droits & Config

  • MaJ de Mediawiki qui perd les accents et donc tous les liens...
UPDATE page set  page_title='Acceder_a_internet_depuis_son_IPhone_:_Iphone_en_Routeur_3G' WHERE page_id=160;
  • Une page inutile à supprimer ? Faites plutôt une redirection
  1. REDIRECT Nompage


Extensions

Mobile

wget https://extdist.wmflabs.org/dist/extensions/MobileApp-REL1_29-742caf7.tar.gz
tar zxvf MobileApp-REL1_29-742caf7.tar.gz 
mv MobileApp /var/www/mediawiki/extensions/
wget https://extdist.wmflabs.org/dist/extensions/MobileFrontend-REL1_29-00fab28.tar.gz
tar zxvf MobileFrontend-REL1_29-00fab28.tar.gz 
mv MobileFrontend /var/www/mediawiki/extensions/

Ajouter à LocalSettings.php

require_once "$IP/extensions/MobileApp/MobileApp.php";
wfLoadExtension( 'MobileFrontend' );
$wgMFAutodetectMobileView = true;

Et ça vous fait un WikiBSD tout beau sur mobile !

Authentification externe

DL l'extension

LDAP

  • Dans Localsettings.php
require_once("AuthPlugin.php");
require_once ("extensions/LdapAuthentication.php");
$wgAuth = new LdapAuthenticationPlugin();
$wgLDAPDomainNames = array(  'lyceenobel.org' );
#$wgLDAPDebug = 6;
$wgLDAPServerNames = array(  'lyceenobel.org' => 'ip' ); # Ajout autre serveur LDAP séparé par espace
$wgLDAPProxyAgent = array(   'lyceenobel.org' => 'cn=admin,ou=0932026x,ou=ac-creteil,ou=education,o=gouv,c=fr' );
$wgLDAPProxyAgentPassword = array('lyceenobel.org' => "pass");
$wgLDAPBaseDNs  = array( 'lyceenobel.org' => 'ou=0932026x,ou=ac-creteil,ou=education,o=gouv,c=fr' );
$wgLDAPEncryptionType = array( 'lyceenobel.org' => 'clear' );
$wgLDAPSearchStrings = array(  'lyceenobel.org' => 'uid=USER-NAME,ou=People,ou=0932026x,ou=ac-creteil,ou=education,o=gouv,c=fr' );
$wgLDAPRequiredGroups = array( "lyceenobel.org"=> array("cn=Profs,ou=Groups,ou=0932026x,ou=ac-creteil,ou=education,o=gouv,c=fr",
							"cn=admins,ou=Groups,ou=0932026x,ou=ac-creteil,ou=education,o=gouv,c=fr",
							"cn=administratifs,ou=Groups,ou=0932026x,ou=ac-creteil,ou=education,o=gouv,c=fr", )); # OK 

$wgLDAPGroupUseFullDN = array( "lyceenobel.org"=>false );
$wgLDAPGroupUseRetrievedUsername = array('lyceenobel.org' => false);
$wgLDAPLowerCaseUsername = array( "lyceenobel.org"=>true, );
$wgLDAPGroupAttribute = array( "lyceenobel.org"=>"memberUid" );
$wgLDAPGroupSearchNestedGroups = array( "lyceenobel.org"=>false );
$wgLDAPUseLDAPGroups = array( "lyceenobel.org"=>true );
$wgLDAPGroupNameAttribute = array( "lyceenobel.org"=>"cn" );


wget http://upload.wikimedia.org/ext-dist/LdapAuthentication-MW1.15-r45350.tar.gz

tar -xzf LdapAuthentication-MW1.15-r45350.tar.gz -C /var/www/mediawiki/extensions

require_once("AuthPlugin.php");
require_once ('extensions/LdapAuthentication/LdapAuthentication.php');
$wgAuth = new LdapAuthenticationPlugin();
$wgLDAPDomainNames = array('AD');
$wgLDAPServerNames = array('AD' => 'IP');
$wgLDAPProxyAgent = array('AD'=>'DN dun user autorisé à lire les OU');
$wgLDAPProxyAgentPassword = array('AD'=>'PASS');
$wgLDAPRequiredGroups = array( "AD"=>array('CN=PROF,OU=PROFESSEURS,OU=GROUPES,......'));
$wgLDAPEncryptionType = array( "AD"=>'false'); # clear/ssl
$wgLDAPGroupUseFullDN = array( "AD"=>true );
$wgLDAPGroupObjectclass = array( "AD"=>"group" );
$wgLDAPGroupAttribute = array( "AD"=>"member" );
$wgLDAPGroupSearchNestedGroups = array( "AD"=>true );
$wgLDAPGroupNameAttribute = array( "AD"=>"CN" );
$wgLDAPBaseDNs = array( "AD"=>"BaseDN" );
#$wgLDAPBaseDNs = array( "AD"=>"OU=PROFESSEURS,OU=UTILISATEURS,....." );
$wgLDAPSearchAttributes = array( "AD"=>"sAMAccountName" );
#$wgLDAPUseLocal = false;
$wgLDAPDebug = 99;
$wgDebugLogGroups["ldap"] = "/tmp/debug.log" ;

Configuration fine

  • Anonymous users can't create pages

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

  • Disable anonymous editing

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

  • Interdire la lecture des pages aux anonymes

$wgWhitelistRead = array("Main Page", "Accueil","Special:Userlogin", "-", "MediaWiki:Monobook.css" ); $wgGroupPermissions['*']['read'] = false;

  • Telechargements possibles

$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg' ,'3gp','rw3');

  • Logo

$wgLogo = "/skins/common/Logo.jpg";

  • Permettre l'upload de fichiers :
$wgEnableUploads = true;


Puis chown -R www.www Rep/mediawiki/images/

Divers

Logs cumulés d'accès....Sa e-reputation en fait

select sum(page_counter) from page;

+-------------------+ | sum(page_counter) | +-------------------+ | 667653 | +-------------------+

700 mille visites...Pas mal vue la ligne ADSL;-)

Bon, pour des raisons de performance, les stats en temps réel via page_counter sont désactivées depuis la version 1.25.

Vous allez devoir utiliser les logs web pour cet usage.

Debug

  • Soit vous rencontrez :
Sorry! This site is experiencing technical difficulties.
Try waiting a few minutes and reloading.
(Cannot contact the database server)
  • Soit une page blanche, avece rreur 500

==> Souci de résolution de nom : Dans Localsettings.php:

Remplacez localhost par 127.0.0.1 pour DbHost...

Ou $wgDBserver = "127.0.0.1";

Et mettre un fichier /var/www/etc/hosts ne suffit pas..

Oui, ça énerve!