Nodeta OyEtusivu

Ruby on Rails

Perustietoa

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.

Uusissa webhotellipaketeissa Ruby on Rails -sovellukset ajetaan Passengerin kautta asiakkaan omalla käyttäjätunnuksella. Näin sovellukset toimivat nopeasti ja turvallisesti. Myös FastCGI-tilan käyttö on tarvittaessa mahdollista.

Uuden Rails-rungon luominen

Rails-runko (versiot <3.0) uudelle Rails-projektille saadaan luotua seuraavalla komennolla:

	$ rails hakemisto
			
Annettu hakemisto ei saa olla näkyvissä julkisesti webiin, kuten public_html-hakemiston alla. Katso julkaisusta tarkemmin kohdasta Rails-sovelluksen julkaisu.

Tietokanta-asetukset

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.fi
Tiedostossa 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.

Rails-sovelluksen julkaisu

Saadaksesi Rails-sovelluksesi näkymään webissä, sinun tulee luoda symbolinen linkki Rails-hakemistosi public-alihakemistoon esimerkiksi ajamalla seuraavan komennon kotihakemistossasi:
	$ ln -s ~/<rails-hakemistosi>/public ~/public_html/<railssovellus>
Tällöin sovellus tulee näkyviin verkkotunnuksesi alihakemistoon <railssovellus>, esimerkiksi http://www.esimerkki.tld/<railssovellus>

Jos haluat rails-sovelluksen näkyvän suoraan verkkotunnuksesi juuressa, poista (tai uudelleennimeä) public_html-hakemisto ensin kotihakemistostasi ja komenna:
	$ ln -s ~/<rails-hakemistosi>/public ~/public_html

Development ja production-tilat

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.

Muutoksien tekeminen julkaistuun Rails-sovellukseen

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, täytyy sovellus käynnistää uudelleen.

Passenger-tilassa tämä onnistuu luomalla tai päivittämällä sovelluksen päähakemiston alla olevassa tmp-hakemistossa restart.txt -nimistä tiedostoa. Esim. seuraavasti rails-sovelluksen päähakemistossa:

	$ touch tmp/restart.txt

FastCGI-tilaa käytettäessä sinun täytyy lopettaa sovellusta käynnissä pitävä FastCGI-prosessi. Löytääksesi kyseisen prosessin komenna ensin:

	$ ps -C dispatch.fcgi
Tällöin ruudulle pitäisi tulostua listaus prosessista. Esimerkiksi:
	  PID TTY          TIME CMD
	25956 ?        00:00:01 dispatch.fcgi
Nyt voit lopettaa prosessin antamalla komennon:
	$ kill 25956
Uusi FastCGI-prosessi käynnistyy, kun rails-sovelluksesi alla oleva sivu seuraavan kerran ladataan.

UTF-8-merkistö käyttöön Ruby on Rails -sovelluksessa

Palvelin lähettää html- ja tekstityyppiset sivut oletuksena käyttäen ISO-8859-1-merkistöä. Jos Rails-sovelluksesi kuitenkin käyttää jatkuvasti 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

Vaihtoehtoisesti voitte myös pyytää meitä vaihtamaan UTF-8:n oletukseksi verkkotunnuksellenne.

Capistranon käyttö julkaisuun

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 Passenger-tilassa korvata komennolla "touch tmp/restart.txt" ja Fastcgi-tilassa komennolla "killall dispatch.fcgi || true".

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


Nodeta Oy • Osoite: Kutomotie 9 C, 00380 Helsinki • Y-tunnus: 1880029-2 • nodeta@nodeta.fiLisää yhteystietoja »