Come posso eseguire gli script Ruby tramite Apache (non necessariamente usando Rails)?


8

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:


3

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.


2

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.



0

Prova modruby .


L'ho provato. Non ha fatto nulla e se c'è della documentazione, hanno fatto un ottimo lavoro nel nasconderlo.
Jason Swett,


Neanche quello ha funzionato. 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.
Jason Swett,

Aggiungi "LoadModule ruby_module" path_to_mod / mod_ruby.so "
alvosu,

Aggiungendo AddHandler ruby-object .rbx, LoadModule ruby_module /path/to/mod_ruby, RubyRequire apache/ruby-run, e RubyHandler Apache::RubyRun.instanceper httpd.confdovrebbe bastare per una configurazione semplice.
Chris S,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.