WebSupport blog

Ruby on Rails – ako na to?

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