Guida pratica, come installare MediaWiki

3 giugno 2012 , , ,
Guida pratica, come installare MediaWikiè stato aggiornato il 13 dicembre 2013
Autore: Luciano Del Fico 2 Commenti

Questo documento è una guida per installare MediaWiki, anche se riferita ad una versione precedente a quella attuale, è pur sempre uno strumento valido ed indicativo per eseguire una corretta installazione e configurazione. Si ringrazia l’autore e la fonte di questo documento it.wikibook.org. Si cercherà di dare un’idea di come installare e configurare MediaWiki sul proprio web server.

Mediawiki 300x250 Guida pratica, come installare MediaWiki

La documentazione di MediaWiki si evolve più velocemente di quanto gli autori di questo documento possano scrivere. La documentazione ufficiale e gli aggiornamenti del software si trovano a questi indirizzi:

<a title="http://meta.wikimedia.org" href="http://meta.wikimedia.org/" rel="nofollow">Wikimedia Meta</a>
<a title="http://www.mediawiki.org/wiki/MediaWiki/it" href="http://www.mediawiki.org/wiki/MediaWiki/it" rel="nofollow">Documentazione Italiana di MediaWiki</a>
<a title="http://vec.wikipedia.org/wiki/Aiuto:Guida_esenzsia%C5%82e/Link" href="http://vec.wikipedia.org/wiki/Aiuto:Guida_esenzsia%C5%82e/Link" rel="nofollow">Guida Essenziale</a>
Appunti Vari Beppe Levi
<a title="http://www.mediawiki.org/wiki/MediaWiki/it" href="http://www.mediawiki.org/wiki/MediaWiki/it" rel="nofollow">Mediawiki</a>

Consultare la Guida utente per maggiori informazioni sull’uso di questo software wiki.

Per iniziare

I seguenti collegamenti sono in lingua inglese:

Cos’è MediaWiki

MediaWiki è un software libero basato sulla filosofia wiki, scritto in PHP e basato su un database relazionale e MySQL.

Ai namespace di MediaWiki possono essere applicati permessi in modo tale da creare aree la cui visione o modifica siano permessi soltanto ad un certo gruppo di utenti.

Lista completa delle funzioni di MediaWiki

Applicazioni

MediaWiki è la soluzione ottimale per chi ha necessità di gestire un gran numero di documenti, senza problemi di compatibilità software né grandi pretese hardware; viene altresì usato come CMS da molti webmaster, che lo usano per costruire i loro siti web.

Chi può trarre vantaggio dall’uso di mediawiki:

  • gruppi/aziende con molti documenti interni, il cui aggiornamento è affidato a diverse persone, anche a distanza, con gruppi di pagine visibili o modificabili soltanto da determinati gruppi di persone;
  • gruppi/aziende il cui sito web dev’essere aggiornato molto spesso da persone diverse;

Chi non trarrà vantaggio dall’uso di mediawiki:

  • chi ha bisogno delle funzioni di un forum, quasi inesistenti su MediaWiki;

Installazione

Procurarsi il software da http://www.mediawiki.org/

# cd /var/www/htdocs

# questa cartella può variare a seconda della distribuzione GNU/Linux usata

# tar xzvf mediawiki-1.5.3.tar.gz
# mv mediawiki-1.5.3 mediawiki
# cd mediawiki
# chmod a+w config

Aprire in un browser la pagina mediawiki*/config/index.php e compilare i campi:

nome_wiki Il nome del progetto; appare nel titolo delle pagine e in diversi messaggi di sistema.
email L’indirizzo di riferimento per gli utenti del wiki; è anche il mittente delle email inviate agli utenti dal software;
lingua la lingua predefinita dell’interfaccia; gli utenti possono selezionarne un’altra dalle loro preferenze;
licenza La licenza sotto cui rilasciare i contenuti del wiki; chi usa MediaWiki per un wiki privato, preferirà probabilmente non compilare questa sezione, mentre dovrebbe sempre essere compilata da chi pubblica i suoi contenuti su Internet (vedi: contenuto libero).
sysop questa sezione specifica i dati d’accesso dell’utente che amministra il wiki; questo utente può in seguito permettere ad altri utenti di svolgere le funzioni di amministrazione;
cache per rendere più veloce il funzionamento di MediaWiki, è possibile usare memCached, Turck MMcache oppure eAccelerator.
funzioni e-mail è possibile disattivare tutte le funzioni che coinvolgono l’invio di messaggi email; l’impostazione può essere modificata in seguito;
user to user e-mail è possibile disattivare l’invio di email tra un utente e l’altro attraverso il wiki; l’impostazione può essere modificata in seguito;
e-mail notification è possibile disattivare le notifiche via email dei cambiamenti delle pagine; l’impostazione può essere modificata in seguito;
e-mail autentication è possibile disattivare l’autenticazione degli indirizzi email; disattivando questa funzione, gli utenti potranno inserire tra i loro dati qualunque indirizzo di posta elettronica, anche non funzionante; l’impostazione può essere modificata in seguito;
database config in questa sezione vanno inseriti i dati per accedere al database necessario a MediaWiki; è possibile inserire un prefisso davanti a tutte le tabelle, nel caso sia necessario installare diverse istanze di MediaWiki nello stesso database sullo stesso server; è necessaria la password di root di MySQL;
root (completare)

Dopo questa configurazione, è necessario mettere il file creato dalla procedura di configurazione nella cartella principale di MediaWiki

# mv config/LocalSettings.php

(per sicurezza, bloccare l’accesso alla cartella di configurazione)

# chmod a-w config

Configurare MediaWiki

La parte più lunga della creazione di un wiki è la sua configurazione. In questo documento si affrontano le problematiche più comuni. Si vedano anche le FAQ di MediaWiki. Si tenga presente che i file e i percorsi indicati sono soltanto di esempio.

Configurazione PHP in CGI

Per la corretta configurazione PHP fare riferimento a questo manuale (Inglese)

Messaggi di sistema

Nonostante la procedura di installazione permetta di selezionare la lingua dell’interfaccia predefinita, è necessario personalizzare i messaggi di sistema, in modo da tradurre le parti rimaste in inglese ed eliminare i riferimenti a Wikipedia. La pagina Special:Allmessages mostra tutti i messaggi di sistema.

Link brevi

Per fare in modo che gli URL del wiki cambino

  • da http://localhost/mediawiki/index.php/Pagina_principale
  • http://localhost/wiki/Pagina_principale.

Nel file LocalSettings.php inserire:

$wgArticlePath = "/wiki/$1";

Nel file /etc/apache/httpd.conf, alla sezione alias, inserire:

Alias /wiki /var/www/htdocs/mediawiki/index.php
Alias /index.php /var/www/htdocs/mediawiki/index.php

Controllare che il modulo rewrite (mod_rewrite) sia caricato all’avvio di apache.

Riavviare il server web.

Interlink

Per modificare il funzionamento degli interlink (ad esempio [[en:MediaWiki]] oppure [[meta:MediaWiki]]) bisogna agire sulla tabella interlinks nel database.

Ad esempio, per fare in modo che gli interlink “Wikipedia:” puntino a it.wiki (mentre l’impostazione predefinita punta en.wiki), è sufficiente il comando:

mysql> UPDATE interwiki SET iw_url="http://it.wikipedia.org/wiki/$1" WHERE iw_prefix="WikiPedia";

All’interno della cartella maintenance di Mediawiki, è presente un file che contiene gli interlink utilizzati dai progetti Wikimedia; per importarli nel proprio database, è sufficiente il comando

mysql> source /var/www/htdocs/mediawiki/maintenance/wikipedia-interwiki.sql

Upload

$wgEnableUploads		= true;
$wgUseImageResize		= true;
# estensioni di file ammesse
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'pdf', 'ogg',
                           'sxd', 'std', 'sxm', 'sxg', 'sxi', 'sti',
                           'sxc', 'stc', 'sxw', 'stw',               # OpenOffice.org 1.0
                           'odt', 'ods', 'odp'                       # Open Document Format
                         );
# estensioni di file non ammesse
$wgFileBlacklist = array(
       'html', 'htm', 'js', 'jsb', 'php', 'phtml', 'php3', 'php4', 'phps', 'shtml', 'jhtml',
       'pl', 'py', 'cgi', 'exe', 'scr', 'dll', 'msi', 'vbs', 'bat', 'com', 'pif', 'cmd',
       'vxd', 'cpl', 'doc', 'dot', 'xls', 'xlt', 'ppt', 'pps', 'pot', 'mp3', 'divx' );

Permessi

Impedisce agli utenti non loggati di creare nuovi utenti (tra quelli loggati, di default soltanto i sysop possono creare nuovi utenti) (modificando LocalSettings.php)

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

Richiede login per editare (modificando LocalSettings.php)

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

Aggiunta di namespace (modificando LocalSettings.php)

$wgExtraNamespaces = array(100 => "Associazione", 101 => "Discussioni_associazione");

Restrizione del namespace ad un determinato privilegio

  • prima parte: patchare mediawiki
# cd mediawiki/
# wget bugzilla.wikimedia.org/attachment.cgi?id=1451&action=view -O rra-patch.txt
# patch -b -p1 < rra-patch.txt
  • seconda parte: cambiare LocalSettings.php
$wgRestrictedNamespaces = array(100 => "ns1", 101 => "ns2");
# aggiunta del gruppo soci con privilegi di accesso al namespace ristretto
$wgGroupPermissions['soci' ]['ns1']             = true;
$wgGroupPermissions['soci' ]['ns2']             = true;

Aspetto del sito

Le skin si trovano nella cartella skins/ e quella predefinita è MonoBook. Per personalizzarla, è possibile modificare le voci MediaWiki:Monobook.css (fogli di stile) e MediaWiki:Monobook.js (javascript). Ogni utente potrà a sua volta personalizzare l’interfaccia di MediWiki modificando le voci Utente:Foobar/Monobook.css e Utente:Foobar/Monobook.js.

Per alcuni esempi, vedi anche meta:User styles e fi:Wikipedia:Summary.

Ad esempio, per attivare i bordi arrotondati nell’interfaccia di MediaWiki (funziona soltanto nei browser basati su gecko) basta inserire in MediaWiki:Monobook.css:

#p-cactions ul li, #p-cactions ul li a {
  -moz-border-radius-topleft: 1em;
  -moz-border-radius-topright: 1em;
}
#content {
  -moz-border-radius-topleft: 1em;
  -moz-border-radius-bottomleft: 1em;
}
div.pBody {
  -moz-border-radius-topright: 1em;
  -moz-border-radius-bottomright: 1em;
}

Per cambiare il logo in alto a sinistra:

# cp /.../Logo_del_sito.png /.../mediawiki/skins/common/images/.

Nel file LocalSettings.php inserire:

$wgLogo = '$wgStylePath/common/images/Logo_del_sito.png';

Sintassi TeX

Prima di questa operazione, è necessario aver installato Ocaml, ImageMagick, LaTeX, GhostScript.

Nel file LocalSettings.php inserire:

$wgUseTeX = true;

Per installare la funzione:

# cd math/
# make

A operazione conclusa, un’espressione come <math>a^2+b^2=c^2</math> viene resa correttamente.

Installare Ocaml

Procurarsi il software da http://caml.inria.fr/

# cd
# tar -xjvf ocaml*.tar.bz2
# cd ocaml*
# ./configure
# make world
# make opt
# make install

Installare teTeX

Procurarsi il software da http://www.tug.org/tetex/ …la versione 3 di teTeX richiede un download di circa 100 Mb, mentre il pacchetto precompilato per Slackware circa 50 (vedi “ricerca tarball” su http://www.slackit.org).

Sottopagine nei namespace

Attiva sottopagine per alcuni namespace (modificando LocalSettings.php)

$wgNamespacesWithSubpages = array(
       100       => 1,
       101       => 1
);

TimeZone

# modifica timezone per visualizzare ora italiana
$wgLocalTZoffset = 1;

Patrolling

# disabilita il patrolling
$wgUseRCPatrol = false;

Altri settaggi

# lunghezza minima delle password
$wgMinimalPasswordLength = 6;
# non visualizza l'IP del visitatore anonimo
$wgShowIPinHeader = 0;

Aggiornamento

É buona regola mantenere aggiornato il software, soprattutto se installato su macchine pubbliche (es: siti web). Su http://www.mediawiki.org sono disponibili gli aggiornamenti del software MediaWiki; gli sviluppatori si preoccupano di rilasciare un aggiornamento ogni volta che vengono risolti problemi o aggiunte funzionalità.

Prima di tutto é necessario fare un backup di tutti i dati presenti nel proprio database: se si utilizza phpMyAdmin si potrà fare un’immagine dei propri dati in modo semplice e veloce: si rimanda alla documentazione del programma su come fare un export dei dati.

Dopo aver scaricato l’ultima versione, è consigliabile bloccare temporaneamente il wiki per evitare che qualcuno modifichi le voci durante l’aggiornamento. Per farlo è sufficiente inserire el file LocalSettings.php l’istruzione:

$wgReadOnly = "<em>motivazione</em>";

Perché la procedura di aggiornamento funzioni è necessario specificare i dati di un utente mysql in grado di modificare il database nel file AdminSettings.php

Per creare un utente in grado di amministrare solo il database del wiki:

mysql> GRANT ALL PRIVILEGES ON wikidb.* TO 'mwadmin'@'localhost' IDENTIFIED BY 'password';

In seguito basta sovrascrivere i file vecchi con quelli aggiornati ed avviare la procedura di upgrade.

# tar xzvf mediawiki-1.5.7.tar.gz
# cp -rp mediawiki-1.5.7/* mediawiki/.
# cd mediawiki/maintenance/
# php update.php

Se tutto va bene, il wiki è aggiornato. Può essere necessario troncare la tabella objectcache

mysql> TRUNCATE TABLE objectcache;
  • Può essere necessario purgare le pagine prima che vengano visualizzate correttamente, ad esempio caricando index.php?action=purge
  • Ricordarsi di applicare nuovamente le patch che si erano applicate alla precedente installazione di MediaWiki! In particolare, se presente, Restricted Access!

Mediawiki su Php 5

Su alcuni server potrebbero verificarsi problemi nell’uploads delle immagini, per risolvere il problema occorre modificare il LocalSettings.php.

Cercare:

## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
$wgEnableUploads = false;
# $wgUseImageMagick = true;
# $wgImageMagickConvertCommand = "/usr/bin/convert";

Sostiuire con:

## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
$wgEnableUploads = true;
$wgUseImageMagick = false;
$wgImageMagickConvertCommand = "/usr/bin/convert";
## If you want to use image uploads under safe mode,
## create the directories images/archive, images/thumb and
## images/temp, and make them all writable. Then uncomment
## this, if it's not already uncommented:
$wgHashedUploadDirectory = false;

Creare infine (se non esistono già) le directory images/archive, images/thumb e images/temp, e renderle scrivibili.