Open Journal System per bibliotecari e tecnici informatici – I

Serie di articoli suddivisi in tre parti

I Installazione e introduzione rapida
II Server
III Temi e grafica

Installazione e introduzione rapida

Il sistema open source di gestione editoriale Open Journal System credo sia il più diffuso tra quelli destinati alla pubblicazione di riviste accademiche. Ne esistono altri da prendere in considerazione: Annotum, un tema di wordpress, che trovo interesssante perché contiene un editor per la versione xml degli articoli scientifici sviluppato della National Library of Medicine, ora JATS, e Ambra Project sistema editoriale alla base delle riviste PLOS.

La nostra scelta è caduta su OJS per la grande quantità di plugin in grado di esportare metadati in tutti i formati più diffusi. Potremmo dire che OJS è una piattaforma destinata alla gestione, acquisizione e distribuzione di contenuti scientifici. Il lavoro di impaginazione dei file, e la loro produzione nei diversi formati HTML, PDF o, se ci si accontenta, anche Word, deve essere svolto esternamente a OJS, con i consueti strumenti. In CLUEB utilizziamo un processo xml basato su DocBook, ma qualunque sistema tradizionale (QuarkXpress, InDesign o anche semplicemente un qualunque word processor con la possibilità di generare PDF) può andare benissimo.

Installare OJS 3+

Da qualche tempo è disponibile una versione di OJS (3.0 e successive) che, diversamente dalle precedenti, fa uso di Bootstrap. Questo framework consente lo sviluppo di temi personalizzati in modo semplice e veloce. Vediamo nelle linee generali come procedere all’installazione. Per lo sviluppo di un proprio tema si rimanda al nostro articolo ad esso dedicato.

Questo tutorial richiede una macchina linux, Mac OS o anche Windows, purché Windows 10 con installato il sottosistema linux ubuntu o suse (su linux per Windows leggete questa pagina del sito Microsoft. Direttamente dalla vostra console potrete gestire un server, o gruppi di server a seconda delle vostre esigenze.

Se conoscete git vi consigliamo di installare una copia di ojs su una directory dedicata. Copiate (con il comando “fork”) sul vostro account di github la pagina https://github.com/pkp/ojs. A questo punto:

mkdir ojs
git init
git clone --recurse-submodules https://github.com/<user>/ojs

É necessario aggiungere --recurse-submodules perché ojs contiene al proprio interno un sottomodulo lib-pkp. A questo punto seguite le indicazioni contenute in https://github.com/pkp/ojs/blob/master/README.md e installate i plugin necessari, utilizzando sia composer (un package manager per php) sia npm (package manager per il mondo javascript)
Se volete fare l’installazione su un MAC o una macchina windows vi consiglio di installare prima
MAMP o XAMPP. Avrete subito a disposzione anche il server web Apache (o nginx), un database e tutte le librerie PHP necessarie per usare OJS. Se volete fare da soli vi rimando alla prossima lezione dove tratteremo dettagliatamente la preparazione di un server Linux. Copiate i file nella directory MAMP/htdocs o XAMPP/htdocs. Prima di aprire il vostro browser sulla pagina localhost e iniziare l’installazione vera e propria, è necessario effettuare ancora qualche modifica.

Mettiamo da parte ora git, necessario solo se si vuole apportare cambiamenti importanti ai diversi plugin, e passiamo a discutere come scaricare e installare direttamente la versione già pronta per il download.

Scaricate sulla vostra macchina una copia di OJS, così da fare liberamente tutte le “prove” che vorrete prima di andare in “produzione” con un sito effettivamente aperto al pubblico.

mkdir tmp
curl -O http://pkp.sfu.ca/ojs/download/ojs-3.1.0-1.tar.gz

dove il numero della versione naturalmente dovrà essere l’ultima disponibile.

Estraete i file compressi

tar xzvf ojs-3.1.0.tar.gz

a questo punto copiate i file sulla directory del web server che avrete precedentemente installato. Vi consiglio di installare MAMP o XAMPP. Avrete subito a disposzione anche il server web Apache (o nginx), un database e tutte le librerie PHP necessarie per usare OJS. Se volete fare da soli vi rimando alla prossima lezione dove tratteremo dettagliatamente la preparazione di un server Linux.
Copiate i file nella directory MAMP/htdocs o XAMPP/htdocs.
Su linux nell’usuale configurazione con il server web che punta a /var/www/html/ avremo

sudo cp -a /tmp/ojs-3.0.1/. /var/www/html

Nella cartella /var/www/html/docs troverete ora una serie di file con descrizioni dettagliate su come fare l’installazione. Leggetele per trovare approfondimenti, queste pagine comunque dovrebbero essere sufficienti per un approccio iniziale.

Facciamo ora un digressione su autorizzazione e utenti. Il primo e fondamentale utilizzatore di un computer (o di un server) è l’amministratore (root nelle macchine linux che sono come al solito il punto di riferimento, gli altri sistemi operativi ne costituiscono delle derivazioni, compreso Windows) che accede con diritti di scrittura, lettura ed esecuzione su tutti i file. Le cartelle sono file a loro volta che per poter essere consultate bisogna avere i diritti di esecuzione (bisogna infatti poter eseguire il comando ls o i simili in altri sistemi operativi). L’amministratore crea gli altri utenti e assegna ad essi le necessarie autorizzazioni. Per comodità gli utenti sono suddivisi in gruppi sulla base delle loro attività. Quindi tutti i file, o programmi, che sono da considerare la stessa cosa, dispongono almeno di tre tipi di autorizzazioni (ce ne sono altre ma per il momento mettiamole da parte), quelle dell’autore del file, quelle del gruppo di utenti a cui appartiene l’autore, e infine quelle di tutti gli altri. Per l’esatta sintassi dei comandi e per i necessari approfondimenti vi rimando all’ottimo http://www.codecoffee.com/tipsforlinux/articles/032-1.html.

Fra gli utenti non ci siete solo voi o il collega sistemista che ha installato il sistema operativo, ma anche i diversi servizi come il web server, il database, il programma che consente l’accesso al server e così via (conosciuti normalmente come «daemon»). Il gruppo più importante è quello denominato sudo. Chi vi appartiene può svolgere anche compiti da amministratore, come ad esempio installare OJS. Il servizio di web server ha nome www-data.

Il problema della sicurezza si traduce in larga parte in un puntiglioso controllo di queste autorizzazioni. Dopo che l’utente myuser avrà copiato i file nella directory accessibile al server web i file saranno tutti di proprietà di myuser e appartenenti al gruppo myuser. Se dovete, come quasi sempre succede, consentire la scrittura e l’esecuzione di questi file all’applicazione PHP, sareste costretti a dare questi diritti a tutti, anche ad un indesiderato intruso. Se assegnate la proprietà del file, oltre che a voi anche al gruppo www-data potete consentire solo la lettura a tutti gli altri, aumentando così la sicurezza del server.

sudo chown -R myuser:www-data /var/www/html

al posto di myuser mettete il nome dell’utente, che probabilmente sarà il vostro.

Consentite la scrittura sulle seguenti cartelle (e relative sottocartelle):

sudo chmod -R g+w /var/www/html/cache
sudo chmod -R g+w /var/www/html/public
sudo chmod g+w /var/www/html/config.inc.php

create quindi una cartella, inaccessibile agli utenti web, ovvero fuori da /var/www/html, dove verranno caricati i file degli articoli (il nome è irrilevante, ad esempio usate files). Questa cartella dovrà ovviamente avere diritti di scrittura anche per l’applicazione, come si è detto prima.

sudo mkdir /var/www/files
sudo chmod -R g+w /var/www/files
sudo chown -R claudio:www-data /var/www/files

Controllate che tutti i pacchetti PHP necessari a OJS siano installati. Ad esempio su ubuntu 16.04 che di default presenta PHP 7.0 manca (novembre 2017) quello destinato all’xml e quello per l’mbstring.
sudo apt-get install php7.0-xml
sudo apt-get install php7.0-mbstring

Per rendere operativi questi programmi è necessario riavvare apache:

sudo systemctl restart apache2

A questo punto OJS è quasi pronto e dovete pensare al database MySQL. Se avete installato MAMP troverete facilmente le informazioni che dovrete inserire durante l’installazione di OJS. Negli altri casi controllate di avere un account con i diritti di accesso a MySQL.
Da terminale scrivete

mysql -u root -p

e quindi inserite la password che vi verrà chiesta. Se tutto funziona segnatevi i dati che tra un attimo vi verranno chiesti dal programma di installazione di OJS: il nome dell’host, che in questo caso sarà semplicemente localhost, lo user che accederà a MySQL, che sarà probabilmente root, con relativa password. Il nome del database non è necessario perché verrà creato in un secondo tempo, ma se preferite potete crearlo subito, comunicando poi al momento dell’installazione che lo avete già creato.
Andate ora con un browser alla pagina localhost e vi comparirà una pagina di installazione. Seguite le indicazioni e installate OJS. Il sito è pronto e potrete iniziare a caricare i vostri articoli. I dettagli editoriali non sono pochi e potrete leggerne alcuni in queste pagine.

Se una volta effettuata l’installazione avrete ancora problemi non esitate a scriverci. CLUEB è a vostra disposizione per informazioni come per lo sviluppo di soluzioni personalizzate di editoria web.