Ruby on Rails: Różnice pomiędzy wersjami

(Czas życia aplikacji)
 
(Nie pokazano 6 wersji utworzonych przez 2 użytkowników)
Linia 1: Linia 1:
MyDevil do uruchamiania aplikacji w ''Ruby on Rails'' (i w ogólności Ruby) używa silnika Phusion Passenger. Umożliwia on ustawienie dla każdej domeny oddzielnego interpretera. W przypadku Ruby on Rails, można skorzystać z systemowego interpretera - <code class="directory">/usr/local/bin/ruby</code>, natomiast zaleca się przygotować własne środowisko za pomocą [[RVM]].
+
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 - <code class="directory">/usr/local/bin/ruby</code>, natomiast zaleca się przygotować własne środowisko za pomocą [[RVM]].
  
 
=== Wstępna konfiguracja ===
 
=== Wstępna konfiguracja ===
Linia 30: Linia 30:
  
 
Restart aplikacji ''Ruby on Rails'' można wykonać za pomocą naszego [[DevilWEB|panelu zarządzania usługą]] w zakładce [[WWW]], lub przy użyciu polecenia [[Devil|systemu zarządzania kontem Devil]]: <code>devil www restart ''domena''</code>).
 
Restart aplikacji ''Ruby on Rails'' można wykonać za pomocą naszego [[DevilWEB|panelu zarządzania usługą]] w zakładce [[WWW]], lub przy użyciu polecenia [[Devil|systemu zarządzania kontem Devil]]: <code>devil www restart ''domena''</code>).
 +
 +
=== 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 ===
 
=== Pliki statyczne ===
  
 
Wszystkie pliki umieszczone w <code class="directory">/usr/home/''login''/domains/''domena''/public_ruby/public</code> 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 <code class="directory">/usr/home/''login''/domains/''domena''/public_ruby/public/robots.txt</code> będzie dostępny pod adresem http://''domena''/robots.txt.
 
Wszystkie pliki umieszczone w <code class="directory">/usr/home/''login''/domains/''domena''/public_ruby/public</code> 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 <code class="directory">/usr/home/''login''/domains/''domena''/public_ruby/public/robots.txt</code> 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ą [https://api.rubyonrails.org/classes/ActionDispatch/Response.html#attribute-i-headers API] aby wyłączyć X-Accel-Buffering należy ustawić atrybut header
 +
<syntaxhighlight code="ruby"> response.headers["X-Accel-Buffering"] = "no"</syntaxhighlight>
 +
 +
=== Logi ===
 +
 +
{{Warning|Nie należy usuwać katalogu logs, może to spowodować brak działania stron Node.js, Ruby, Python.}}
 +
 +
Logi błędów zapisują się do pliku error.log w katalogu <code class="directory">/usr/home/''login''/domains/''domena''/logs/</code>.
  
 
=== Odnośniki zewnętrzne ===
 
=== Odnośniki zewnętrzne ===
Linia 39: Linia 67:
 
* [http://rubyonrails.org/ Ruby on Rails ]
 
* [http://rubyonrails.org/ Ruby on Rails ]
 
* [https://www.phusionpassenger.com/ Phusion Passenger]
 
* [https://www.phusionpassenger.com/ Phusion Passenger]
 +
*[https://www.phusionpassenger.com/library/install/nginx/migrating/migrating_from_p4_to_p5.html Dostosowanie aplikacji uruchamianych uprzednio na Passenger 4 do Passenger 5]
  
 
[[Category:Ruby]]
 
[[Category:Ruby]]

Aktualna wersja na dzień 12:52, 8 lis 2022

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