{"id":367,"date":"2018-02-26T09:38:24","date_gmt":"2018-02-26T08:38:24","guid":{"rendered":"http:\/\/www.nimbo.it\/?p=367"},"modified":"2019-09-04T07:38:44","modified_gmt":"2019-09-04T05:38:44","slug":"installare-mediawiki-su-centos-7","status":"publish","type":"post","link":"https:\/\/www.nimbo.it\/index.php\/2018\/02\/26\/installare-mediawiki-su-centos-7\/","title":{"rendered":"Installare mediawiki su CentOS 7"},"content":{"rendered":"<p>In questa guida provo a riassumere tutti i passaggi per installare mediawiki su Linux CentOS 7.<\/p>\n<p>Non \u00e8 proprio per principianti e alcune cose vengono date per scontate, in futuro cercher\u00f2 di ampliarla.<!--more--><\/p>\n<p>In teoria \u00e8 facile, basta installare il necessario per una <a href=\"https:\/\/it.wikipedia.org\/wiki\/LAMP\" target=\"_blank\" rel=\"noopener noreferrer\">LAMP<\/a>, poi i file della <a href=\"https:\/\/www.mediawiki.org\/wiki\/MediaWiki\" target=\"_blank\" rel=\"noopener noreferrer\">mediawiki<\/a> e le estensioni (<a href=\"https:\/\/www.mediawiki.org\/wiki\/Parsoid\/Setup\" target=\"_blank\" rel=\"noopener noreferrer\">Parsoid<\/a> e <a href=\"https:\/\/www.mediawiki.org\/wiki\/Extension:VisualEditor\" target=\"_blank\" rel=\"noopener noreferrer\">VisualEditor<\/a>) per la modifica visuale dei testi (per non dover scrivere in codice <a href=\"https:\/\/it.wikipedia.org\/wiki\/Aiuto:Wikitesto\" target=\"_blank\" rel=\"noopener noreferrer\">wikitext<\/a>). Il problema pi\u00f9 grosso su CentOS \u00e8 che i repository ufficiali forniscono solo <a href=\"https:\/\/it.wikipedia.org\/wiki\/PHP\" target=\"_blank\" rel=\"noopener noreferrer\">php<\/a> 5.4, mentre per mediawiki serve almeno php versione 5.5. Ho cercato un po&#8217; su qualche forum e ho riassunto tutto qui.<br \/>\nLe scritte in<\/p>\n<pre>testo preformattato<\/pre>\n<p>indicano i comandi da scrivere nel terminale<\/p>\n<h5 style=\"text-align: center;\">1. INSTALLARE UNA LAMP su CentOS7<\/h5>\n<h5>1a. INSTALLAZIONE DI APACHE WEB SERVER<\/h5>\n<pre>sudo yum install httpd<\/pre>\n<pre>sudo systemctl start httpd.service<\/pre>\n<p>controllare che il server sia attivo puntando su localhost<\/p>\n<pre>sudo systemctl enable httpd.service<\/pre>\n<h5>1b. INSTALLAZIONE DI MARIADB (o di mysql)<\/h5>\n<pre>sudo yum install mariadb-server mariadb<\/pre>\n<pre>sudo systemctl start mariadb<\/pre>\n<pre>sudo mysql_secure_installation<\/pre>\n<p>(e seguire a video, in genere basta confermare tutte le scelte e<br \/>\nscegliere una password per root)<\/p>\n<pre>sudo systemctl enable mariadb.service<\/pre>\n<h5>1c. CREAZIONE DI UN DATABASE CON IL SUO UTENTE<\/h5>\n<p>accedere alla console con password di root<\/p>\n<pre> mysql -u root -p<\/pre>\n<p>creare il database<\/p>\n<pre> CREATE DATABASE mio_db;<\/pre>\n<p>creare l&#8217;utente con la sua password e i permessi su mio_db<\/p>\n<pre> GRANT INDEX, CREATE, SELECT, INSERT, UPDATE, DELETE, ALTER, LOCK TABLES ON mio_db.* TO 'nomeutente'@'localhost' IDENTIFIED BY 'passwordutente';<\/pre>\n<pre>FLUSH PRIVILEGES;\n\nexit;<\/pre>\n<p>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.<\/p>\n<pre> SHOW DATABASES;<\/pre>\n<pre>SHOW GRANTS FOR 'nomeutente'@'localhost';<\/pre>\n<h5>1d. INSTALLARE PHP<\/h5>\n<p>(ATTENZIONE: al 26\/02\/2018 i repository CentOS standard forniscono<br \/>\nsolo php versione 5.4, mentre la versione 1.30 di mediawiki richiede 5.5 o superiore<br \/>\nper installare php 7.2 da repository alternativi,seguire i passaggi successivi, tenendo conto che non<br \/>\nsar\u00e0 possibile installare phpmyadmin.)<\/p>\n<p>installare il repo Webtatic<\/p>\n<pre> sudo rpm -Uvh https:\/\/dl.fedoraproject.org\/pub\/epel\/epel-release-latest-7.noarch.rpm\n sudo rpm -Uvh https:\/\/mirror.webtatic.com\/yum\/el7\/webtatic-release.rpm<\/pre>\n<p>installare moduli php7 da webtatic<br \/>\n(i nomi di tutti i pacchetti disponibili col nome modificato per php7 si trovano all&#8217;indirizzo<br \/>\n<a href=\"https:\/\/webtatic.com\/packages\/php72\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/webtatic.com\/packages\/php72\/<\/a>)<\/p>\n<pre>esempio di installazione moduli pi\u00f9 comuni:\n sudo yum install mod_php72w php72w-cli php72w-common php72w-gd php72w-mbstring php72w-mysqlnd php72w-xml php72w-intl<\/pre>\n<p>creare un file info.php per verificare l&#8217;avvenuta installazione di php<\/p>\n<p>testo da inserire in info.php creato con sudo nano \/var\/www\/html\/info.php<\/p>\n<pre>&lt;?php phpinfo(); ?&gt;<\/pre>\n<p>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.<\/p>\n<h5 style=\"text-align: center;\">2. INSTALLARE MEDIAWIKI<\/h5>\n<p>Scaricare l&#8217;ultima versione da <a href=\"https:\/\/www.mediawiki.org\/wiki\/MediaWiki\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.mediawiki.org\/wiki\/MediaWiki <\/a>scompattare i file e metterli nella directory base per apache, in genere \/var\/www\/html<\/p>\n<p>Io di solito rinomino la cartella assegnando il semplicemente il nome wiki.<\/p>\n<p>A questo punto, andando su http:\/\/localhost\/wiki dovrebbe iniziare la configurazione guidata di mediawiki.<\/p>\n<p>Si pu\u00f2 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\u00f2 capire che \u00e8 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&#8217;invio di messaggi fra utenti.<\/p>\n<p>A fine configurazione verr\u00e0 proposto di salvare il file Localsettings.php: scaricarlo e metterlo in \/var\/www\/html\/wiki nel server CentOS che si sta installando<\/p>\n<h5 style=\"text-align: center;\">3. INSTALLARE PARSOID<\/h5>\n<p>Ho trovato e adattato un tutorial da:<br \/>\n<a href=\"https:\/\/www.centos.org\/forums\/viewtopic.php?f=47&amp;t=53223&amp;p=225372#p225372\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.centos.org\/forums\/viewtopic.php?f=47&amp;t=53223&amp;p=225372#p225372<\/a><\/p>\n<p>riporto di seguito i comandi in breve<\/p>\n<pre>su -\n\nyum install nodejs npm vim-enhanced git policycoreutils-python<\/pre>\n<p>(forse polycoreutils richiede installazione del repository epel)<\/p>\n<pre>cd ~<\/pre>\n<pre>git clone https:\/\/gerrit.wikimedia.org\/r\/p\/mediawiki\/services\/parsoid\n\ncp -rv ~\/parsoid \/opt\/\n\ncd \/opt\/parsoid\/\n\nnpm install<\/pre>\n<p>creare file \/opt\/parsoid\/api\/localsettings.js<\/p>\n<p>e scriverci le seguenti righe<\/p>\n<pre>'use strict';\n exports.setup = function(parsoidConfig) {\n\nparsoidConfig.setMwApi('nome_mia_wiki', { uri: 'http:\/\/base-url-of-your-wiki.com\/api.php' });\n\n};<\/pre>\n<p>naturalmente &#8216;nome_mia_wiki&#8217; e &#8216;http:\/\/base-url-of-your-wiki.com\/ vanno sostituiti con i nomi della wiki e del suo server<\/p>\n<pre>cd \/opt\/\n\nchown -Rv root:root parsoid\n ...\n chmod -Rv u+rw,g+r,o+r parsoid\n ...<\/pre>\n<p>impostare contesto selinux per il servizio parsoid<\/p>\n<p><em>Per fare le prove ed evitare un po&#8217; di complicazioni ho temporaneamente disabilitato selinux e firewalld, e quindi saltato un po&#8217; di comandi che seguono.<\/em><\/p>\n<p>&lt;saltato&gt;<\/p>\n<p>chcon -Rv &#8211;type=system_u:object_r:usr_t:s0 parsoid<\/p>\n<p>aprire porta 8000 nel firewall<\/p>\n<p>firewall-cmd &#8211;permanent &#8211;zone=public &#8211;add-port=8000\/tcp<br \/>\nfirewall-cmd &#8211;reload<\/p>\n<p>permettere ad Apache di usare la porta 8000<\/p>\n<p>semanage port -m -t http_port_t -p tcp 8000<\/p>\n<p>permettere ad Apache di contattare parsoid<\/p>\n<p>setsebool httpd_can_network_connect 0<\/p>\n<p>&lt;\/saltato&gt;<\/p>\n<p>creare il systemd per parsoid<\/p>\n<pre>vi \/etc\/systemd\/system\/parsoid.service<\/pre>\n<p>con dentro il testo seguente<\/p>\n<pre>[Unit]\n Description=Mediawiki Parsoid web service on node.js\n Documentation=http:\/\/www.mediawiki.org\/wiki\/Parsoid\n Wants=local-fs.target network.target\n After=local-fs.target network.target\n\n[Install]\n WantedBy=multi-user.target\n\n[Service]\n Type=simple\n User=root\n Group=root\n WorkingDirectory=\/opt\/parsoid\n # EnvironmentFile=-\/etc\/parsoid\/parsoid.env\n ## riga originale del tutorial: non esisteva 'server.js' in directory api\n ##ExecStart=\/usr\/bin\/node \/opt\/parsoid\/api\/server.js\n #sostituita con la seguente:\n ExecStart=\/usr\/bin\/node \/opt\/parsoid\/bin\/server.js\n KillMode=process\n Restart=on-success\n PrivateTmp=true\n StandardOutput=syslog<\/pre>\n<p>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:<\/p>\n<pre>uri: 'http:\/\/localhost\/w\/api.php\n in\n uri: 'http:\/\/ip.wi.ki.server\/nomewiki\/api.php<\/pre>\n<p>avviare il servizio<\/p>\n<pre>systemctl start parsoid.service<\/pre>\n<p>renderlo attivo a ogni avvio<\/p>\n<pre>systemctl enable parsoid.service<\/pre>\n<p>verificare che parta controllando il suo stato:<\/p>\n<pre>service parsoid status<\/pre>\n<h5 style=\"text-align: center;\">4. INSTALLARE VISUAL EDITOR<\/h5>\n<p>Una volta che parsoid funziona, bisogna installare e configurare l&#8217;estensione Visual Editor<\/p>\n<p>Scaricare l&#8217;ultima versione da <a href=\"https:\/\/www.mediawiki.org\/wiki\/Extension:VisualEditor\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.mediawiki.org\/wiki\/Extension:VisualEditor<\/a><br \/>\nScaricare sempre l&#8217;ultima versione dal link &#8220;Download snapshot&#8221; 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&#8217;ultima versione sia di mediawiki che dell&#8217;estensione VisualEditor.<br \/>\n<strong>NB<\/strong>: installando i file di visual editor nella directory \/var\/www\/html\/wiki\/extensions PRIMA di avviare l&#8217;installazione di mediawiki, sar\u00e0 possibile selezionare VisualEditor insieme alle estensioni standard proposte nella configurazione guidata.<\/p>\n<p>Aggiungere al file &#8216;\/var\/www\/html\/wiki\/Localsettings.php&#8217; le righe seguenti per la configurazione.<br \/>\n<strong>NB<\/strong>: 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\u00e0 funzionante.<\/p>\n<pre>wfLoadExtension( 'VisualEditor' );<\/pre>\n<p>(aggiunta in automatico se installato durante la prima configurazione della wiki)<\/p>\n<p>di seguito la configurazione:<\/p>\n<pre>\/\/ Enable by default for everybody\n $wgDefaultUserOptions['visualeditor-enable'] = 1;\n\n\/\/ Optional: Set VisualEditor as the default for anonymous users\n \/\/ otherwise they will have to switch to VE\n \/\/ $wgDefaultUserOptions['visualeditor-editor'] = \"visualeditor\";\n\n\/\/ Don't allow users to disable it\n $wgHiddenPrefs[] = 'visualeditor-enable';\n\n\/\/ OPTIONAL: Enable VisualEditor's experimental code features\n #$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;\n<\/pre>\n<p>Infine aggiungere le seguenti righe per collegare Visual Editor al servizio parsoid<\/p>\n<pre><span class=\"nv\">$wgVirtualRestConfig<\/span><span class=\"p\">[<\/span><span class=\"s1\">'modules'<\/span><span class=\"p\">][<\/span><span class=\"s1\">'parsoid'<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"k\">array<\/span><span class=\"p\">(<\/span>\n    <span class=\"c1\">\/\/ URL to the Parsoid instance<\/span>\n    <span class=\"c1\">\/\/ Use port 8142 if you use the Debian package<\/span>\n    <span class=\"s1\">'url'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\">'http:\/\/localhost:8000'<\/span><span class=\"p\">,<\/span>\n    <span class=\"c1\">\/\/ Parsoid \"domain\", see below (optional)<\/span>\n    <span class=\"s1\">'domain'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\">'localhost'<\/span><span class=\"p\">,<\/span>\n    <span class=\"c1\">\/\/ Parsoid \"prefix\", see below (optional)<\/span>\n    <span class=\"s1\">'prefix'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\">'localhost'<\/span>\n<span class=\"p\">);<\/span><\/pre>\n<p>Riavviare parsoid e httpd per sicurezza:<\/p>\n<pre>sudo service restart parsoid\nsudo service restart httpd\n<\/pre>\n<p>A questo punto, entrando nella wiki sar\u00e0 visibile la linguetta &#8220;Modifica&#8221; con cui si possono scrivere articoli modificando il testo in modo visuale, senza dover usare il codice wikitext.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questa guida provo a riassumere tutti i passaggi per installare mediawiki su Linux CentOS 7. Non \u00e8 proprio per principianti e alcune cose vengono date per scontate, in futuro cercher\u00f2 di ampliarla.<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"aside","meta":{"footnotes":""},"categories":[43,2,40,35],"tags":[],"class_list":["post-367","post","type-post","status-publish","format-aside","hentry","category-centos","category-linux","category-mediawiki","category-tutoriallinux","post_format-post-format-aside"],"_links":{"self":[{"href":"https:\/\/www.nimbo.it\/index.php\/wp-json\/wp\/v2\/posts\/367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nimbo.it\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nimbo.it\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nimbo.it\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nimbo.it\/index.php\/wp-json\/wp\/v2\/comments?post=367"}],"version-history":[{"count":23,"href":"https:\/\/www.nimbo.it\/index.php\/wp-json\/wp\/v2\/posts\/367\/revisions"}],"predecessor-version":[{"id":591,"href":"https:\/\/www.nimbo.it\/index.php\/wp-json\/wp\/v2\/posts\/367\/revisions\/591"}],"wp:attachment":[{"href":"https:\/\/www.nimbo.it\/index.php\/wp-json\/wp\/v2\/media?parent=367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nimbo.it\/index.php\/wp-json\/wp\/v2\/categories?post=367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nimbo.it\/index.php\/wp-json\/wp\/v2\/tags?post=367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}