我在Windows上使用VirtualBox来运行Ubuntu操作系统,该操作系统运行的是交钥匙rails软件包,它包含ruby 1.8,rails 2.3.8和2.2.5乘客。当我第一次用一个vanilla rails应用程序启动它时工作正常,但现在我收到以下错误:
未初始化的常量PhusionPassenger :: Utils :: PseudoIO :: StringIO
我用谷歌搜索了这个,并且在phusion / google小组上它说这是一个老错误并升级乘客,我用宝石升级乘客做了。它说它正在安装乘客2.2.15,但它似乎没有使用它。我重新启动了整个虚拟机,它仍然给我同样的错误,回溯显示乘客2.2.5。
我意识到这里存在多个层次,并且有很多地方可以解决问题,而且除此之外,我几乎是Linux新手。我对rails有一些经验。我很感激任何帮助。
答案 0 :(得分:1)
它可能是您的Apache配置文件。当Passenger安装时,它会向/etc/apache2/http.conf
文件添加一些代码,以便Apache加载Passenger扩展。此代码包含版本号,因此如果您更改了Apache的版本,则需要修改此文件。您正在寻找的代码如下所示
LoadModule passenger_module /opt/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
PassengerRoot /opt/local/lib/ruby/gems/1.8/gems/passenger-2.2.15
PassengerRuby /opt/local/bin/ruby
您必须通过身份验证才能编辑文件,以便打开终端窗口并输入
sudo gedit /etc/apache2/http.conf
并输入您的密码以编辑该文件。一旦你做了更改关闭gedit然后运行
sudo /etc/init.d/apache2 restart
重新启动Apache并再次尝试使用Rails应用程序。
答案 1 :(得分:0)
尝试使用
gem list
确保安装了新版本。乘客宝石旁边应该看到的不仅仅是列出的版本。
您可以使用
gem clean
删除旧版本。