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.
Spis treści
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
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 /usr/home/login/domains/domena/logs/
.