Ruby on Rails – ako na to?


  • Zdieľať na Google+

ruby on rails

Nakoľko sme nedávno na náš zdieľaný webhosting implementovali podporu Ruby on Rails (ktorú si môžete jednoducho aktivovať vo Webadmine), rozhodli sme sa spracovať aj jednoduchý a prehľadný návod, ako by ste mohli tento programovací jazyk a jeho výhody využívať aj na Vašich virtuálnych serveroch.

Na každom virtuálnom serveri je nainštalovaný Debian Lenny, takže pravdepodobne budete oboznámení s jeho nástrojom na správu software:apt-get, resp. aptitude.

Samotný Ruby sa nachádza v štandardných repozitároch, takže Vám stačí jednoducho vykonať:

aptitude install ruby rdoc irb rubygems libzlib-ruby libfcgi-ruby1.8 openssl libopenssl-ruby

čím nainštalujete všetky potrebné programy, knižnice a závislosti.

Keď Vám tieto balíčky zbehnú, bude potrebné nainštalovať aj Rails – framework postavený na scriptovacom jazyku Ruby. Toto je možné realizovať len ak sa Vám úspešne podarilo nainštalovať vyššie uvedený balík rubygems.

gem install rails –include-dependencies

A to je vlastne všetko 🙂

Dodatočne môžete vyžadovať podporu MySQL/PostgreSQL, alebo sqlite. Rieši sa to nasledovnou inštaláciou príslušných knižníc:

aptitude install libmysql-ruby libpgsql-ruby libsqlite3-ruby

Nový RoR projekt vytvoríte tak, že si zvolíte pracovné prostredie (odporúčam napríklad /var/www/ruby) a spustíte príkaz

rails nazovprojektu

V prípade, že v projekte plánujete využívať MySQL databázu (defaultne sa totiž spúšťa spolu s sqlite3), napíšete:

rails nazovprojektu -d mysql

Následne sa automaticky vytvorí základná koreňová štruktúra súborov, potrebných pre beh každej RoR aplikácie.

Posledný krok je spustenie servera – Ruby má možnosť pracovať s niekoľkými rôznymi servermi, spolu s inštaláciou však prichádza Webrick.

Naštartujeme z nášho aplikačného prostredia (/var/www/rails/nazovprojektu)

script/server

a fungujeme.

Webrick však beží na porte 3000, do prehliadača treba teda zadať

http://ip-virtualu:3000

a môžeme teda veselo programovať. 🙂

Taktiež tu je možnosť využiť na interpretovanie Ruby scriptov štandardný Apache

apt-get install apache2 libapache2-mod-fcgid libfcgi-ruby1.8

povolíme nejaké dodatočné moduly

a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include

a do adresára /var/rails/nazovprojektu/public nahodíme tento htaccess

#AddHandler fastcgi-script .fcgi
#AddHandler cgi-script .cgi
AddHandler fcgid-script .fcgi
Options +FollowSymLinks +ExecCGI

RewriteEngine On
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
#RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

ErrorDocument 500 „<h2>Application error</h2>Rails application failed to start properly“

Nakoniec  k popisu s Apachom treba ešte nakonfigurovať virtualhost v /etc/apache2/sites-available/default a v prípade, že chceme, aby všetko fungovalo na hlavnom virtualhoste

napísať:

<Virtualhost *:80>
ServerName localhost
DocumentRoot /var/rails/testapp/public

<Directory /var/rails/testapp/public>
Options ExecCGI FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
</Virtualhost>

V prípade, že chceme robiť viacero inštancií pod jedným serverom, tak píšeme

<Virtualhost *:80>
ServerName nazovprojektu.example.com
DocumentRoot /var/rails/nazovprojektu/public/

<Directory /var/rails/nazovprojektu/public>
Options ExecCGI FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
</Virtualhost>

a samozrejme reštart apache /etc/init.d/apache2 restart

V prípade, že sa o Ruby on Rails chcete dozvedieť alebo naučiť niečo viac, nahliadnite do týchto 12 tutorialov – http://www.digitalmediaminute.com/article/1816/top-ruby-on-rails-tutorials

Komentáre

  • johno
    Odpovedať
    Autor
    johno

    Co takto Passenger a Ruby Enterprise Edition pre naozaj seriozne aplikacie?

    • WebSupport
      Odpovedať
      Autor
      WebSupport WebSupport

      Co je to seriozna aplikacia? 🙂 Totiz serioznost v zasade nezavisi priamo od konkretneho programovacieho jazyka – software moze byt na vysokej urovni, ci uz je nakodeny v PHP, Ruby, alebo Ruby enterprise. Clanok je len taky jednoduchy a otestovany pracovny postup, ako nainstalovat Ruby na nasich virtualoch. V zasade vsak podla neho mozete nainstalovat aj Enterprise edition, nie su tam ziadne limity, na virtualoch mozete prevadzkovat akykolvek software. 🙂

      • johno
        Odpovedať
        Autor
        johno

        Myslel som to tak, ze pokial to niekto mysli s RubyOnRails seriozne, tak FCGI naozaj nie je schodna cesta.

        • WebSupport
          Odpovedať
          Autor
          WebSupport WebSupport

          gem install mongrel

  • realizator
    Odpovedať
    Autor
    realizator

    Ako je to z gems pri webhostingu sitemu na mieru? Je mozne poziadat o instalovanie vlastnych? Ako je to s verziami? Ako sa aktualizuje?

    • WebSupport
      Odpovedať
      Autor
      WebSupport WebSupport

      na zdielanom hostingu mame osobitny ruby aplikacny server, ktory ma momentalne
      instalovane taketo verzie

      ruby 1.8.7
      gem 1.2.0

      samozrejme tuto konfiguraciu nie je mozne samovolne menit/updatovat/nic.
      na virtualoch mozu vsetko.

  • realizator
    Odpovedať
    Autor
    realizator

    Ked uz instalovat, tak gem install -v=2.1.0 rails, aptitude install rails