Jsou použité lokální gemy které nejsou v sytému.
Opět jako v předchozím případě, musíme mít nainstalovánu vývojovou verzi ruby a pár dalších balíčků. Například pro ruby 1.8 je to
#
aptitude install ruby1.8-dev make g++ apache2-prefork-dev libapr1-dev libaprutil1-dev
A nyní překlad phusion-passenger modulů pro Apache a Nginx.
#
cd /usr/local/gems#
source setvars#
gem install passenger#
passenger-install-apache2-module
V průbehu instlace se objeví text
Please edit your Apache configuration file, and add these lines: LoadModule passenger_module /usr/local/gems/gems/passenger-2.2.11/ext/apache2/mod_passenger.so PassengerRoot /usr/local/gems/gems/passenger-2.2.11 PassengerRuby /usr/bin/ruby1.8 After you restart Apache, you are ready to deploy any number of Ruby on Rails applications on Apache, without any further Ruby on Rails-specific configuration!
Suppose you have a Rails application in /somewhere. Add a virtual host to your Apache configuration file and set its DocumentRoot to /somewhere/public: <VirtualHost *:80> ServerName www.yourhost.com DocumentRoot /somewhere/public # <-- be sure to point to 'public'! <Directory /somewhere/public> AllowOverride all # <-- relax Apache security settings Options -MultiViews # <-- MultiViews must be turned off </Directory> </VirtualHost> And that's it! You may also want to check the Users Guide for security and optimization tips, troubleshooting and other useful information: /usr/local/gems/gems/passenger-2.2.11/doc/Users guide Apache.html Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-) http://www.modrails.com/
Vytvořil jsem si tedy konfigurační soubor pro Apache2 /etc/apache2/conf.d/passenger
LoadModule passenger_module /usr/local/gems/gems/passenger-2.2.11/ext/apache2/mod_passenger.so PassengerRoot /usr/local/gems/gems/passenger-2.2.11 PassengerRuby /usr/bin/ruby1.8
Pokud používáme RubyGems instalované v uživatelském prostoru, nebo v lokálním prostoru, tedy oddělené od systémových RubyGems, musíme provést pár úprav. Nejdříve samotné spouštění ruby. Musíme si vytvořit obálku, vlastní skript, pro spouštění ruby, ve kterém nastavíme správně cesty ke knihovnám. Tuto si můžeme uložit například do /usr/local/gems/bin/ruby-wrapper
s následujícím obsahem.
#!/bin/bash export RUBYLIB=/usr/local/gems/lib exec "/usr/bin/ruby1.8" "$@"
Můžeme si předefinovat více parametrů, jako je na stránce Passing environment variables to Ruby from Phusion Passenger.
Nemělo by v RUBYLIB
být /usr/local/gems/lib:/usr/lib/ruby/1.8
?
Další úpravou je konfigurace passenger modulu v Apache2. Zde musíme spouštět ruby přes náš ruby-wrapper. V souboru /etc/apache2/conf.d/passenger
upravíme direktivu PassengerRuby
.
# Load Passenger module and configure it. LoadModule passenger_module /usr/local/gems/gems/passenger-2.2.11/ext/apache2/mod_passenger.so PassengerRoot /usr/local/gems/gems/passenger-2.2.11 PassengerRuby /usr/local/gems/bin/ruby-wrapper
Poslední úpravou je nastavení prostředí v konfiguraci virtuálního webu
<VirtualHost *:80>
…
SetEnv GEM_HOME /usr/local/gems
…
<VirtualHost>