W celu zainstalowania i skonfigurowania Ruby on Rails na serwerze należy:
- Przygotować konto admin do pracy z instalatorem gems
- Zainstalować framework Ruby on Rails
- Zainstalować serwer mongrel
- Zainstalować skrypty startowe dla serwera mongrel
- Napisać na adres bok@kei.pl zlecenie końcowej konfiguracji serwera
Czynności te mogą Państwo wykonać samodzielnie lub zlecić wykonanie ich pracownikom BOK.
W przypadku samodzielnej instalacji, instalacja i uruchomienie Ruby on Rails są nieodpłatne.
W przypadku zlecenia wykonania całości instalacji przez BOK, pobierana jest cennikowa opłata za godzinę pracy administratora, wynosząca 150 zł netto.
Poniżej przedstawiono szczegółowe informacje na temat poszczególnych czynności.
Przygotowanie konta admin do pracy z instalatorem gems
Dostęp do gems i polecenia gem umożliwia konto admin platformy wirtualnej.
Po zalogowaniu się na konto admin za pomocą ssh należy wykonać następujące polecenia:
cp /usr/share/tld/daemons/ruby/.bashrc-ruby /home/users/admin/.bashrc-ruby
cat /usr/share/tld/daemons/ruby/.profile >> /home/users/admin/.profile
a następnie wylogować się i zalogować ponownie.
W wyniku tej operacji powinny zostać ustawione następujące zmienne środowiskowe:
* w zmiennej PATH powinny znaleźć się katalogi:
/home/conf/gems/bin
/home/conf/gems/var/lib/gems/1.8/bin
* zmienna GEM_HOME powinna być ustawiona na /home/conf/gems/var/lib/gems/1.8
* zmienna RUBYLIB powinna być ustawiona na /home/lib/ruby/1.8:/home/lib/ruby/1.8/i386-linux
Zmienne środowiskowe można sprawdzić wydając polecenie:
env
W tym momencie gems są już zainstalowane i mogą zostać użyte do instalacji aplikacji takich jak framework ruby on rails, czy serwer http mongrel. Działanie gems możemy przetestować wydając polecenia:
gem list -r
gem list -r mongrel
Instalacja frameworka Ruby on Rails
Instalacja RoR wymaga użycia aplikacji gem na koncie admin. Po zalogowaniu się poprzez ssh należy wydać polecenie:
admin@XXXX:~$ gem list -r
admin@XXXX:~$ gem -y install rails
Install required dependency rake? [Yn] Y
Install required dependency activesupport? [Yn] Y
Install required dependency activerecord? [Yn] Y
Install required dependency actionpack? [Yn] Y
Install required dependency actionmailer? [Yn] Y
Install required dependency actionwebservice? [Yn] Y
Successfully installed rails-1.2.3
Successfully installed actionmailer-1.3.3
Successfully installed actionwebservice-1.2.3
Installing ri documentation for actionmailer-1.3.3...
Installing ri documentation for actionwebservice-1.2.3...
Installing RDoc documentation for actionmailer-1.3.3...
Installing RDoc documentation for actionwebservice-1.2.3...
W czasie instalacji zostaną zainstalowane także wymagane zależności, których instalację należy potwierdzić wpisując "Y" lub naciskając enter.
Instalacja serwera mongrel
Mongrel to serwer http napisany w języku ruby który potrafi uruchamiać aplikacja napisane w framework RoR (i innych). Instalacja mongrel wygląda analogicznie do instalacji rails, należy w tym celu wykonać z konta admin polecenie:
admin@XXXX:~$ gem -y install mongrel
Select which gem to install for your platform (i386-linux)
1. mongrel 1.0.1 (mswin32)
2. mongrel 1.0.1 (ruby)
3. mongrel 1.0 (mswin32)
4. mongrel 1.0 (ruby)
5. Skip this gem
6. Cancel installation
> 2
Install required dependency fastthread? [Yn] Y
Select which gem to install for your platform (i386-linux)
1. fastthread 1.0 (ruby)
2. fastthread 1.0 (mswin32)
3. fastthread 0.6.4.1 (mswin32)
4. fastthread 0.6.4.1 (ruby)
5. Skip this gem
6. Cancel installation
> 1
Building native extensions. This could take a while...
Install required dependency gem_plugin? [Yn] Y
Install required dependency cgi_multipart_eof_fix? [Yn] Y
Building native extensions. This could take a while...
Successfully installed mongrel-1.0.1
Successfully installed fastthread-1.0
Successfully installed gem_plugin-0.2.2
Successfully installed cgi_multipart_eof_fix-2.3
Installing ri documentation for mongrel-1.0.1...
Installing ri documentation for gem_plugin-0.2.2...
Installing ri documentation for cgi_multipart_eof_fix-2.3...
Installing RDoc documentation for mongrel-1.0.1...
Installing RDoc documentation for gem_plugin-0.2.2...
Installing RDoc documentation for cgi_multipart_eof_fix-2.3...
W czasie instalacji należy zaznaczać które wersje aplikacji mają zostać zainstalowane, proszę zaznaczać najnowsze wersje oznaczone jako "(ruby)". Należy także potwierdzić instalację wszystkich zależności.
Po instalacji mongrel jest od razu dostępny. Użycie jest proste, przykładowe uruchomienie aplikacji rails na porcie 8000 i IP 195.149.224.58 będzie wyglądać następująco:
mkdir -p /home/users/admin/rails/test/tmp/pids/
mongrel_rails start -e development -n 128 -p 8000 -a 195.149.224.58 -l log/mongrel_0.log -P tmp/pids/mongrel_0.pid -c /home/users/admin/rails/test/ -d -B
Oczywiście, w katalogu /home/users/admin/rails/test/ powinny znajdować się pliki projektu napisanego w RoR.
Od tej chwili na porcie 8000 serwera działa dodatkowy serwer http, do którego możemy odwołać się poprzez przeglądarkę wpisując przykładowo:
http://195.149.224.58:8000
Zamiast IP (oczywiście należy użyć IP Państwa serwera) można użyć dowolną domenę przypisaną do serwera.
Serwer mongrel może być zatrzymany poprzez polecenie:
mongrel_rails stop -P tmp/pids/mongrel_0.pid -c /home/users/admin/rails/test/
Takie włączanie/wyłączanie serwera mongrel jest niewygodne, dodatkowo po restarcie serwera usługi nie zostaną uruchomione. W związku z tym należy przygotować odpowiednie skrypty startowe serwera. Kei udostępnia skrypty napisane specjalnie w celu uruchamiania serwerów mongrel.
Więcej informacji na temat skryptów dla serwera mongrel można znaleźć w dziale:
Pomoc > Platformy > Zarządzanie serwerem > Jak zainstalować skrypty startowe serwera mongrel
Dodatkowe informacje na temat tworzenia skryptów startowych dla serwerów są dostępne w dziale:
Pomoc > Platformy > Zarządzanie serwerem > Jak tworzyć skrypty startowe serwerów/demonów
Strony WWW są dostępne od razu po uruchomieniu serwera mongrel, jednak dostęp do nich jest utrudniony, albowiem wymaga wpisania w adres url niestandardowego numeru poru (w używanym tutaj przykładzie 8000). Kei pozwala na użycie standardowego portu 80. W takim przypadku główny serwer http serwera pracuje jako reverse proxy, przekierowując wywołania do serwera mongrel. Konfiguracja takiego mechanizmu opisana została poniżej.
Instalacja skryptów startowych serwera mongrel
W celu instalacji należy wykonać polecenia:
mkdir -p /home/users/admin/daemons
cp -r /usr/share/tld/daemons/mongrel /home/users/admin/daemons
W pliku /home/users/admin/daemons/mongrel/.config należy ustawić wartość zmiennej RAILS, przykładowo używając ip 195.149.224.58 oraz aplikacji rails z katalogu /home/users/admin/rails możemy zdefiniować 2 instancje serwera pierwszą działającą w trybie production na porcie 8000, drugą development na porcie 8001:
RAILS="0:8000:195.149.224.58:/home/users/admin/rails:production:128
0:8001:195.149.224.58:/home/users/admin/rails:development:128"
Po ustawieniu konfiguracji wystarczy uruchomić skrypt start:
cd ~/daemons/mongrel
./start
Jeżeli nie pojawi się komunikat o błędzie, strony rails będą dostępne dla przeglądarki na portach 8000 i 8001 serwera.
Wdrożenie
Kolejne czynności związane z uruchomieniem aplikacji rails wymagają udziału administratora serwera. Wykona on dwie operacje:
* przetestuje i sprawdzi działanie skryptów uruchamiających serwer mongrel, oraz doda je do systemu uruchamiania demonów na serwerze
* dokona modyfikacji konfiguracji serwera http, tak aby dla wybranych domen używany być serwer mongrel
Informacja wysyłana na adres bok@kei.pl powinna zawierać:
* umiejscowienie skryptów startowych serwera mongrel
* listę domen na których ma działać aplikacja rails.