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.
|
PrzykładJako, ż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.