2016-03-08 38 views
0

CentOS上全新安裝7.編譯乘客原生支持與RVM用於不同Ruby版本

在〜/ .rvm安裝RVM新用戶客運

召開了由Apache用戶所擁有的所有網站

安裝RVM與2個紅寶石:

  • 1.9.3-P551(默認)
  • 2.3.0

我在默認的Ruby 1.9.3中安裝並編譯了Passenger作爲gem。

不過,我不斷收到這些條目在我/var/log/httpd/error_log上使用Ruby 2.3.0網站:

App 12909 stdout: 
App 12909 stderr: [passenger_native_support.so] trying to compile for the current user (apache) and Ruby interpreter... 
App 12909 stderr:  (set PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY=0 to disable) 
App 12909 stderr:  Warning: compilation didn't succeed. To learn why, read this file: 
App 12909 stderr:  /tmp/passenger_native_support-bqcp0n.log 
App 12909 stderr: [passenger_native_support.so] finding downloads for the current Ruby interpreter... 
App 12909 stderr: 
App 12909 stderr:  (set PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY=0 to disable) 
App 12909 stderr:  Could not download https://oss-binaries.phusionpassenger.com/binaries/passenger/by_release/5.0.26/rubyext-ruby-2.3.0-x86_64-linux.tar.gz: The requested URL returned error: 404 Not Found 
App 12909 stderr:  Trying next mirror... 
App 12909 stderr:  Could not download https://s3.amazonaws.com/phusion-passenger/binaries/passenger/by_release/5.0.26/rubyext-ruby-2.3.0-x86_64-linux.tar.gz: The requested URL returned error: 403 Forbidden 
App 12909 stderr: [passenger_native_support.so] will not be used (can't compile or download) 
App 12909 stderr: --> Passenger will still operate normally. 

現在,通常你會簡單地運行passenger-config build-native-support但是這顯然只適用於Ruby的環境下,乘客寶石內置(= 1.9.3)。

如何爲所有安裝了RVM的版本構建本機支持並使此錯誤消失?

回答

2

使用您希望編譯的Ruby簡單運行'passenger-config build-native-support'。

例如:

rvm use 2.3.0 
ruby /path-to-passenger-config build-native-support 

乘客不關心哪個紅寶石用於安裝乘客。無論您使用哪種Ruby安裝Passenger,都可以將Passenger用於任何Ruby。 https://www.phusionpassenger.com/library/indepth/ruby/multiple_rubies.html

+0

謝謝!我首先遵循你的鏈接,並告訴我運行'rvm use 2.3.0',然後運行'rvm-exec 1.9.3 ruby​​ -S passenger-config build-native-support'。但是,這不起作用!它只是立即返回,就好像文件已經建好一樣。然後我嘗試了你的評論:'rvm use 2.3.0',後面跟'/home/passenger/.rvm/gems/ruby-1.9.3-p551/gems/passenger-5.0.26/bin/passenger-config build-native支持「,這就是訣竅! (順便說一句,命令前的'ruby'不需要,因爲它是一個二進制文件) – ChrisDekker