In questa guida provo a riassumere tutti i passaggi per installare mediawiki su Linux CentOS 7.
Non è proprio per principianti e alcune cose vengono date per scontate, in futuro cercherò di ampliarla.
In teoria è facile, basta installare il necessario per una LAMP, poi i file della mediawiki e le estensioni (Parsoid e VisualEditor) per la modifica visuale dei testi (per non dover scrivere in codice wikitext). Il problema più grosso su CentOS è che i repository ufficiali forniscono solo php 5.4, mentre per mediawiki serve almeno php versione 5.5. Ho cercato un po’ su qualche forum e ho riassunto tutto qui.
Le scritte in
testo preformattato
indicano i comandi da scrivere nel terminale
1. INSTALLARE UNA LAMP su CentOS7
1a. INSTALLAZIONE DI APACHE WEB SERVER
sudo yum install httpd
sudo systemctl start httpd.service
controllare che il server sia attivo puntando su localhost
sudo systemctl enable httpd.service
1b. INSTALLAZIONE DI MARIADB (o di mysql)
sudo yum install mariadb-server mariadb
sudo systemctl start mariadb
sudo mysql_secure_installation
(e seguire a video, in genere basta confermare tutte le scelte e
scegliere una password per root)
sudo systemctl enable mariadb.service
1c. CREAZIONE DI UN DATABASE CON IL SUO UTENTE
accedere alla console con password di root
mysql -u root -p
creare il database
CREATE DATABASE mio_db;
creare l’utente con la sua password e i permessi su mio_db
GRANT INDEX, CREATE, SELECT, INSERT, UPDATE, DELETE, ALTER, LOCK TABLES ON mio_db.* TO 'nomeutente'@'localhost' IDENTIFIED BY 'passwordutente';
FLUSH PRIVILEGES; exit;
possono essere utili i seguenti comandi (dopo essere entrati con mysql -u root -p) per vedere quali database sono presenti e i privilegi dei loro utenti.
SHOW DATABASES;
SHOW GRANTS FOR 'nomeutente'@'localhost';
1d. INSTALLARE PHP
(ATTENZIONE: al 26/02/2018 i repository CentOS standard forniscono
solo php versione 5.4, mentre la versione 1.30 di mediawiki richiede 5.5 o superiore
per installare php 7.2 da repository alternativi,seguire i passaggi successivi, tenendo conto che non
sarà possibile installare phpmyadmin.)
installare il repo Webtatic
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
installare moduli php7 da webtatic
(i nomi di tutti i pacchetti disponibili col nome modificato per php7 si trovano all’indirizzo
https://webtatic.com/packages/php72/)
esempio di installazione moduli più comuni: sudo yum install mod_php72w php72w-cli php72w-common php72w-gd php72w-mbstring php72w-mysqlnd php72w-xml php72w-intl
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: deve apparire la pagina di riepilogo. Se non appare niente, qualcosa non va.
2. INSTALLARE MEDIAWIKI
Scaricare l’ultima versione da https://www.mediawiki.org/wiki/MediaWiki scompattare i file e metterli nella directory base per apache, in genere /var/www/html
Io di solito rinomino la cartella assegnando il semplicemente il nome wiki.
A questo punto, andando su http://localhost/wiki dovrebbe iniziare la configurazione guidata di mediawiki.
Si può scegliere se lasciare la wiki aperta a tutti gli utenti, oppure dare il permesso di scrivere articoli solo agli utenti registrati. Andando a senso si può capire che è possibile installare alcune estensioni per gestire i pdf e altro. Se il server su cui si sta installando fa anche da server di posta si possono abilitare i messaggi in uscita e l’invio di messaggi fra utenti.
A fine configurazione verrà proposto di salvare il file Localsettings.php: scaricarlo e metterlo in /var/www/html/wiki nel server CentOS che si sta installando
3. INSTALLARE PARSOID
Ho trovato e adattato un tutorial da:
https://www.centos.org/forums/viewtopic.php?f=47&t=53223&p=225372#p225372
riporto di seguito i comandi in breve
su - yum install nodejs npm vim-enhanced git policycoreutils-python
(forse polycoreutils richiede installazione del repository epel)
cd ~
git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid cp -rv ~/parsoid /opt/ cd /opt/parsoid/ npm install
creare file /opt/parsoid/api/localsettings.js
e scriverci le seguenti righe
'use strict'; exports.setup = function(parsoidConfig) { parsoidConfig.setMwApi('nome_mia_wiki', { uri: 'http://base-url-of-your-wiki.com/api.php' }); };
naturalmente ‘nome_mia_wiki’ e ‘http://base-url-of-your-wiki.com/ vanno sostituiti con i nomi della wiki e del suo server
cd /opt/ chown -Rv root:root parsoid ... chmod -Rv u+rw,g+r,o+r parsoid ...
impostare contesto selinux per il servizio parsoid
Per fare le prove ed evitare un po’ di complicazioni ho temporaneamente disabilitato selinux e firewalld, e quindi saltato un po’ di comandi che seguono.
<saltato>
chcon -Rv –type=system_u:object_r:usr_t:s0 parsoid
aprire porta 8000 nel firewall
firewall-cmd –permanent –zone=public –add-port=8000/tcp
firewall-cmd –reload
permettere ad Apache di usare la porta 8000
semanage port -m -t http_port_t -p tcp 8000
permettere ad Apache di contattare parsoid
setsebool httpd_can_network_connect 0
</saltato>
creare il systemd per parsoid
vi /etc/systemd/system/parsoid.service
con dentro il testo seguente
[Unit] Description=Mediawiki Parsoid web service on node.js Documentation=http://www.mediawiki.org/wiki/Parsoid Wants=local-fs.target network.target After=local-fs.target network.target [Install] WantedBy=multi-user.target [Service] Type=simple User=root Group=root WorkingDirectory=/opt/parsoid # EnvironmentFile=-/etc/parsoid/parsoid.env ## riga originale del tutorial: non esisteva 'server.js' in directory api ##ExecStart=/usr/bin/node /opt/parsoid/api/server.js #sostituita con la seguente: ExecStart=/usr/bin/node /opt/parsoid/bin/server.js KillMode=process Restart=on-success PrivateTmp=true StandardOutput=syslog
INOLTRE (non era indicato nel tutorial che ho trovato) fare una copia del file /opt/parsoid/config.example.yaml, rinominandolo /opt/parsoid/config.yaml e modificare la riga:
uri: 'http://localhost/w/api.php in uri: 'http://ip.wi.ki.server/nomewiki/api.php
avviare il servizio
systemctl start parsoid.service
renderlo attivo a ogni avvio
systemctl enable parsoid.service
verificare che parta controllando il suo stato:
service parsoid status
4. INSTALLARE VISUAL EDITOR
Una volta che parsoid funziona, bisogna installare e configurare l’estensione Visual Editor
Scaricare l’ultima versione da https://www.mediawiki.org/wiki/Extension:VisualEditor
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). In pratica, per una nuova installazione procurarsi sempre insieme l’ultima versione sia di mediawiki che dell’estensione VisualEditor.
NB: installando i file di visual editor nella directory /var/www/html/wiki/extensions PRIMA di avviare l’installazione di mediawiki, sarà possibile selezionare VisualEditor insieme alle estensioni standard proposte nella configurazione guidata.
Aggiungere al file ‘/var/www/html/wiki/Localsettings.php’ le righe seguenti per la configurazione.
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)
di seguito la configurazione:
// 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 features #$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;
Infine aggiungere le seguenti righe per collegare Visual Editor al servizio parsoid
$wgVirtualRestConfig['modules']['parsoid'] = array( // URL to the Parsoid instance // Use port 8142 if you use the Debian package 'url' => 'http://localhost:8000', // Parsoid "domain", see below (optional) 'domain' => 'localhost', // Parsoid "prefix", see below (optional) 'prefix' => 'localhost' );
Riavviare parsoid e httpd per sicurezza:
sudo service restart parsoid sudo service restart httpd
A questo punto, entrando nella wiki sarà visibile la linguetta “Modifica” con cui si possono scrivere articoli modificando il testo in modo visuale, senza dover usare il codice wikitext.