我有兩個RoR應用程序,一個是使用ruby 2.0.0,名爲dataentry3的gemset(rvm使用[email protected]),第二個應用程序使用ruby 1.9.3 @ V1。在nginx上部署多個Ruby on Rails應用程序
我試圖部署方式如下這些應用程序:
rvm use [email protected]
cd dir/app1
gem install passenger
passenger-install-nginx-module
編輯nginx.conf:
http { passenger_root /usr/local/rvm/gems/[email protected]/gems/passenger-4.0.3; server { listen 80; server_name localhost; location/{ passenger_ruby /usr/local/rvm/wrappers/[email protected]/ruby; root /var/www/adgally/dataentry4/public; passenger_enabled on; } } }
- 一切工作正常(
http://my-ip
)。
完成這些步驟之後我試圖部署上的地址http://my-ip/v1
秒應用程序(新PHUSION乘客允許運行多個Ruby版本,see here)
步驟我做:
rvm use [email protected]
cd dir/app2
gem install passenger
編輯nginx.conf:
http { passenger_root /usr/local/rvm/gems/[email protected]/gems/passenger-4.0.3; server { listen 80; server_name localhost; location/{ passenger_ruby /usr/local/rvm/wrappers/[email protected]/ruby; root /var/www/adgally/dataentry4/public; passenger_enabled on; } location /v1 { passenger_ruby /usr/local/rvm/wrappers/[email protected]/ruby; root /var/www/adgally/v1/public; passenger_enabled on; } } }
在此之後,第二應用(http://my-ip/v1
)不工作。我收到提示:
Permission denied - /nonexistent (Errno::EACCES)
/usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/fileutils.rb:247:in `mkdir'
/usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/fileutils.rb:247:in `fu_mkdir'
/usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/fileutils.rb:221:in `block (2 levels) in mkdir_p'
/usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/fileutils.rb:219:in `reverse_each'
/usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/fileutils.rb:219:in `block in mkdir_p'
/usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/fileutils.rb:205:in `each'
/usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/fileutils.rb:205:in `mkdir_p'
/usr/local/rvm/gems/[email protected]/gems/passenger-4.0.3/lib/phusion_passenger/native_support.rb:145:in `mkdir'
/usr/local/rvm/gems/[email protected]/gems/passenger-4.0.3/lib/phusion_passenger/native_support.rb:162:in `block in compile'
/usr/local/rvm/gems/[email protected]/gems/passenger-4.0.3/lib/phusion_passenger/native_support.rb:160:in `each'
/usr/local/rvm/gems/[email protected]/gems/passenger-4.0.3/lib/phusion_passenger/native_support.rb:160:in `each_with_index'
/usr/local/rvm/gems/[email protected]/gems/passenger-4.0.3/lib/phusion_passenger/native_support.rb:160:in `compile'
/usr/local/rvm/gems/[email protected]/gems/passenger-4.0.3/lib/phusion_passenger/native_support.rb:138:in `compile_and_load'
/usr/local/rvm/gems/[email protected]/gems/passenger-4.0.3/lib/phusion_passenger/native_support.rb:37:in `start'
/usr/local/rvm/gems/[email protected]/gems/passenger-4.0.3/lib/phusion_passenger/native_support.rb:205:in `<top (required)>'
/usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/usr/local/rvm/gems/[email protected]/gems/passenger-4.0.3/helper-scripts/rack-preloader.rb:48:in `init_passenger'
/usr/local/rvm/gems/[email protected]/gems/passenger-4.0.3/helper-scripts/rack-preloader.rb:126:in `<module:App>'
/usr/local/rvm/gems/[email protected]/gems/passenger-4.0.3/helper-scripts/rack-preloader.rb:6:in `<module:PhusionPassenger>'
/usr/local/rvm/gems/[email protected]/gems/passenger-4.0.3/helper-scripts/rack-preloader.rb:5:in `<main>'
必須有紅寶石2.0.0和Ruby-1.9.3乘客寶石之間的衝突。我不明白爲什麼,因爲新版本的乘客是支持這一點的。在passenger_root
指令更改爲/usr/local/rvm/gems/[email protected]/gems/passenger-4.0.3
後第二個應用程序開始工作,但第一個不是(幾乎相同的錯誤日誌)。
我在nginx.conf文件(兩個不同的位置)中設置了兩個PassangerRuby選項。 – Arti