Ruby on rails RubyonRails服务器设置

Ruby on rails RubyonRails服务器设置,ruby-on-rails,ruby,passenger,Ruby On Rails,Ruby,Passenger,我正在尝试将ROR应用程序部署到Ubuntu服务器(EC2)。 我正在使用以下版本: 红宝石:2.4.0p0 轨道:4.2.8 捆绑机:1.17.3 *出于某种原因,我的同事创建了一个gemset而不是普通的设置 gem env是: RubyGems Environment: - RUBYGEMS VERSION: 2.6.8 - RUBY VERSION: 2.4.0 (2016-12-24 patchlevel 0) [x86_64-linux] - INSTALLATION

我正在尝试将ROR应用程序部署到Ubuntu服务器(EC2)。 我正在使用以下版本:

  • 红宝石:2.4.0p0
  • 轨道:4.2.8
  • 捆绑机:1.17.3
*出于某种原因,我的同事创建了一个gemset而不是普通的设置

gem env是:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.6.8
  - RUBY VERSION: 2.4.0 (2016-12-24 patchlevel 0) [x86_64-linux]
  - INSTALLATION DIRECTORY: /home/ubuntu/.rvm/gems/ruby-2.4.0@myrepo
  - USER INSTALLATION DIRECTORY: /home/ubuntu/.gem/ruby/2.4.0
  - RUBY EXECUTABLE: /home/ubuntu/.rvm/rubies/ruby-2.4.0/bin/ruby
  - EXECUTABLE DIRECTORY: /home/ubuntu/.rvm/gems/ruby-2.4.0@myrepo/bin
  - SPEC CACHE DIRECTORY: /home/ubuntu/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /home/ubuntu/.rvm/gems/ruby-2.4.0@myrepo
     - /home/ubuntu/.rvm/gems/ruby-2.4.0@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /home/ubuntu/.rvm/gems/ruby-2.4.0@myrepo/bin
     - /home/ubuntu/.rvm/gems/ruby-2.4.0@global/bin
     - /home/ubuntu/.rvm/rubies/ruby-2.4.0/bin
     - /home/ubuntu/.rvm/bin
     - /home/ubuntu/bin
     - /home/ubuntu/.local/bin
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/sbin
     - /usr/bin
     - /sbin
     - /bin
     - /usr/games
     - /usr/local/games
     - /snap/bin



我设置了nginx和passenger,并设置了根路径

  • nginx版本:nginx/1.17.3
  • 乘客:6.0.4
我相信nginx和乘客设置没有问题,但我发现以下错误: Phusion乘客应用程序服务器试图启动web应用程序。但是应用程序本身(而不是乘客)遇到了一个内部错误

错误详细信息:

cannot load such file -- bundler/setup (LoadError)
  /home/ubuntu/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
  /home/ubuntu/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:363:in `activate_gem'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:221:in `block in run_load_path_setup_code'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:527:in `running_bundler'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:220:in `run_load_path_setup_code'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:91:in `preload_app'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:189:in `block in <module:App>'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:380:in `run_block_and_record_step_progress'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:188:in `<module:App>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:30:in `<module:PhusionPassenger>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<main>'
无法加载此类文件--捆绑程序/安装程序(加载错误)
/home/ubuntu/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
/home/ubuntu/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
/usr/lib/ruby/vendor\u ruby/phusion\u passenger/loader\u shared\u helpers.rb:363:in'activate\u gem'
/usr/lib/ruby/vendor\u ruby/phusion\u passenger/loader\u shared\u helpers.rb:221:in`block in run\u load\u path\u setup\u code'
/usr/lib/ruby/vendor\u ruby/phusion\u passenger/loader\u shared\u helpers.rb:527:in'running\u bundler'
/usr/lib/ruby/vendor\u ruby/phusion\u passenger/loader\u shared\u helpers.rb:220:in'run\u load\u path\u setup\u code'
/usr/share/passenger/helper脚本/rack preload.rb:91:in'preload_app'
/usr/share/passenger/helper脚本/rack-preload.rb:189:in'block-in'
/usr/lib/ruby/vendor\u ruby/phusion\u passenger/loader\u shared\u helpers.rb:380:in'run\u block\u and\u record\u step\u progress'
/usr/share/passenger/helper脚本/rack preload.rb:188:in`'
/usr/share/passenger/helper脚本/rack preload.rb:30:in`'
/usr/share/passenger/helper脚本/rack preload.rb:29:in`'
到目前为止,子流程的stdout/stderr输出为:

 [passenger_native_support.so] trying to compile for the current user (nobody) and Ruby interpreter...
     (set PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY=0 to disable)
     Warning: compilation didn't succeed. To learn why, read this file:
     /tmp/passenger_native_support-18gfm98.log
 [passenger_native_support.so] finding downloads for the current Ruby interpreter...
     (set PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY=0 to disable)
     Could not download https://github.com/phusion/passenger/releases/download/release-6.0.4/rubyext-ruby-2.4.0-x86_64-linux.tar.gz: The requested URL returned error: 404 Not Found
     Trying next mirror...
     Could not download https://oss-binaries.phusionpassenger.com/binaries/passenger/by_release/6.0.4/rubyext-ruby-2.4.0-x86_64-linux.tar.gz: The requested URL returned error: 404 Not Found
     Trying next mirror...
     Could not download https://s3.amazonaws.com/phusion-passenger/binaries/passenger/by_release/6.0.4/rubyext-ruby-2.4.0-x86_64-linux.tar.gz: The requested URL returned error: 403 Forbidden
 [passenger_native_support.so] will not be used (can't compile or download) 
  --> Passenger will still operate normally.
Error: The application encountered the following error: cannot load such file -- bundler/setup (LoadError)
    /home/ubuntu/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    /home/ubuntu/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:363:in `activate_gem'
    /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:221:in `block in run_load_path_setup_code'
    /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:527:in `running_bundler'
    /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:220:in `run_load_path_setup_code'
    /usr/share/passenger/helper-scripts/rack-preloader.rb:91:in `preload_app'
    /usr/share/passenger/helper-scripts/rack-preloader.rb:189:in `block in <module:App>'
    /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:380:in `run_block_and_record_step_progress'
    /usr/share/passenger/helper-scripts/rack-preloader.rb:188:in `<module:App>'
    /usr/share/passenger/helper-scripts/rack-preloader.rb:30:in `<module:PhusionPassenger>'
    /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<main>'
[passenger\u native\u support.so]正在尝试为当前用户(nobody)和Ruby解释器编译。。。
(将乘客\编译\本地\支持\二进制=0设置为禁用)
警告:编译未成功。要了解原因,请阅读此文件:
/tmp/乘客\本地\支持-18gfm98.log
[passenger\u native\u support.so]正在查找当前Ruby解释器的下载。。。
(将乘客\下载\本地\支持\二进制=0设置为禁用)
无法下载https://github.com/phusion/passenger/releases/download/release-6.0.4/rubyext-ruby-2.4.0-x86_64-linux.tar.gz: 请求的URL返回错误:404未找到
正在尝试下一个镜像。。。
无法下载https://oss-binaries.phusionpassenger.com/binaries/passenger/by_release/6.0.4/rubyext-ruby-2.4.0-x86_64-linux.tar.gz: 请求的URL返回错误:404未找到
正在尝试下一个镜像。。。
无法下载https://s3.amazonaws.com/phusion-passenger/binaries/passenger/by_release/6.0.4/rubyext-ruby-2.4.0-x86_64-linux.tar.gz: 请求的URL返回错误:403禁止
[passenger\u native\u support.so]将不被使用(无法编译或下载)
-->乘客仍可正常操作。
错误:应用程序遇到以下错误:无法加载此类文件--bundler/setup(LoadError)
/home/ubuntu/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
/home/ubuntu/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
/usr/lib/ruby/vendor\u ruby/phusion\u passenger/loader\u shared\u helpers.rb:363:in'activate\u gem'
/usr/lib/ruby/vendor\u ruby/phusion\u passenger/loader\u shared\u helpers.rb:221:in`block in run\u load\u path\u setup\u code'
/usr/lib/ruby/vendor\u ruby/phusion\u passenger/loader\u shared\u helpers.rb:527:in'running\u bundler'
/usr/lib/ruby/vendor\u ruby/phusion\u passenger/loader\u shared\u helpers.rb:220:in'run\u load\u path\u setup\u code'
/usr/share/passenger/helper脚本/rack preload.rb:91:in'preload_app'
/usr/share/passenger/helper脚本/rack-preload.rb:189:in'block-in'
/usr/lib/ruby/vendor\u ruby/phusion\u passenger/loader\u shared\u helpers.rb:380:in'run\u block\u and\u record\u step\u progress'
/usr/share/passenger/helper脚本/rack preload.rb:188:in`'
/usr/share/passenger/helper脚本/rack preload.rb:30:in`'
/usr/share/passenger/helper脚本/rack preload.rb:29:in`'

有人知道吗?

乘客正在试图下载一个不存在的文件

尝试使用ruby 2.4.6,因为该版本在github发布页面上列出


乘客试图下载一个不存在的文件

尝试使用ruby 2.4.6,因为该版本在github发布页面上列出


最有可能的一点是,您正在
ubuntu
用户下设置和测试rvm/ruby,但nginx服务器正在其他用户下运行(该用户未配置rvm,至少在守护进程运行的会话中)

RVM能够创建一个包装器,该包装器将设置正确的路径和gemset(如果需要):

rvm alias为我的应用程序ruby-2.4创建ruby。0@myrepo

然后在
passer\u ruby
nginx config指令中使用
/home/ubuntu/.rvm/wrappers/ruby\u for_my\u app/ruby
(记住在更改后重新加载)

最有可能的一点是,您在
ubuntu
用户下设置和测试rvm/ruby,但nginx服务器在其他用户下运行(至少在守护进程运行的会话中未配置rvm)

RVM能够创建一个包装器,该包装器将设置正确的路径和gemset(如果需要):

rvm alias为我的应用程序ruby-2.4创建ruby。0@myrepo

然后在
passenger\u ruby
nginx-config指令中使用
/home/ubuntu/.rvm/wrappers/ruby\u for\u my\u app/ruby
(记住在更改后重新加载它)

如果运行
bundler-v
,输出是什么。这里可能的答案?@rockwelrice bundler version 1.17。3@RockwellRice索尔