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

(Wstępna konfiguracja)
(Czas życia aplikacji)
 
(Nie pokazano 17 wersji utworzonych przez 4 użytkowników)
Linia 1: Linia 1:
{{Stub}}
+
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]].
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]].
 
  
 
=== Wstępna konfiguracja ===
 
=== Wstępna konfiguracja ===
  
Do uruchomienia strony napisanej w ''Ruby on Rails'' należy pierw zadbać o instalację RVM oraz prawidłową konfigurację samej domeny. Przed przystąpieniem do dalszych kroków należy upewnić się, że:
+
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]].
 
* Domena jest prawidłowo dodana i skonfigurowana w naszym systemie [[DNS]].
 
* Została dodana [[WWW|Strona WWW]] z wskazaniem typu [[Ruby]].
 
* Została dodana [[WWW|Strona WWW]] z wskazaniem typu [[Ruby]].
* Zainstalować framework Ruby on Rails poleceniem <code>gem install rails</code>.
+
* Zainstalować framework Ruby on Rails poleceniami
 +
<code> 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 </code>
 +
 
 +
<code>gem install rails</code>.
  
 
=== Projekt Ruby on Rails ===
 
=== Projekt Ruby on Rails ===
Głównym katalogiem projektu Ruby on Rails (tj. katalog, w którym znajduje się folder app) musi być folder <code class="directory">/usr/home/''login''/domains/''domena''/public_ruby</code>. Nazwa projektu Ruby on Rails nie ma znaczenia, dopóki zachowana jest powyższa nazwa katalogu.
+
Głównym katalogiem projektu Ruby on Rails (tj. katalog, w którym znajduje się folder app) musi być folder <code class="directory">/usr/home/''login''/domains/''domena''/public_ruby</code>. 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 <code>rm /usr/home/''login''/domains/''domena''/public_ruby/public/index.html</code>
  
 
==== Nowy projekt Ruby on Rails ====
 
==== Nowy projekt Ruby on Rails ====
Linia 18: Linia 20:
 
  cd /usr/home/''login''/domains/''domena''/
 
  cd /usr/home/''login''/domains/''domena''/
 
  rm -rf public_ruby
 
  rm -rf public_ruby
  bundle config build.sqlite3 --with-sqlite3-include=/usr/local/include --with-sqlite3-lib=/usr/local/lib --with-sqlite3-dir=/usr/local/bin
+
  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
 
  rails new public_ruby
  
 
==== Istniejący projekt Ruby on Rails ====
 
==== Istniejący projekt Ruby on Rails ====
  
Istniejący projekt należy umieścić jako katalog <code class="directory">/usr/home/''login''/domains/''domena''/public_ruby/</code>. W przypadku gdy projekt nie nazywa się <code class="directory">public_ruby</code> należy zmienić jego nazwę. Silnik Phusion Passenger automatycznie wykryje nową aplikację.  
+
Istniejący projekt należy umieścić jako katalog <code class="directory">/usr/home/''login''/domains/''domena''/public_ruby/</code>. W przypadku gdy projekt nie nazywa się <code class="directory">public_ruby</code> należy zmienić jego nazwę. Silnik Phusion Passenger automatycznie wykryje nową aplikację.
  
 
=== Restart aplikacji ===
 
=== Restart aplikacji ===
  
Restart aplikacji ''Django'' 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 ===
 +
 
 +
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 33: 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]
[[Category:WWW]]
+
*[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ń 13: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