我在CentOS服务器上使用Passenger 4.0.45在Apache上运行多个网站。我使用rvm 1.25.27安装了多个ruby版本,过去3年我使用的是Ruby 2.1.2版本。
我现在用Rails 5.1开始了一个新的应用程序,我需要安装Ruby 2.4.2。在部署了我的应用程序后,我得到了一个Internal Server Error
,这是我在错误日志中遇到的错误:
App 10033 stderr: /usr/local/rvm/gems/ruby-2.1.2@rails-4.0/gems/passenger-4.0.45/lib/phusion_passenger/request_handler.rb:356:in `trap'
App 10033 stderr: :
App 10033 stderr: Invalid argument - SIGKILL
App 10033 stderr: (
App 10033 stderr: Errno::EINVAL
App 10033 stderr: )
我注意到显示的ruby版本是ruby-2.1.2@rails-4.0
,我认为它应该是2.4.2
因为我在VirtualHost文件中指定的版本:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /.../current/public
PassengerRuby /home/user/.rvm/wrappers/ruby-2.4.2@global/ruby
<Directory
/home/user/.../current/public>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
我已经在https://github.com/phusion/passenger/issues/1362上读到了这个错误,但我不知道是否可以更新Passenger,而不会搞乱我使用旧版Ruby运行的其他网站。
答案 0 :(得分:1)
我找到了问题的答案。我将解释我的所作所为:
httpd.conf
和LoadModule
更新了我的PassengerRoot
文件。完成上述命令之后,我使用Rails 5.1的新应用程序和运行在较低Ruby / Rails版本上的服务器中的每个其他站点一样。