Sto cercando di far interpretare Apache dai miei file Ruby ma non capisco come farlo. In questo momento non mi preoccupo di Rails, solo Ruby. Quello che ho trovato su Google mi confonde solo. Qualche consiglio?
Sto cercando di far interpretare Apache dai miei file Ruby ma non capisco come farlo. In questo momento non mi preoccupo di Rails, solo Ruby. Quello che ho trovato su Google mi confonde solo. Qualche consiglio?
Risposte:
Il modo più comune per eseguire il codice ruby in un ambiente web server è avere il codice implementare un'interfaccia rack. È un'API molto semplice che consente al server web di parlare con la tua applicazione ruby. Per Apache, il gestore di rack più comune è il passeggero (alias mod_rails e mod_rack). Quasi tutti gli attuali framework web ruby (come rails, sinatra, camping, ...) si collegano al server web usando un gestore di rack. È possibile utilizzare uno di questi framework, ma è anche possibile scrivere app per rack direttamente senza quelle. Tutti i server di applicazioni ruby (ibrido, sottile, unicorno, arcobaleni, ...) implementano l'interfaccia del rack.
Un'altra alternativa sarebbe quella di utilizzare (f) cgi, ma ti consiglio di stare lontano da quella rotta, poiché l'interfaccia e i protocolli sono scomodi e non forniscono realmente moderne strutture di gestione.
Sto provando a trovare la semplice risposta a questa domanda da un po 'di tempo, e ho capito che tutto quello che devi fare è inserire lo script ruby nella directory cgi-bin del tuo server web e caricare l'URL corrispondente. Ad esempio, nella mia installazione predefinita di CentOS 6.2 / httpd, ho inserito uno script chiamato hello.rb in / var / www / cgi-bin / e quindi caricato http: //localhost/cgi-bin/hello.rb nel mio browser ed ha eseguito lo script e mi ha mostrato cosa è andato a STDOUT (cioè da put, ecc.).
Quello che succede qui è ogni volta che l'URL viene caricato, lo script viene eseguito completamente. Questo non è l'ideale per un server web ad alto volume o dove la velocità è cruciale, quindi qualcosa come fastCGI mantiene sempre attivo lo script, ma devi gestirlo per gestirlo.
spero che aiuti.
È possibile eseguire script ruby con cgi veloce. Guarda il progetto FCC per ulteriori informazioni.
Prova modruby .
Invalid command 'RubyAddPath'
È una specie di cosa esoterica che nessuno fa mai? Sono sorpreso da quanto sia difficile far funzionare Ruby con Apache rispetto a PHP.
AddHandler ruby-object .rbx
, LoadModule ruby_module /path/to/mod_ruby
, RubyRequire apache/ruby-run
, e RubyHandler Apache::RubyRun.instance
per httpd.conf
dovrebbe bastare per una configurazione semplice.