Erinevus lehekülje "Ruby on rails" redaktsioonide vahel

Allikas: Kuutõrvaja
95. rida: 95. rida:
  
 
http://www.onlamp.com/pub/a/onlamp/2005/03/03/rails.html
 
http://www.onlamp.com/pub/a/onlamp/2005/03/03/rails.html
 
===Rails ja Apache mitme projektiga server===
 
 
Süsteem toimib nii, et Apache suunab vhostide info mongrel serverile, mis siis railsi skripte esile manab.
 
 
Apache tuleb kompileerida koos proxy moodulitega ja kasutamiseks sobib vaid apache22 mis sisaldab meile vajalikku proxy balancerit
 
 
FreeBSD's tuleb apache installida selliselt.
 
 
cd /usr/ports/www/apache22
 
make install with_proxy_modules=yes
 
 
Muudes osides tuleb uurida enda tarkvara installerite manuale.
 
 
gem install mongrel
 
gem install mongrel_cluster
 
 
Lihtsaim viis mongrelit kasutada on ta startida nagu webrick.
 
 
cd progeadmin
 
$ mongrel_rails start -d
 
 
ja seiskamiseks
 
 
$ mongrel_rails stop
 
 
Antud juhul on meil keerukam probleem nimelt
 
on kaks eraldi railsis loodud programmi, mis asuvad
 
 
/home/rails/progeadmin/
 
/home/rails/veebiadmin/
 
 
Ning vaja oleks ,et progeadmin avaneb aadressiga www.katse.ee ja veebiadmin www.nimi.ee
 
ja samas saaks serveris kasutada ka mitmesugust saatilist materjali ja teisi lehti.
 
 
Mongrel Cluster seadistus neile kahele tarkvarale
 
 
 
# cd /home/rails/progeadmin
 
# mongrel_rails cluster::configure -e production -p 8000 -N 3 -a 127.0.0.1
 
Writing configuration file to config/mongrel_cluster.yml.
 
 
# cd veebiadmin
 
# mongrel_rails cluster::configure -e production -p 8100 -N 3 -a 127.0.0.1
 
Writing configuration file to config/mongrel_cluster.yml.
 
 
 
Need käsud kirjutavad konfiguratsiooni faili kummagile config/mongrel_cluster.yml.
 
 
n2iteks /home/progeadmin/rails/config/mongrel_cluster.yml sisu n2eb v2lja selline
 
 
log_file: log/mongrel.log
 
port: "8000"
 
environment: production
 
address: 127.0.0.1
 
pid_file: tmp/pids/mongrel.pid
 
servers: 3
 
 
Mongrel clustrite startimiseks tuleb
 
 
# cd progeadmin
 
# mongrel_rails cluster::start
 
starting port 8000
 
starting port 8001
 
starting port 8002
 
 
# cd  veebiadmin
 
# mongrel_rails cluster::start
 
starting port 8100
 
starting port 8101
 
starting port 8102
 
 
Nende käskude peale käivituvad kummagi railsi kohta kolm mongrel protsessi
 
Esimesel portidele 8001 8002 8003 ja teisel 8101 8102 8103
 
 
 
httpd.conf
 
 
Kontrollime, et oleks laaditud moodulid
 
 
proxy_module
 
proxy_connect_module
 
proxy_http_module
 
proxy_balancer_module
 
 
 
Nüüd loome mõlemale progele nende vhostid
 
 
NameVirtualhost 193.40.0.62:80
 
 
<VirtualHost 193.40.0.62:80>
 
  ServerName www.katse.ee
 
 
  RewriteEngine On
 
 
  # Redirect all non-static requests to cluster
 
  RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]
 
 
</VirtualHost>
 
 
<VirtualHost 193.40.0.62:80>
 
  ServerName www.nimi.ee
 
  RewriteEngine On
 
 
  # Redirect all non-static requests to cluster
 
  RewriteRule ^/(.*)$ balancer://mongrel_cluster2%{REQUEST_URI} [P,QSA,L]
 
 
</VirtualHost>
 
 
<Proxy balancer://mongrel_cluster>
 
    BalancerMember http://127.0.0.1:8001
 
    BalancerMember http://127.0.0.1:8002
 
    BalancerMember http://127.0.0.1:8003
 
</Proxy>
 
 
<Proxy balancer://mongrel_cluster2>
 
    BalancerMember http://127.0.0.1:8101
 
    BalancerMember http://127.0.0.1:8102
 
    BalancerMember http://127.0.0.1:8103
 
</Proxy>
 
 
Listen 8000
 
<VirtualHost 193.40.0.10:8000>
 
  <Location />
 
    SetHandler balancer-manager
 
    Deny from all
 
    Allow from localhost
 
  </Location>
 
</VirtualHost>
 
 
 
 
Edasine seadistus
 
 
Juhul kui muutub railsi versioon tuleks uuenda ka koodi
 
 
rake rails:update
 
 
Juhtum kui on railsi kood vaja domeenis tuua esile kujul http://www.nimi.ee/admin
 
samas kui www.nimi.ee all on teine kood v2i veeb
 
 
  # Rewrite to trailing slash
 
  RewriteRule ^/admin$ /admin/ [R,L]
 
 
  # test if this is /admin request
 
  RewriteCond %{REQUEST_URI} ^/admin(/.*)
 
  # strip off /admin and put result in ENV
 
  RewriteRule ^/admin(.*) /admin$1 [E=AdminReq:$1]
 
 
  RewriteCond /home/rails/admin/public/%{ENV:AdminReq} -f
 
  # serve static files
 
  RewriteRule ^/admin/(.*) /home/rails/admin/public/$1 [L]
 
  # If request is not static, proxy to rails
 
  RewriteRule ^/(admin/.*)$ balancer://mongrel_cluster2/$1 [P,QSA,L]
 
 
===Lingid===
 
 
http://www.rubyonrails.org/
 
 
http://blog.innerewut.de/articles/2006/04/21/scaling-rails-with-apache-2-2-mod_proxy_balancer-and-mongrel
 
 
http://www.webmasterwords.com/ruby-rails-mongrel-apache-easy
 
 
Veel suurem hulk näiteid
 
 
http://www.digitalmediaminute.com/article/1816/top-ruby-on-rails-tutorials
 

Redaktsioon: 23. september 2008, kell 13:36

Ruby on Rails

Sissejuhatus

Ruby on Rails on veebiarenduse raamistik ehk framework, mis kasutab programmeerimiskeelt Ruby. Kui Rails on alles noor raamistik (2004), siis Ruby on juba aastast 1993, mil Yukihiro Matsumoto sai Jaapanis tööle esimese "Hello World!"-i.

Ruby't saab proovida ka otse browseris http://tryruby.hobix.com/

Rails on mõeldud lihtsustama ning kiirendama andmebaasidega seotud veebilehtide loomist. Rails on kirjutatud Ruby keeles ja tegemist on vabavaralise projektiga.

Edasine tekst on kirjutatud FreeBSDd silmas pidades, kuid peaks olema piisavalt üldine ,et kasutada kõigil Linux/UNIX süsteemidel.

Rails arenduskeskond

Installime vajalikud päkitsad railsile

Paigaldada on vaja

  • Mysql server
  • ruby18
  • rubygem-rails koos s2ltuvustega

Paigaldame mysql serveri ning siis ruby. FreeBSD's saab viimase installida lihtsalt.

cd /usr/ports/lang/ruby18
make install clean

railsi install

Porsudest on hetkel rails 1.x versioon kuid see on juba pisut vana seega Paigaldame ruby gems paketti ning siis selleks ,et vaadata mis versiooni railsi installida saab

gem search rails --remote

Tekitab nimekirja railsi versioonidest mida annab paigadada. Viimane versioon hetkel on 2.0.2 nii ,et installime selle

gem install rails --version 2.0.2

Uue projekti start

Uue projekti loome käsuga

rails ideenimi

rails 2.0 puhul ,et vältida mysqli tuleb kirjutada

rails -d mysql test

Genereerib kausta test

seejärel stardime arenduseks vajaliku webrick serveri

cd test
script/server -d -p 3000
=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
[2008-01-08 18:27:50] INFO  WEBrick 1.3.1
[2008-01-08 18:27:50] INFO  ruby 1.8.6 (2007-09-24) [i386-freebsd7]

võti p 3000 stardib veebiserveri pordile 3000

Nb! kui muudate database.yml faili tuleb veebiserverit taaskäivitada

nüüd peaksime enda projekti nägema aadressil http://www.nimi.ee:3000

Railsiveb.jpg

Seejärel anname käsu mis loob uue kontrolleri.

ruby script/generate controller katsetus 

Railsis on mudelid (model) ja controllerid (controller ) See kõik asub siis stiilis aadress/kontroller. Näiteks www.nimi.ee kuhu lõime hetk tagasi kontrolleri nimega katsetus. Kohe peale loomist oli www.nimi.ee/katsetus kättesaadav. Models on kasutusel kui sql andmete hoidjad, meil on kasutuses mudel nimega test. Raisi controlleri failis defineeritakse asju, mida sinna www.nimi.ee/test/? kohta panna äsjaloodud kontrolleril on seal näiteks index, aee on avaleht. Lisame näiteks indexile väikese teksti:

avame faili test/app/controllers/katsetus_controller kus asub class KatsetusControllerning tekitame sinna järgneva sisu

class KatsetusController < ApplicationController 

 def index
   render :text => "tekst index lehele"
 end

end

ja liikudes urlile http://www.nimi.ee:8000/katsetus

peaksime nägema kirja tekst index lehele

Edasi võib lugeda juba õpetusi stiilis

http://www.onlamp.com/pub/a/onlamp/2005/03/03/rails.html