Tästä osiosta löytyy perustietoa Ruby on Rails -sovelluskehyksen käyttämiseksi Nodetan palvelimilla.
Jokaiseen Nodetan webhotellipakettiin sisältyy pääsy palvelimen shell-tilaan ssh-yhteyden kautta. Tässä ohjeessa annetut komennot annetaan shell-tilassa. $-merkki tarkoittaa komentokehoitetta, eikä ole osa itse komentoa.
Ruby on Rails -sovellukset ajetaan FastCGI-tilassa asiakkaan omalla käyttäjätunnuksella. Näin sovellukset toimivat nopeasti ja turvallisesti.
Rails-runko uudelle Rails-projektille saadaan luotua seuraavalla komennolla:
$ rails hakemistoAnnettu hakemisto ei saa olla näkyvissä julkisesti webiin, kuten public_html-hakemiston alla. Katso julkaisusta tarkemmin kohdasta Rails-sovelluksen julkaisu.
Tietokanta-asetukset määritellään database.yml-tiedostossa, joka sijaitsee Rails-hakemistosi alla olevassa config-alihakemistossa. Täytä saamasi tietokanta-asetukset production-sarakkeen alle.
production: adapter: mysql database: project_production username: username password: password host: db.nodeta.fiTiedostossa voi niin halutessaan määritellä myös development- ja test-tietokannat. Test-tietokanta ei koskaan saa olla sama kuin development tai production-tietokanta, sillä se luodaan aina uudelleen development-kannasta.
$ ln -s ~/<rails-hakemistosi>/public ~/public_html/<railssovellus>Tällöin sovellus tulee näkyviin verkkotunnuksesi alihakemistoon <railssovellus>, esimerkiksi http://www.esimerkki.tld/<railssovellus>
$ ln -s ~/<rails-hakemistosi>/public ~/public_html
Oletuksena sovellukset ajetaan production-tilassa. Jos sovellusta on tarkoitus kehittää palvelimella, on suositeltavaa ottaa kehityksen ajaksi käyttöön development-tila. Development-tilassa fastcgi-prosessi täytyy käynnistää uudelleen harvemmin ja virhetilanteissa rails tulostaa kunnollisia virheilmoituksia. Development-tilan voi ottaa käyttöön asettamalla seuraavan rivin config/environment.rb-tiedoston alkuun:
ENV['RAILS_ENV'] = 'development'Kun sovellus on valmis tuotantokäyttöön, tulee tila vaihtaa takaisin production tilaan, kommentoimalla yllä mainittu rivi pois tai vaihtamalla siihen arvoksi 'production'. Production-tilassa sovellus toimii selvästi nopeammin, käyttää vähemmän resursseja eikä paljasta liiallisia tietoja käyttäjille virhetilanteissa.
Jos teet muutoksia julkaistuun Rails-sovellukseen, ne eivät (muutoksesta riippuen) välttämättä näy heti ohjelmiston käyttäjälle. Saadaksesi kaikki muutokset näkyviin välittömästi, sinun täytyy lopettaa sovellusta käynnissä pitävä FastCGI-prosessi. Löytääksesi kyseisen prosessin komenna ensin:
$ ps -C dispatch.fcgiTällöin ruudulle pitäisi tulostua listaus prosessista. Esimerkiksi:
PID TTY TIME CMD 25956 ? 00:00:01 dispatch.fcgiNyt voit lopettaa prosessin antamalla komennon:
$ kill 25956Uusi FastCGI-prosessi käynnistyy, kun rails-sovelluksesi alla oleva sivu seuraavan kerran ladataan.
Palvelin lähettää html- ja tekstityyppiset sivut oletuksena käyttäen ISO-8859-1-merkistöä. Jos Rails-sovelluksesi kuitenkin käyttää hiljalleen yleistyvää UTF-8-merkistöä, ei skandinaaviset merkit, kuten ä, ö tai å, välttämättä näy oikein.
Oletusmerkistön vaihtaminen onnistuu lisäämällä Rails-sovelluksen public-hakemistossa olevaan .htaccess-tiedostoon seuraavan rivin:
AddDefaultCharset UTF-8
Kun toisessa järjestelmässä luotu rails-sovellus siirretään Nodetan palvelimille, täytyy muutamia asioita ottaa huomioon, jotta sovellus toimisi.
$ chmod 744 railssovellus/public
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]Jos rivillä lukee dispatch.fcgi:n sijaan dispatch.cgi, on käytössä tavallinen CGI-tila ja se kannattaa muuttaa käyttämään FastCGI:tä.
Capistranon käyttö rails-sovelluksen julkaisuun Nodetan palvelimilla on täysin mahdollista eikä vaadi erityistoimenpiteitä. Capistranoa käyttöönotettaessa ja deploy.rb:tä konfiguroitaessa on kuitenkin huomioitava, että sovelluksen uudelleen käynnistäminen komennolla "apachectl graceful" ei ole mahdollista vaan tämä tulee korvata komennolla "killall dispatch.fcgi || true". Komento tappaa kaikki kyseisellä käyttäjätunnuksella ajossa olevat FastCGI-prosessit, jos sellaisia on ajossa.
Katso myös kohta Muualla luodun rails-sovelluksen siirto Nodetan palvelimille.
Esimerkki config/deploy.rb:stä löytyy tästä.
Enemmän ohjeita Capistranon käyttöön löytyy täältä.