|
|
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
| |
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
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