Mod rails

Allikas: Kuutõrvaja
Redaktsioon seisuga 27. mai 2008, kell 18:42 kasutajalt Jj (arutelu | kaastöö)

Sissejuhatus

Ruby on railsi on sageli koos paljude rakenduste ning domeenidega kasutada äärmiselt ebamugav kuna ta vajab eraldi mongrel serverit ning selle startimist ja apaches mod_proxy ja blancery seadistamist ning kasutamist.

Selle parandamisels on tuldud mugavama tehnikaga. Lihtsa mod_rails nimelise mooduliga Apache veebiserverile

http://www.modrails.com/install.html

Tuleb vaid apache moodul installida ning Peale selle apachele luua vhostis milles viidatud loodud railsi tarkvara asukohale.

Kasutamine

Installimiseks piisab enamuses osides kus gem olemas käskudest:

gem install passenger
passenger-install-apache2-module

Viimane toimetab mooduli installi iseseisvalt edasi ning juhendab edasi. Andes igal operatsioonisüsteemil erinevad read mis tuleb lisada httpd.conf'i.

FreeBSDl näiteks tuleb kirjutada httpd.conf faili järgnev:

LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-1.0.5/ext/apache2/mod_passenger.so
RailsSpawnServer /usr/local/lib/ruby/gems/1.8/gems/passenger-1.0.5/bin/passenger-spawn-server
RailsRuby /usr/local/bin/ruby18


Seejärel tuleb saab teha virtualhosti mille kataloogiks tuleb näidata railsi rakenduse kaust nimega public

  <VirtualHost *:80>
     ServerName www.yourhost.com
     DocumentRoot /railsprog/public
  </VirtualHost>


Ja seejärel apachele restart. Virtualhoste võib lisada edaspidi apachele piiramatult, Uuendades railsi koodi ei ole samuti tarvilik teha kogu apachele restart vaid piisab tekitades faili reboot kausta tmp

Kuidas mod_rails toimib saab paremat aimu vaadates serveris protsessitabelit

# ps -aux | grep ruby
root   28375  0.0  3.2 37384 31608  ??  S     1:33PM   0:01.67 ruby script/server -d -p 3000
root   30977  0.0  0.7 10460  6924  ??  I     1:50PM   0:00.44 ruby18: Passenger spawn server (ruby18)
root   50782  0.0  2.2 28116 22388  ??  S     6:21PM   0:03.70 ruby18: Passenger FrameworkSpawner: 1.2.6 (ruby18)

Nagu näha protsessitabelist tekitatakse mooduli poolt eraldi spawn server mis tegeleb railsi rakendustele suunatud päringutega


touch /railprog/tmp/restart.txt

Juhul kui rails ei taha toimida tasub lugeda production log'i Kirjutamine apache poolt tuleks lubada railsi rakenduses tmp/session kataloogile ning kui varasemalt on nimelt railsi webrick/mongrel abil starditud tuleks kustutada varasemad sessioonid


Edasine lugemine:

http://www.modrails.com/documentation/Users%20guide.html

http://www.pervasivecode.com/blog/2008/04/14/why-mod_rails-is-a-really-good-thing-for-light-duty-ruby-on-rails/