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-devA 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>