Installare mediawiki su Linux Mint

Qui di seguito le istruzioni per installare mediawiki su Linux Mint, il tutorial è stato verificato su Linux Mint 18.3 ad Agosto 2018, lo stesso procedimento può essere applicato anche a ubuntu.

INSTALLAZIONE LAMP su Linux Mint

INSTALLAZIONE DI APACHE WEB SERVER

sudo apt install apache2

controllare che il server sia attivo puntando su localhost.

INSTALLAZIONE DI MARIADB (o di mysql)

sudo apt install mysql-server

Impostare alcune norme di sicurezza di base:

sudo mysql_secure_installation

(e seguire a video, in genere basta confermare tutte le scelte e scegliere una password per root).

Creazione di un database con il suo utente

accedere alla console con password di root

   mysql -u root -p
NB: per ubuntu usare sudo mysql -u root -p altrimenti anche se la password di root è giusta non dà l'accesso

creare il database

   CREATE DATABASE mio_db;

creare l’utente con la sua password e i permessi su mio_db (se questo comando dà errore, vedere qui come creare l’utente separatamente e poi assegnarli i permessi)

   GRANT INDEX, CREATE, SELECT, INSERT, UPDATE, DELETE, ALTER, LOCK TABLES ON mio_db.* TO 'nomeutente'@'localhost' IDENTIFIED BY 'passwordutente';

oppure si può anche usare:

  GRANT ALL ON mio_db.* TO 'nomeutente'@'localhost' IDENTIFIED BY 'passwordutente';

poi

   FLUSH PRIVILEGES;
   exit;

INSTALLAZIONE DI PHP

sudo apt install php php-mysql php-pear php-gd php-mbstring php-intl libapache2-mod-php php-mcrypt php-curl

(Altri moduli php vengono installati automaticamente, eventualmente provare anche sudo apt install php-common)

al 16/02/2018 la versione 1.30 di mediawiki richiede php 5.5 o superiore, Mint 18.3 installa php7.

Creare un file info.php per verificare l’avvenuta installazione di php

testo da inserire in info.php creato con sudo nano /var/www/html/info.php

<?php

phpinfo();

?>

e puntare browser a localhost/info.php per verificare che appaiano le informazioni sulla versione e sui moduli installati

NB: la configurazione standard limita le dimensioni di file in upload a 2Mb, se necessario, aumentare il limite modificando il file php.ini (percorso completo: /etc/php/7.0/apache2/php.ini)

modificando la riga

UPLOAD_MAX_FILESIZE = 2M

ad esempio in

UPLOAD_MAX_FILESIZE = 64M

INSTALLARE E CONFIGURARE VISUAL EDITOR

L’estensione VisualEditor permette di avere un editor visuale molto più comodo per scrivere gli articoli senza dover scrivere in formato wikitesto.

scaricando l’ultima versione da https://www.mediawiki.org/wiki/Extension:VisualEditor

NB: scaricare sempre l’ultima versione dal link “Download snapshot” e che sia compatibile con la versione wiki scaricata (vers. 1.30 al 26/02/2018)

NB: installando in file di visual editor nella directory /var/www/html/nomewiki/extensions PRIMA di avviare l’installazione di mediawiki, sarà possibile selezionare VisualEditor insieme alle estensioni standard proposte

Dopo l’installazione di mediawiki, aggiungere al file /var/www/html/wiki/Localsettings.php le righe per la configurazione di VisualEditor

NB: fare copia/incolla da un file di testo semplice per evitare che eventuali caratteri non stampabili impediscano il funzionamento. Oppure usare un file di configurazione salvato da una installazione già funzionante.

wfLoadExtension( 'VisualEditor' );
 (aggiunta in automatico se installato durante la prima configurazione della wiki)

 // Enable by default for everybody
 $wgDefaultUserOptions['visualeditor-enable'] = 1;

 // Optional: Set VisualEditor as the default for anonymous users
 // otherwise they will have to switch to VE
 
 // $wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";

 // Don't allow users to disable it
 $wgHiddenPrefs[] = 'visualeditor-enable';

 // OPTIONAL: Enable VisualEditor's experimental code feature

 $wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;
Installare e configurare parsoid

Il servizio parsoid è richiesto per il funzionamento di VisualEditor

sudo apt install parsoid

NB. verificare la compatibilità di visual editor e parsoid l’uno con l’altro. Questa guida è stata scritta usando parsoid 0.8.0.all e mediawiki 1.30. Parsoid 0.9.0.all non è ancora compatibile con mediawiki 1.30, o meglio con il plugin visual editor da abbinare a mediawiki 1.30.

NB. In ubuntu sudo apt install parsoid non funziona, bisogna installare un repository aggiuntivo seguendo le istruzioni sul sito https://www.mediawiki.org/wiki/Parsoid/JS/Setup

Vedere questo articolo in caso di errore di “Errore parsoid 406

In caso di errore 500 o 550 verificare la configurazione yaml, o assicurarsi di aver riavviato i servizi dopo la fine della configurazione.

Fare una copia del file /etc/mediawiki/parsoid/config.yaml, per non perdere l’originale modificare la riga:

uri: 'http://localhost/w/api.php

in

uri: 'http://ip.wiki.ser.ver/nomewiki/api.php

Ovviamente “nomewiki” sarà il nome della cartella nella quale si trovano i file di installazione della wiki (ad esempio semplicemente nomewiki) scelto per la wiki.

Riavviare il servizio parsoid e apache

sudo service parsoid restart
sudo service apache2 restart

INSTALLAZIONE MEDIAWIKI

Scaricare l’ultima versione di mediawiki dal sito https://www.mediawiki.org/wiki/MediaWiki

Per le eventuali estensioni aggiuntive, assicurarsi di scaricare le versioni adatte alla versione scaricata.

Scompattare il pacchetto mediawiki.tar.gz scaricato in /var/www/html ed eventualmente rinominarlo con un nome adatto (ad esempio wiki, oppure knowledgebase): questo nome sarà il link della pagina home della medawiki puntanto un browser a http://ip.del.ser.ver/wiki , questo sistema permette anche di installare più wiki sullo stesso server.

mv mediawiki-1.30.0.tar.gz /var/www/html

scompattare

gunzip mediawiki-1.30.0.tar.gz

e poi

tar -xf mediawiki-1.30.0.tar.gz

rinominare in nome più semplice (es. wiki)

mv mediawiki-1.30.0 wiki

impostare l’utente www-data e il gruppo root per la cartella wiki e tutte le sottocartelle

NB: questa operazione va fatta anche sulle cartelle aggiunte dopo l’installazione, ad esempio se si aggiunge un’estensione.

chown -R www-data.root wiki

I permessi dovrebbero essere già a posto, in caso, tenere presente che per le cartelle dovranno essere 755 e 644 per i file. Per semplicità si potrebbe assegnare 755 a tutto (es. chmod -R 755 nomecartella)

Installare mediawiki tramite browser puntando a http://ip.del.ser.ver/wiki (se si sta facendo dal server stesso che fornisce il servizio wiki http://localhost/wiki)

Dalla pagina iniziale della wiki parte l’installazione guidata, in questa fase dovrebbe essere già tutto pronto, andranno inseriti il nome del database e il nome utente impostati nel punto “Creazione di un database con il suo utente” di questo guida.

Le scelte proposte sono tutte abbastanza intuitive, nel dubbio lasciare le impostazioni proposte di default.

In genere è utile impostare la wiki come ‘solo utenti registrati’ e, fra le estensioni di base proposte, installare le seguenti:

  • Cite: per inserire citazioni e loro note a piedipagina
  • InputBox: per inserire codice html per i moduli
  • Nuke: per le modifiche in massa di pagine
  • ParserFunctions: per usare variabili nel testo (usate da VisualEditor)
  • PdfHandler: per produrre file PDF dagli articoli a video
  • Renameuser: rinominare gli utenti
  • SyntaxHighlight_GeSHi: se serve evidenziare la sintassi del codice
  • TitleBlacklist: impedire la creazioni di titoli indesiderati
  • WikiEditor: editor un po’ più evoluto della semplice scrittura di wikitext, ma meno evoluto di VisualEditor

Tra le estensioni aggiuntive, oltre a VisualEditor, già visto in precedenza, sono utili le seguenti.

Se messe nella directory /var/www/html/wiki/extensions (assegnare permessi con chown a tutta la loro directory e sottodirectory) prima di lanciare la configurazione guidata, verranno proposte anche queste insieme a quelle standard

  • TemplateData: gestisce in modo visuale alcune caratteristiche dei template, si appaia bene a VisualEditor (non richiede righe di configurazione)
  • BlueSpicePageVersion: numera le varie versioni delle pagine (non richiede righe di configurazione)
  • Collection: per creare libri PDF (installazione un po’ laboriosa e da verificare).

Alla fine della configurazione va salvato il file Localsettings.php e messo nella directory /var/www/html/wiki del server che fornisce la wiki.

A questo punto la wiki dovrebbe essere pronta per l’uso.

Installazione di SEMANTIC MEDIA WIKI (opzionale)

Questa sezione può essere saltata se non è necessario installare le proprietà di “ricerca semantica”, l’aggiunta di proprietà semantiche è di aiuto nella ricerca, organizzazione, etichettatura, valutazione e condivisione dei contenuti della wiki.

Per aggiungere le caratteristiche elencate sopra, va installata l’estensione “semantic-media-wiki”. Le istruzioni qui riportate riguardano una installazione su un server locale per il quale si ha pieno accesso alla riga di comando. Per una installazione su un server ospitato da un provider, ci sono alcune variazioni: in quel caso fare riferimento al sito ufficiale di semantic media wiki

Installazione su server fisico

  1. Installare (come utente root) il tool composer per gestire dipendenze di pacchetti php sudo apt install composer
  2. Spostarsi nella directory principale della wiki interessata (la directory che contiene anche LocalSetting.php) e lanciare il comando (come root, anche se sconsigliato da un allarme a video)composer require mediawiki/semantic-media-wikiverrà installata la più recente versione disponibile, verificare con composer show | grep semantic che risulti installata l’estensione. NB: se si lancia il comando come utente non root l’estensione risulterà installata solo per quell’utente e non sarà visibile all’utente root, quindi neanche al motore mediawiki (per ovviare a questo ci sono istruzioni sul sito semantic media wiki, su come installare il file di configurazione in un path comune invece che nel solo path di root o dell’utente, metodo più pulito, ma non usato in questo caso).
  3. Sempre dalla directory base della wiki interessata, lanciare l’aggiornamento per le tabelle del database (magari fare prima una copia di sicurezza del DB)php maintenance/update.php
  4. Nel mio caso l’output è il seguente: luigi@macmini /var/www/html/wiki $ php maintenance/update.php MediaWiki 1.30.0 Updater mediawiki/semantic-media-wiki: 2.5.7 installed, ^2.5 required. mediawiki/semantic-result-formats: 2.5.5 installed, ^2.5 required. Error: your composer.lock file is not up to date. Run “composer update –no-dev” to install newer dependencies NON eseguire il comando il comando sudo composer update --no-dev
  5. Se non dovesse funzionare, allora riprovare con il seguente comando php maintenance/update.php –skip-external-dependencies Il motivo è descritto sul sito ufficiale semantic media wiki nelle FAQ
  6. Infine aggiungere in fondo al file LocalSettings.php l’istruzione enableSemantics( ‘server.dominio’ ); Dove server.dominio, naturalmente, è il nome del server che ospita la wiki (ad esempio l’IP del server nella rete interna LAN) . Diversamente da quanto di solito richiesto per l’installazione delle estensioni, in questo caso NON è necessaria una voce del tipo require_once ( … ); oppure wfLoadExtension( … ); nel file LocalSettings.php
  7. A questo punto il parser per i contenuti semantici è installato, e sarà possibile identificare e ricercare i contenuti adeguatamente marcati nel wikitesto utilizzando la nuova sintassi fornita dell’estensione semantic-media-wiki.

Il manuale on-line per semantic-media-wiki sarà raggiungibile anche dalla pagina Speciale:Versione della wiki interessata, scorrendo l’elenco delle estensioni installate e cliccando sul link di semantic-media-wiki

BACKUP del database e dei file mediawiki

Per il backup del database:

mysqldump -uutente -hlocalhost -ppassword my_wiki | gzip -c > my_wiki.gz

dove utente e password saranno il nome utente che ha i diritti sul database e la sua password. Il risultato è un file compresso con il database che potrà poi essere ripristinato su un altro server.

(‘utente’ e ‘password’ naturalmente vanno sostituiti con il nome utente che ha i diritti sul database e la sua password).

Per il backup dei file di configurazione e di eventuali file caricati:

tar -zcf /directory/destinazione/www_html_folder.tar.gz /var/www/html/

copia e comprime con tar.gz tutta la directory /var/www/html

esempio di script per il backup

#!/bin/bash  bckpdir=$(date +%Y%m%d_%H.%M)  mkdir /home/luigi/backupDBs/$bckpdir/  mysqldump -uroot -hlocalhost -ppassword my_wiki | gzip -c > /destinazione/backupDBs/$bckpdir/my_wiki_DB_$(date +%Y%m%d_%H.%M).gz  tar -zcf /destinazione/backupDBs/$bckpdir/www_html_folder_$(date +%Y%m%d_%H.%M).tar.gz /var/www/html/

copia nel percorso /destinazione/backupDBs il database e la directory /var/www/html in una sottodirectory il cui nome è YYYYMMDD_HH.MM ossia anno, mese, giorno_ora.minuto del backup. Lo stesso suffisso viene aggiunto ai nomi dei file compressi del database e dalla cartella dei file.

RIPRISTINO del database e dei file mediawiki

Su un server per il quale è stata già impostata tutta la parte LAMP:

Per ripristinare i file di mediawiki, basta scompattare in /var/www/html/directorywiki il contenuto della directory wiki di cui si ha il backup. Seguendo l’esempio di backup del punto precedente:

gunzip www_html_folder.tar.gz /var/www/html

poi

tar -xf www_html_folder.tar

Da ambiente grafico potrebbe essere più immediato, sfogliando il file compresso e ripristinando la cartella con il copia/incolla

Per ripristinare il database, dopo aver creato in fase di installazione della eventuale nuova LAMP il database con il suo utente, magari con lo stesso nome database (es. precedente my_wiki), nome utente e password dell’originale di cui si ha il backup:

entrare nella console di mysql come root con la sua password

mysql -u root -p

e poi dalla console (il cui prompt è mysql>) ripopolare il database con i dati del backup (NB: il punto e virgola nei comandi che seguono è necessario)

mysql> use my_wiki;

mysql> source /percorso/my_wiki_DB;

(/percorso/ deve indicare la directory in cui si trova il file di backup del database)