Come far funzionare Ruby on Rails sui server JaguarPc (CPanel)

Uso da moltissimi anni senza dovermi mai lamentare troppo, del servizio hosting offerto da jaguar (http://www.jaguarpc.com).
Jaguar utilizza cpanel per far gestire lo spazio e il server ai propri clienti. Per la stragrande maggioranza dei siti che si producono, a meno che non ci siano esigenze particolari, questo servizio è sempre stato sufficiente, a volte anche molto comodo grazie al “fantastico panel” che permette di installare CMS al volo.
Diverso tempo fa, cpanel e jaguar hanno introdotto il supporto a Ruby on Rails. Puoi creare la tua applicazione e indirizzarla in una percorso definito anche non nella root (es: http://tuodominio.it/test/)
Da sviluppatore Rails quando vidi questa cosa ebbi un sussulto di gioia! per alcuni miei progetti era una manno poter passare da php a questo framework.
Ci ho pravato mote volte ma MAI sono sono riuscito a far girare una applicazione in maniera corretta. E a nulla sono serviti i 29 ticket che ho aperto con l’assistenza (sempre ottima devo dire) ma in questo caso molto impreparata.
Alla fine, grazie al mio guru/maestro il buon vechio Joe, ieri siamo riusciti e mi sembra doveroso condividere questa scoperta che può essere utile ad altri.

Ovviamente questa piccola guida è solo per chi possiede un hostin con cpanel.
i passi previ sono:

  • creare una nuova applicazione Rails su cpanel dandole un nome (es: test)
  • creare un rewrite affinche il server possa puntare http://tuodominio.it:12030/test su http://tuodominio.it/test
  • avviare l’applicazione cliccando su START

A questo punto il sistema crea un .htaccess nella directory public_html e il sito con la classica index di rails dovrebbe essere visibile. Mai successo!
Perchè? non sono un esperto di apache ecc e il probelma sta prorpio nel .htaccess generato dal sistema che dovrebbe risultare più o meno così:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^tuodominio.it$ [OR]
RewriteCond %{HTTP_HOST} ^www.tuodominio.it$
RewriteRule ^test? http\:\/\/127\.0\.0\.1\:12030$1 [P,QSA,L]

Il punto è che la directory public/ non vien eassolutamente raggiunta e così nemmeno le immagini, css, javascript ecc
Se però creiamo un primo controller e un action, questa la visualizzaremo (senza stili nè js)
es: http://tuodominio.it/test/controller/action/

SOLUZIONE: basta modificare la stringa dell’applicazione in questo modo:

RewriteRule ^test(/.*)? http\:\/\/127\.0\.0\.1\:12031$1 [P,QSA,L]

la regex non era corretta, così dovrebbe funzionare tutto

grazie joe!

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • RSS
  • StumbleUpon
  • Twitter
  • Reddit

Post a comment