Archimista tips & tricks #14: Installare Archimista 2 server su linux [ubuntu]

Questa guida sostituisce integralmente la precedente (che per la versione 2 di archimista non è più valida).

Cercherò di rendere la guida il più generale possibile per poter funzionare su qualunque distribuzione e con qualunque scelta venga fatta (di database o altro).

Tuttavia io l’ho provata su Ubuntu 14.04 con mysql e apache+passenger come server web. Sequendo tutti i passaggi lì deve funzionare per forza😉
Per prima cosa è necessario installare alcuni prerequisiti software. Curl per poter usare RVM, imagemagick per la gestione degli oggetti digitali, wkhtmltopdf per la generazione dei report in PDF e alcune librerie per la compilazione delle diverse gemme di ruby.

sudo apt­-get install curl imagemagick wkhtmltopdf libcurl4­openssl­-dev libxml2­-dev libxslt­1-dev 

Come secondo passaggio bisogna installare RVM. RVM (Ruby Version Manager https://rvm.io/ ) permette e semplifica l’installazione e la gestione di diverse versioni di Ruby parallelamente. Se si preferisse installare in modo diverso ruby si può saltare direttamente al punto relativo alla installazione delle gemme.
Per installare RVM:

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable
echo "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile

Per una integrazione con il terminale di gnome e per permettere di usare rvm come funzione a pieno si veda https://rvm.io/integration/gnome-terminal
Infine controlliamo che tutte le componenti richieste da RVM siano presenti con

rvm requirements

Installiamo la versione di ruby richiesta da Archimista 2.0, ossia ruby 2.1.5

rvm install 2.1.5
rvm use --default 2.1.5

Scarichiamo lo zip dell’ultima versione di Archimista da github

wget https://github.com/ProgettoArchimista/archimista/archive/master.zip
unzip master.zip

Verrà creata una cartella chiamata archimista-master. Rinominatele come vi pare, entrate dentro la cartella e installiamo prima bundle e poi le gemme dichiarate nel Gemfile

cd archimista-master
gem install bundle
bundle install

Per motivi di sicurezza il secret_key usato da devise per l’autenticazione (salvataggio della sessione etc) non è incluso direttamente nei sorgenti, per cui generiamone uno con il comando

rake secret

E copiamolo in un nuovo file in config/secrets.yml.
Il file sarà qualcosa simile a:

production:
  secret_key_base: ilnostrocodice

Scegliere e installare il database da usare. Archimista supporta sqlite, mysql, postgresql. Qui di seguito si installerà dai repository di ubuntu mysql.
NB la gemma di postgres non è inclusa nell’elenco del Gemfile, sicchè se intende usare postgres installate poi anche la relativa gemma con gem install pg

sudo apt­-get install mysql­-server mysql­-client libmysqlclient­-dev

settare il database in config/database.yml prendendo a modello quello disponibile in config/database-example.yml

nel caso di mysql il file ottenuto sarà qualcosa come:

production:
  adapter: mysql2
  host: 127.0.0.1
  encoding: utf8
  database: archimista_production
  pool: 5
  username: root
  password: miapassword
  socket: /tmp/mysql.sock

Purtroppo nel caso di mysql e di rails 4.2.1 c’è un problemino con la gemma mysql2.
Per cui dobbiamo editare il file Gemfile e al posto di gem ‘mysql2’ inserire gem ‘mysql2’, ‘~> 0.3.18’ a questo punto con bundle install installeremo la versione della gemma che funziona con il nostro rails.

Attualmente (11/12/15) non sono incluse nei sorgenti le cartelle per i file temporanei di import e export degli AEF. Senza queste l’importazione e l’esportazione fallirà. In attesa che siano aggiunte ai sorgenti creiamole manualmente:

mkdir tmp/exports
mkdir tmp/imports

Controlliamo che i permessi siano settati correttamente

ruby permissions.rb

Creiamo e popoliamo il database

rake db:setup RAILS_ENV=production

Precompiliamo i vari “assets” (fogli di stile etc):

rake assets:precompile RAILS_ENV=production

A questo punto Archimista 2.0 è installato. Per avviarlo, stando dentro la cartella di Archimista, possiamo usare il server interno di rails (thin) avviandolo con il comando

rails server -e production

e collegandoci all’indirizzo localhost:3000

Questa soluzione può andare bene per un uso locale. Ma per un uso condiviso in rete forse si preferisce qualche server più stabile e performante. Ci sono diverse alternative, quella che ho usato io è l’accoppiata passenger + apache.

Installiamo apache dai repository:

sudo apt-get install apache2 apache2-dev libapr1-dev libaprutil1­-dev

Installiamo passenger:

gem install passenger
passenger-install-apache2-module

L’installer controllerà se i requisiti sono presenti e procederà alla compilazione. Al termine ci fornirà alcune righe da inserire nella configurazione di apache. Su ubuntu si consiglia di inserire queste istruzioni in un nuovo file

sudo nano /etc/apache2/mods-available/passenger.load

E poi attivare il modulo con

sudo a2enmod passenger

Creare un file di configurazione per apache:

sudo nano /etc/apache2/sites-available/archimista.conf

Inseriamo una configurazione di questo genere, dove
/usr/local/webapps/archimista/public dipende da dove si sono installati i sorgenti di archimista.

<VirtualHost *:80>
  ServerName localhost
  DocumentRoot /usr/local/webapps/archimista/public
  <Directory /usr/local/webapps/archimista/public>
    Require all granted
    Options -MultiViews
  </Directory>
</VirtualHost>

Se si vuole usare una porta diversa da 80, esempio 3000, ricordarsi di aprirla in /etc/apache2/ports.conf
Infine abilitare la configurazione con

sudo a2ensite archimista.conf

e riavviare apache

Un pensiero su “Archimista tips & tricks #14: Installare Archimista 2 server su linux [ubuntu]

  1. Pingback: Archimista tips & tricks #8: installare Archimista server su linux (reload) [ubuntu 14.04] | Frammenti Semantici

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...