我在一個帶有 cPanel、EasyApache4 和 Phusion Passenger 的共享服務器上。我的應用程式在 ruby?? 2.1.6(在共享目錄中)和 rails 4.2.6 上運行良好。我有一個 .htaccess 檔案:
PassengerEnabled on
PassengerLoadShellEnvVars On
PassengerAppRoot /home/adminxxx/webapps/assist2prod/current/
PassengerRuby /usr/local/ruby20/bin/ruby
## General Apache options
#AddHandler cgi-script .cgi
#Options FollowSymLinks ExecCGI
# Redirect all requests not available on the filesystem to Rails
RewriteEngine On
RailsEnv production
RackEnv production
#ErrorDocument 500 "<h2>Production Application error</h2>Rails application failed to start properly"
服務器決定升級,現在我必須使用 cPanel 應用程式管理器來設定我的應用程式。我發現了新的 .conf 檔案:
<Location "/">
<IfModule mod_env.c>
SetEnv "PassengerRuby" "/usr/local/bin/ruby"
SetEnv "RackEnv" "production"
SetEnv "RailsEnv" "production"
</IfModule>
<IfModule mod_passenger.c>
PassengerAppEnv "production"
PassengerEnabled on
PassengerBaseURI "/"
PassengerAppRoot "/home/adminxxx/webapps/assist2prod/releases-2021old/20190707101851"
PassengerAppGroupName "adminxxx - WisdomTorontoProduction"
PassengerNodejs /opt/cpanel/ea-nodejs10/bin/node
</IfModule>
</Location>
<Directory "/home/adminxxx/webapps/assist2prod/releases-2021old/20190707101851">
Allow from all
Options -MultiViews
Options -Indexes
Require all granted
</Directory>
這是一些資訊:
# /usr/local/bin/ruby -v
ruby 2.1.6p336 (2015-04-13 revision 50298) [x86_64-linux]
# /usr/local/ruby20/bin/ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [x86_64-linux]
現在,當我在應用程式管理器中啟用該應用程式時,我在 apache 日志檔案中得到了這個:
App 792497 output: Error: The application encountered the following error: Your Ruby version is 2.4.10, but your Gemfile specified 2.1.6 (Bundler::RubyVersionMismatch)
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/local/share/gems/gems/bundler-2.2.27/lib/bundler/definition.rb:441:in `validate_ruby!'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/local/share/gems/gems/bundler-2.2.27/lib/bundler/definition.rb:416:in `validate_runtime!'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/local/share/gems/gems/bundler-2.2.27/lib/bundler.rb:143:in `setup'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/local/share/gems/gems/bundler-2.2.27/lib/bundler/setup.rb:20:in `block in <top (required)>'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/local/share/gems/gems/bundler-2.2.27/lib/bundler/ui/shell.rb:136:in `with_level'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/local/share/gems/gems/bundler-2.2.27/lib/bundler/ui/shell.rb:88:in `silence'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/local/share/gems/gems/bundler-2.2.27/lib/bundler/setup.rb:20:in `<top (required)>'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/share/passenger/phusion_passenger/loader_shared_helpers.rb:365:in `activate_gem'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/share/passenger/phusion_passenger/loader_shared_helpers.rb:221:in `block in run_load_path_setup_code'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/share/passenger/phusion_passenger/loader_shared_helpers.rb:529:in `running_bundler'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/share/passenger/phusion_passenger/loader_shared_helpers.rb:220:in `run_load_path_setup_code'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/share/passenger/helper-scripts/rack-preloader.rb:91:in `preload_app'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/share/passenger/helper-scripts/rack-preloader.rb:189:in `block in <module:App>'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/share/passenger/phusion_passenger/loader_shared_helpers.rb:382:in `run_block_and_record_step_progress'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/share/passenger/helper-scripts/rack-preloader.rb:188:in `<module:App>'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/share/passenger/helper-scripts/rack-preloader.rb:30:in `<module:PhusionPassenger>'
App 792497 output: /opt/cpanel/ea-ruby24/root/usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<main>'
[ E 2021-10-15 17:49:04.3920 983139/T8j age/Cor/App/Implementation.cpp:221 ]: Could not spawn process for application /home/adminxxx/webapps/assist2prod/releases-2021old/20190707101851: The application encountered the following error: Your Ruby version is 2.4.10, but your Gemfile specified 2.1.6 (Bundler::RubyVersionMismatch)
Error ID: cf24ad74
Error details saved to: /var/run/ea-ruby24-passenger/passenger-error-cRgyLU.html
所以,我想知道發生了什么:這個包是否強制自己被乘客使用,即覆寫PassengerRuby?我是否配置錯誤或錯過了某些設定或環境變數?我問的問題正確嗎?感謝所有幫助!!!現在已經一個月了,服務器管理員一直告訴我我沒有正確配置路徑等等,但我的胃告訴我改寫你!(謝謝JP!)
uj5u.com熱心網友回復:
您已放入檔案PassengerRuby的 ENV 部分.conf。它不是 ENV 變數,而是mod_passenger.c.
這應該作業得更好:
<IfModule mod_passenger.c>
...
PassengerRuby "/usr/local/bin/ruby"
...
</IfModule>
uj5u.com熱心網友回復:
我認為您遇到的問題是Gemfile基于乘客中的錯誤。線路:
App 792497 output: Error: The application encountered the following error: Your Ruby version is 2.4.10, but your Gemfile specified 2.1.6 (Bundler::RubyVersionMismatch)
嘗試從檔案頂部更改ruby "2.1.6"為ruby "2.4.10",或者只是從您的檔案中洗掉該行Gemfile并運行bundle install或bundle update。
問題是當您在 Gemfile 中指定 ruby?? 版本時,我認為它會在安裝 gems 時覆寫您在系統中的版本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/330626.html
上一篇:Ruby傳遞符號作為關鍵字引數?
下一篇:將字串arra轉換為整數陣列
