Category: ruby

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!

October 23, 2009
Come far funzionare Ruby on Rails sui server JaguarPc (CPanel)

Nuovo portale UNICOOP Firenze

É online da circa una settimana il nuovo portale di Unicoop Firenze.

Sviluppato per Max Mile Srl insieme a Joe Yates, Aaron Craig, David Librera, mi sono occupato principalmente della parte “front end”.
Il sito è sviluppato con Ruby on Rails, il backend interamente gestito con EXTJS

Nuovo portale UNICOOP Firenze

virtualbox: ubuntu server 8.04 su OSX 10.5 howto italian

ATTENZIONE: QUESTO ARTICOLO FA RIFERIMENTO ALLA VERSIONE 1.x di VIRTUALBOX, INSTALLANDO UNA UBUNTU SERVER 8.04
ADESSO HO AGGIORNATO ALLA VERSIONE 2.x E FATTO UPGRADEA UBUNTU SERVER 9.04:
Molte cose sono rimaste invariate, alcune invece hanno bisongo che ci rimetta le mani, quindi aggiorno questa guida via via che faccio cose specificando quali sono gli aggiornamenti per la 2.x – 9.04
La mia intenzione è quella di installare Ubuntu Server 8.04 su una virtalbox su un McBook Pro OSX Leopard.

Volgio usare ubuntu come webserver locale di sviluppo per LAMP e per le applicazioni RAILS.
Via via sto incontrando piccoli problemi che cerco di risolvere. Questo post crescerà di volta in volta!

Intallazione ubuntu

L’iinstallazione è andata liscia senza problemi. Però all’avvio della macchina virtuale, al sistema risulta non essere valida la CPU e quindi non parte.
E’ necessario andare nelle impostazioni della macchina virtuale nella sezione:

GENERALE -> AVANZATE

e mettere il check su “Abilita ACPI” e “Abilita PAE/NX”

e questo è risolto!

Folder sharing

ATTENZIONE AGGIORNAMENO 2.x – 9.04: dopo l’aggiornamento le cartelle condivise non funzionano più; ho seguito quanto scritto su http://ubuntrucchi.wordpress.com/2009/03/09/installare-le-guest-additions-di-virtualbox-2x/

La mia necessità primaria è quella di poter avere i file di sviluppo sul mio hard disk OSX in maniera che possa editare i miei file da OSX e che li possa vedere su webserver ubuntu via browser. Dato che le macchine sono in rete pensavo di far puntare apache ad un indirizzo di rete locale ma ho scoperto che questo non si può fare. Virtualbox mette a disposizione le cartelle condivise, ciò la possibilità di montare delle directory che stanno sul HD OSX direttamente su ubuntu. Questo è possibile poichè i sistemi stanno sullo stesso HD.
Per configurare questa opzioni sono necessari alcuni passi.

  1. Configurare le cartelle condivise dal pannello di configurazione della macchina virtuale nel pannello “dettagli->cartelle condivise”. Ne aggiungiamo una e gli diamo un nome (il mio caso è “websites” che punta alla directory /home/users/profilo/Sites)
  2. Andare nella cartella delle applicazioni, selezionare l’applicazione virtualbox e col tasto destro cliccare su “mostra contenuti pacchetto”. Dentro Contents -> MACOSX troverete un file “VBoxGuestAdditions.iso”, copiatelo sulla scrivania o su un qualunque percorso visibile. (Fare attenzione a copiare e non a spostare!!!)
  3. Nel pannello “Dettagli -> CD/DVD ROM” di configurazione della virtual machine, scegliete di moontare un’immagine iso come cd selezionando il file VBoxGuestAdditions.iso che vi siete copiati.
  4. Avviare Ubuntu server
  5. Una volta eseguito il login è necessario montare il cd con “sudo mount /cdrom”. Apparirà un messaggio tipo “block device /dev/scd0 is write protected”, non è importante. Adesso cercate dove è stato montato il cd che può essere (mi è capito su posti diversi) in “/media/cdrom” oppure in “/media/crdrom0″
  6. Dentro ci sarà una serei di eseguibili, va scelto quello che interessa, nel mio caso “VBoxLinuxAdditions-x86.run”
  7. Non è possibile lanciare questo script dubito perchè ci servono le librerie del compilatore per GNU Linux. Quindi installiamo via apt “sudo apt-get install build-essential”
  8. Ancora non basterà perchè servono gli header giusti… per sapere queli sono basta fare “uname -a” che rende una stringa tipo “Linux webserver 2.6.24-19-server #1 SMP Wed Aug 20 etc etc”; nel mio caso significa che devo installare “apt-get install linux-headers-server”
  9. A questo punto possiamo lanciare dalla directory del cd montato “sudo ./VBoxLinuxAdditions-x86.run”
  10. Nella mia home ho creato una directory “Sites” con mkdir
  11. A questo punto provo a montare la cartella condivisa: “sudo mount -t vboxsf Websites Sites/”
  12. Se voglio che questa operazione sia automatica ad ogni avvio sarà necessario aprire “sudo nano /etc/fstab” e inserire una riga in fondo al documento così  “Websites /home/[utente]/Sites vboxsf defaults,uid=1000,gid=1000,exec 0 0″

e questo è risolto!
Grazie a David Mugnai

Come modificare la risoluzione maggiore di 800×600?

Voglio mettere la risluzione dell scherm a 1024×768 per una migliore visualizzazione della shell.
sudo nano /boot/grub/menu.list
alla fine delle “DEFAULT OPTIONS” comincia la lista delle opzioni grub. La prima dovrebbe essere quella di Ubuntu Server 8.0.x; nel campo kernel si trova in fondo alle opzioni un default.
sostituire in maniera che diventi “ro vga=791″
La mia stringa è:
kernel /boot/vmlinuz-2.xx.xx rot=UIID=xxxxxx ro vga=791*

Questo è rislto!
(Grazie a Tommaso Ghiachi!)

Come abilitare il mouse per fare selezioni di testo?

Ho trovato una sola via per poter abilitare il mouse, per poter fare la selezione di testo per copia incolla. Sembra che l’unico modo sia (anche se non mi torna per niente) l’installazioen di un piccolo software “gpm”
sudo atp-get install gpm

Come arrivare via browser al webserver?

Sulla vostra macchina locale, aprire una shell con la virtualbox non avviata.
per ogni porta che si vuole aprire è necessario scrivere questa tripletta:

VBoxManage setextradata “Linux Guest” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol” TCP
VBoxManage setextradata “Linux Guest” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort” 80
VBoxManage setextradata “Linux Guest” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort” 8000

Al posto di “Linux Guest” si dovrà mettere il nome preciso della macchina virtuale.
Nella seconda riga la porta che vogliamo aprire (la 80 per apache).
Nella terza la porta locale che vogliamo mappare (ho scelto la 8000)

Avviare la macchina virtuale con relativo login.

Su browser mettere http://localhost:8000 e magicamente… it works! Però si vedrà la directory interna di apache mentre io voglio vedere la cartella condivisa.

Andare su “nano /etc/apache2/sites-anabled/000-default

e modificare le righe DocumentRoot con il percorso della directory condivisa.

riavviare apache

sudo /etc/init.d/apache2 restart

Per eliminare il warning al riavvio di apache (apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName):

sudo nano /etc/apache2/apache2.conf
inserire in fondo la seguente linea:
ServerName [unNomePerIlServer]
salvare il file con ctrl+o seguito da invio e ctrl+x per chiuderlo
(thanks to http://www.pianeta.com/map/index.php/idQ20623/tipoQ/shwDAQsi/ricercaQ14/shSCQ403/pidQ11)
E questo è risolto!
Grazie a David Mugnai

Apache non serve bene i CSS

Su questo sono impazzito per un bel po’ ma lla fine è risolto. I file Html, Php vengono letti correttamente sulla mia Vbox da apache ma i file css vengono letti la prima volta, e poi rimangono come congelati una specie di cache che mostra sempre il file come visualizzato la prima volta… ovviamente non era un problema di cache.

Il problema è che apache stronca i file css e txt come documentato su http://forums.virtualbox.org/viewtopic.php?t=1940&highlight=apache

Ho trovato la soluzione su http://httpd.apache.org/docs/2.0/mod/core.html#enablesendfile per cui è necessario editare il file

sudo nano /etc/apache2/apache2.conf

e aggiungere in un punto qualunque la stringa

      EnableSendfile Off
e tutto funzioneraà a meraviglia!

E questo è risolto!
Grazie a David Mugnai

Come modificare il layout di tastiera?

non ci sono ancora riuscito e il problema più grosso è quello di riuscire a fare i caratteri che solitamente usiamo con il tasto Alt sinistro (in Osx) o Alt destro (in Win/Linux) (per esempio per fare la @, # ecc)

Ho provato svariate cose sul layout di MacBokk pro con

dpkg-reconfigure console-setup

ma nessuna ha funzionato. Però, rimettendo una tastiera generica 101 tasti e configurandoil tasto “Logo right” mi è adesso possibile usare quei caratteri. Alcuni altri invece sono rimappati, da scoprire e imparare le posizioni, m aalmeno adesso sono tutti raggiungibili.

Ultimo aggiornamento: 22-10-2008

virtualbox: ubuntu server 8.04 su OSX 10.5 howto italian

Try Ruby!

Try RUBY in your browser with a very well done web-shell to test the functionality of this programming language.

You’ll be logged into a “irb” (interactive ruby) to try different tutorials to learn about.

TRY RUBY NOW! 

Ruby is a programming language from Japan (available at ruby-lang.org) which is revolutionizing the web. The beauty of Ruby is found in its balance between simplicity and power.

March 20, 2008
Try Ruby!

Test Development Driven


Very interesting presentation of Gregg Pollack on TDD and BDD using RSpec gem and autotesting. I’ve never used it but I’ll study this way on next weeks! I defenetly like it!

The 30′ video


March 1, 2008
Test Development Driven