pl  pl
 

RoR

Z MyDevil.net

Spis treści:

 1. Opis
 2. Rozpoczynanie projektu
 3. Dodawanie własnych gemów
 4. Thin
 5. Redmine



Spis treści

Opis

Ruby on Rails to najpopularniejszy framework dla języka Ruby, służący do pisania web aplikacji. Hostowanie aplikacji napisanych w tym frameworku na serwerze MyDevil jest proste i przyjemne.

Za deployment aplikacji opartych o RoR odpowiedzielny jest Phusion Passenger, dzięki czemu użytkownicy nie muszą się martwić o uruchamianie własnych webserverów. Wszystko uruchamia się przeźroczyście i nie jest wymagana żadna ingerencja użytkownika.



Rozpoczynanie projektu

W przeciwieństwie do django, w którym sami odpowiadamy za uruchomienie daemona, a nazwa projektu nie ma znaczenia, w RoR to właśnie nazwa projektu ma znaczenie, a nie musimy się martwić o uruchamianie workerów. Na początek dodajmy w ogólę odpowiednią stronę do systemu WWW:

devil www add example.com ror

Następnie przechodzimy do odpowiedniego katalogu i uruchamiamy projekt, który musi się znajdować w ~/domains/example.com/public_ror:

cd ~/domains/example.com
rails new public_ror

Nazwa public_ror jest ważna, ponieważ to właśnie do tego katalogu odwoływać się będzie Phusion Passenger przy spawnowaniu workerów.



Dodawanie własnych gemów

Aby dodać gemy instalowane samodzielnie (np. przez bundler-a), wystarczy do RAILS_ROOT/.bundle/config dopisać następującą linijkę:

BUNDLE_PATH: /usr/home/login/.bundler



Thin

Istnieje również możliwość użycia serwera THIN, który działa całkowicie jako proces uruchamiany przez użytkownika. Przy połączeniu z RVM (który instalujemy samodzielnie w naszym katalogu domowym) pozwala to na uruchomienie naszej aplikacji w dowolnym środowisku ruby (inna wersja, inne gemy). THIN jednak jest rozwiązaniem developerskim i nie zalecy się z korzystania z niego na produkcji na mocno obciążonych aplikacjach.

Na początek, dodajemy stronę:

devil www add example.com thin

Następnie uruchamiamy thina, by słuchał na unix socket pod /usr/home/LOGIN/domains/DOMENA/thin.0.sock.



info.png

Przykład

Jako, że głównym powodem używania Ruby on Rails na naszych serwerach jest redmine, przedstawimy instrukcję jego instalacji i konfiguracji.

Na sam początek musimy przygotować sobie wszystko, co potrzebne. Zaczniemy od stworzenia vhosta WWW i dodania bazy danych MySQL:

$ devil www add redmine.example.com ror
$ devil mysql db add redmine

Zapisujemy z wyniku polecenia devil mysql add redmine nazwę bazy, login, hasło i adres potrzebny do połączenia się z bazą danych. Przykładowy wynik polecenia (dane które będą potrzebne zostały pogrubione):

 Nazwa bazy: m12345_redmine
 Użytkownik: m12345_redmine
      Hasło: BardzoTrudneHasło12345
       Host: mysql.mydevil.net
 PhpMyAdmin: http://pma.mydevil.net/

Teraz pobieramy źródła redmine z git. Niestety, z systemową wersją działa jedynie wersja rozwojowa - jeśli potrzebujemy innej wersji, musimy użyć RVM i thina.

$ cd ~/domains/redmine.example.com
$ git clone https://github.com/edavis10/redmine

Czekamy aż repozytorium zostanie pobrane do katalogu redmine. Przechodzimy do niego i rozpoczynamy konfigurację:

$ cd redmine
$ cp config/database.yml.example config/database.yml
$ nano config/database.yml

Ostatnie polecenie otworzy edytor tekstowy nano i rozpocznie edycję dokumentu config/database.yml. Interesuje nas sekcja production, w której musimy podać nasze dane do bazy danych:

production:
  adapter: mysql
  database: m12345_redmine
  host: mysql.mydevil.net
  username: m12345_redmine
  password: BardzoTrudneHasło12345
  encoding: utf8

Jeśli niczego nie ominęliśmy, wystarczy teraz wygenerować odpowiednie dane i przenieść katalog redmine w odpowiednie miejsce:

$ rake generate_session_store
$ RAILS_ENV=production rake db:migrate
$ RAILS_ENV=production rake redmine:load_default_data
$ cd ~/domains/redmine.domena.pl
$ rm -rf public_ror
$ mv redmine public_ror

Wchodzimy teraz na stronę redmine.example.com. Należy pamiętać, pierwsze wejście na stronę może trwać nawet 30 sekund - nie jest to żaden błąd związany z naszą konfiguracją, a specyfika Ruby on Rails.