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 +ExecCGIRewriteEngine 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
7 odpovedí na “Ruby on Rails – ako na to?”
Co takto Passenger a Ruby Enterprise Edition pre naozaj seriozne aplikacie?
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. 🙂
Myslel som to tak, ze pokial to niekto mysli s RubyOnRails seriozne, tak FCGI naozaj nie je schodna cesta.
gem install mongrel
Ako je to z gems pri webhostingu sitemu na mieru? Je mozne poziadat o instalovanie vlastnych? Ako je to s verziami? Ako sa aktualizuje?
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.
Ked uz instalovat, tak gem install -v=2.1.0 rails, aptitude install rails