I'm on a shared server with cPanel, EasyApache4 and Phusion Passenger. My app was running fine with ruby 2.1.6 (in a shared directory) and rails 4.2.6. I had a .htaccess file:
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"
The server decided to upgrade and now I have to use the cPanel Application Manager to set up my app. I discovered the new .conf file:
<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>
Here's some info:
# /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]
Now, when I enable the app in Application Manager I get this in the apache log file:
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
So, I'm wondering what is going on: Does this package force itself to be used by passenger, i.e., overriding PassengerRuby? Have I misconfigured or missed some setting or env variable? Am I asking the right questions? All help appreciated!!! It's been a month now, and server admins keep telling me I've not configured the paths correctly, etc., but my stomach tells me to write you instead! (Thanks JP!)
CodePudding user response:
You have put PassengerRuby in the ENV section of your .conf file. It's not an ENV variable, but a setting for mod_passenger.c.
This should work better:
<IfModule mod_passenger.c>
...
PassengerRuby "/usr/local/bin/ruby"
...
</IfModule>
CodePudding user response:
I think the issue you are having is in your Gemfile based on the error in Passenger. The line:
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)
Try either changing ruby "2.1.6" to ruby "2.4.10" from the top of the file, or just remove the line from your Gemfile and run bundle install or bundle update.
The issue is that when you specify the ruby version in your Gemfile, I think it will override the version you have in the system when installing the gems.
