Skip to topic | Skip to bottom
Home

TechWeb11
TechWeb11.RoR4Dummiesr1.8 - 17 May 2011 - 15:03 - SaverioGiallorenzotopic end

Start of topic | Skip to actions
Ho parlato con Gioele riguardo a Ruby on Rails che ha chiarito la situazione e ha suggerito di abbandonare Ruby on Rails per usare Sinatra che e' anch'esso un framework simile a Rails, senza tutti i problemi che questo si porta dietro.

Il consiglio e' usare Sinatra con CGI di Apache.


Anticipo per tutti: Sto studiando TechWeb?, quindi è (MOLTO) probabile che scriva castronerie, fregnacce e cazzabubbole (cit.) di sorta, riporto di seguito un metodo artigianale che ho (finalmente!) trovato per avere la propria applicazione scritta in Ruby On Rails (RoR?) funzionante e raggiungibile all'indirizzo nomegruppo.web.cs.unibo.it. Attenzione: è una soluzione brutta, stupida, inelegante e probabilmente poco usabile. Riporto di seguito la mia esperienza tramite un esempio per creare la prima pagina del proprio progetto.

Creare l'ambiente

Molto semplice. Andiamo nella directory cgi-bin e lasciamo che Rails faccia il lavoro sporco per noi con rails nomeProgetto. Rails provvederà a creare la cartella principale di progetto e tutte le sottocartelle nelle quali andremo a scrivere il nostro progetto.

Istruire Apache

Se ho ben capito (e qui vado veramente a tentoni) sul dominio nomegruppo.web.cs.unibo.it gira un server Apache col compito di re-direzionare le chiamate alle singole pagine del gruppo verso lo spazio relativo /home/web/nomegruppo dove sono presenti i file html, i cgi, ecc... Il problema nasce proprio dal fatto che il progetto su RoR? gira su un server indipendente (Mongrel o Webrick) che accetta connessioni su una coppia indirizzo:porta (0.0.0.0:3000 di default) relativi alla macchina che le esegue (in laboratorio) e non del server "a monte" che invece instrada il nostro traffico dall'esterno. Facendola breve, dopo un po' di prove ho scoperto, con grande gioia, che bastava schiaffare un file .htaccess nella cartella html che re-direzioni qualsiasi chiamata all'indirizzo nomegruppo.web.cs.unibo.it sull'indirizzo:porta della macchina su cui gira il server rails (si, non è dinamico. E si, è un trucco, brutto e assolutamente schifoso). L'htaccess in questione contiene queste poche righe:
RewriteEngine   on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule     (.*) http://nomemacchina.cs.unibo.it:3000/$1 [P]

Lanciare il demone legato

Ora non rimane che lanciare il webserver come un demone che starà in background nell'attesa di soddisfare le richieste dei nostri utenti. Andiamo nella directory del progetto creato prima (dovrebbe essere /nomegruppo/cgi-bin/nomeProgetto/) e lanciamo il server col comando: ruby script/server -b nomemacchina.cs.unibo.it dove l'opzione -b realizza il binding tra il server e l'ip della macchina. Il processo può essere messo in background aggiungendo un & in fondo alla riga di comando. N.B. per riportare in foreground il processo del webserver è sufficiente digitare fg nel terminale; per terminarlo CTRL-C

Funziona?

Col webserver lanciato e le impostazioni descritte sopra dovremmo riuscire a raggiungere la nostra webapp (che è quella di default) semplicemente digitando l'indirizzo nomegruppo.web.cs.unibo.it (per inciso: anche digitando l'indirizzo nomemacchina.cs.unibo.it:3000). Rispondendo alla domanda del titoletto: "Funziona?" "Si". Quindi siamo a posto? No, perché, a meno che non mi dica diversamente qualcuno di voi, quando sloggo dalla macchina i miei processi vengono chiusi e perciò il server muore e ritornando all'indirizzo si ottiene un laconico 503.

Spero che la mia esperienza (fin'ora) sia utile a qualcuno.

-- SaverioGiallorenzo - 16 May 2011

  • Set ALLOWTOPICVIEW =
  • Set ALLOWTOPICCHANGE =

to top

You are here: TechWeb11 > RoR4Dummies

to top

Copyright © Fabio Vitali 2017 Last update of RoR4Dummies on 17 May 2011 - 15:03 by SaverioGiallorenzo