我编写了一个 Rails 应用程序,它在没有数据库的情况下运行良好了一段时间。现在,我将注册数据库加入其中。它在生产中不起作用。当然,在我的 Mac 上一切正常。
这是生产环境: - Ubuntu哈代 - Phusion 乘客 - rails 2.3.2
机器上的 MySQL 运行良好。
我有包含正确信息的 database.yml 文件。我可以毫无问题地运行迁移:
rake db:migrate RAILS_ENV=production
数据库正在正确更新。
因此,我点击了 tmp/restart 并点击了该站点。我收到 500 错误,但没有任何内容写入生产日志(很奇怪)。所以,我检查了 apache 日志,我收到了这条消息:
!!!捆绑的 mysql.rb 驱动程序已从 Rails 2.2 中删除。请安装 mysql gem 并重试:gem install mysql。
我已经安装了 MySQL gem(2.7 版)。我仍然收到此错误。
当我将生产数据库配置更改为指向虚拟 sqlite 数据库时,一切正常。当我将其改回 MySQL 配置时,我收到相同的错误消息。
我完全没有想法,我希望它能奏效。我正在拔头发,非常感谢您提供的任何帮助。我已经包含了我能想到的所有内容,但如果有更多信息有用,请告诉我。
谢谢!
杰森
最佳答案
想通了。呜呼!
总结:Ruby 企业版(更新,感谢 Hongli!)有它自己的一套 gem 。即使我正在更新 gem,它也不是 Passenger 正在阅读的那个。
我是这样想的:
>> /usr$ whereis gem
gem: /usr/bin/gem /usr/bin/gem1.8 /opt/ruby-enterprise-1.8.6-20090201/bin/gem
>> /usr$ cd /opt/ruby-enterprise-1.8.6-20090201/bin/
>> /opt/ruby-enterprise-1.8.6-20090201/bin$ ls -l
total 2624
-rwxr-xr-x 1 root root 3907 2009-03-26 14:47 erb
-rwxr-xr-x 1 root root 813 2009-03-26 14:47 gem
-rwxr-xr-x 1 root root 349 2009-03-26 14:47 irb
-rwxr-xr-x 1 root root 386 2009-03-26 14:47 passenger-config
-rwxr-xr-x 1 root root 402 2009-03-26 14:47 passenger-install-apache2-module
-rwxr-xr-x 1 root root 396 2009-03-26 14:47 passenger-make-enterprisey
-rwxr-xr-x 1 root root 392 2009-03-26 14:47 passenger-memory-stats
-rwxr-xr-x 1 root root 392 2009-03-26 14:47 passenger-spawn-server
-rwxr-xr-x 1 root root 386 2009-03-26 14:47 passenger-status
-rwxr-xr-x 1 root root 391 2009-03-26 14:47 passenger-stress-test
-rwxr-xr-x 1 root root 366 2009-03-26 14:47 rackup
-rwxr-xr-x 1 root root 367 2009-03-26 14:47 rails
-rwxr-xr-x 1 root root 364 2009-03-26 14:47 rake
-rwxr-xr-x 1 root root 1560 2009-03-26 14:47 rdoc
-rwxr-xr-x 1 root root 64 2009-03-26 14:46 ree-version
-rwxr-xr-x 1 root root 1516 2009-03-26 14:47 ri
-rwxr-xr-x 1 root root 2609905 2009-03-26 14:46 ruby
-rwxr-xr-x 1 root root 178 2009-03-26 14:47 testrb
>> /opt/ruby-enterprise-1.8.6-20090201/bin$ ./gem list
*** LOCAL GEMS ***
actionmailer (2.3.2)
actionpack (2.3.2)
activerecord (2.3.2)
activeresource (2.3.2)
activesupport (2.3.2)
fastthread (1.0.5)
passenger (2.1.2)
postgres (0.7.9.2008.01.28)
rack (0.9.1)
rails (2.3.2)
rake (0.8.4)
sqlite3-ruby (1.2.4)
>> /opt/ruby-enterprise-1.8.6-20090201/bin$ ./gem install mysql
Building native extensions. This could take a while...
Successfully installed mysql-2.7
1 gem installed
然后,我重新启动了实例,它成功了。
关于mysql - 如何让 Phusion Passenger、MySQL 和 Rails 在生产环境中良好运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/888729/