Ruby on Rails

Wersja z dnia 12:52, 8 lis 2022 autorstwa Sh89 (dyskusja | edycje) (Czas życia aplikacji)

(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)

MyDevil do uruchamiania aplikacji w Ruby on Rails (i w ogólności Ruby) używa silnika Phusion Passenger (minimalna wymagana wersja Rails to 2.3). Umożliwia on ustawienie dla każdej domeny oddzielnego interpretera. W przypadku Ruby on Rails, można skorzystać z systemowego interpretera - /usr/local/bin/ruby, natomiast zaleca się przygotować własne środowisko za pomocą RVM.

Wstępna konfiguracja

Do uruchomienia strony napisanej w Ruby on Rails należy najpierw zadbać o instalację RVM oraz prawidłową konfigurację samej domeny. Przed przystąpieniem do dalszych kroków należy upewnić się, że:

  • Domena jest prawidłowo dodana i skonfigurowana w naszym systemie DNS.
  • Została dodana Strona WWW z wskazaniem typu Ruby.
  • Zainstalować framework Ruby on Rails poleceniami

gem install nokogiri -- --use-system-libraries --with-iconv-lib=/usr/local/lib --with-iconv-include=/usr/local/include --with-xml2-lib=/usr/local/lib --with-xml2-include=/usr/local/include/libxml2/libxml --with-xslt-lib=/usr/local/lib --with-xslt-include=/usr/local/include/libxslt

gem install rails.

Projekt Ruby on Rails

Głównym katalogiem projektu Ruby on Rails (tj. katalog, w którym znajduje się folder app) musi być folder /usr/home/login/domains/domena/public_ruby. Nazwa projektu Ruby on Rails nie ma znaczenia, dopóki zachowana jest powyższa nazwa katalogu. Należy również usunąć plik index.html poleceniem rm /usr/home/login/domains/domena/public_ruby/public/index.html

Nowy projekt Ruby on Rails

Nowy projekt Ruby on Rails należy utworzyć w katalogu /usr/home/login/domains/domena/public_ruby - najprostszym sposobem utworzenia odpowiedniego projektu jest wydanie następujących poleceń:

cd /usr/home/login/domains/domena/
rm -rf public_ruby
gem install sqlite3 -- --build-flags --with-sqlite3-include=/usr/local/include --with-sqlite3-lib=/usr/local/lib --with-sqlite3-dir=/usr/local
rails new public_ruby

Istniejący projekt Ruby on Rails

Istniejący projekt należy umieścić jako katalog /usr/home/login/domains/domena/public_ruby/. W przypadku gdy projekt nie nazywa się public_ruby należy zmienić jego nazwę. Silnik Phusion Passenger automatycznie wykryje nową aplikację.

Restart aplikacji

Restart aplikacji Ruby on Rails można wykonać za pomocą naszego panelu zarządzania usługą w zakładce WWW, lub przy użyciu polecenia systemu zarządzania kontem Devil: devil www restart domena).

Limit procesów dla Phusion Passenger

Możliwość ustawienia ilości procesów dla stron typu Ruby. Składnia polecenia:

devil www options DOMENA processes <ILOŚĆ>

Gdzie: DOMENA oznacza domenę WWW typu Ruby. ILOŚĆ - ilość procesów w przedziale od 1 do 80% procesów systemowych konta hostingowego.

Opcja dostępna jest również w panelu DevilWEB:

Strony WWW (WWW Websites) ➡ Szczegóły (Details) ➡ Limit procesów (Number of processes) ➡ należy wpisać nową wartość oraz zapisać zmiany przyciskiem Zapisz zmiany (Save changes).

Pliki statyczne

Wszystkie pliki umieszczone w /usr/home/login/domains/domena/public_ruby/public są serwowane jak pliki statyczne. W tym katalogu najlepiej umieścić wszystkie obrazki, skrypty, style, itp. Żądania do plików znajdujących się w tym folderze nie będą przetwarzane przez skrypty Ruby i nie będą obciążać interpretatora. Na przykład plik /usr/home/login/domains/domena/public_ruby/public/robots.txt będzie dostępny pod adresem http://domena/robots.txt.

Czas życia aplikacji

W przypadku braku ruchu na stronie przez 24h aplikacja jest wyłączana automatycznie i ponownie automatycznie uruchamiana przy pierwszym następnym wejściu. W przypadku zmiany w konfiguracji po naszej stronie również aplikacja jest automatycznie wyłączana i uruchamiana przy następnym pierwszym wejściu na stronę.

X-Accel-Buffering

Zgodnie z dokumentacją API aby wyłączyć X-Accel-Buffering należy ustawić atrybut header

response.headers["X-Accel-Buffering"] = "no"

Logi

Logi błędów zapisują się do pliku error.log w katalogu /usr/home/login/domains/domena/logs/.

Odnośniki zewnętrzne