如何让Phusion Passenger、MySQL和Rails在生产中发挥良好作用

如何让Phusion Passenger、MySQL和Rails在生产中发挥良好作用,mysql,ruby-on-rails,ruby,passenger,Mysql,Ruby On Rails,Ruby,Passenger,我已经编写了一个rails应用程序,在没有数据库的情况下运行了一段时间。现在,我将把注册数据库放到混合中。它在生产中不起作用。当然,在我的Mac电脑上,一切正常 以下是生产环境: -乌班图哈代 -普西翁旅客 -轨道2.3.2 机器上的MySQL运行正常 我有包含正确信息的database.yml文件。我可以毫无问题地运行迁移: rake db:migrate RAILS_ENV=production 正在正确更新数据库 所以,我点击tmp/restart并点击站点。我得到了500错误,但没有写

我已经编写了一个rails应用程序,在没有数据库的情况下运行了一段时间。现在,我将把注册数据库放到混合中。它在生产中不起作用。当然,在我的Mac电脑上,一切正常

以下是生产环境: -乌班图哈代 -普西翁旅客 -轨道2.3.2

机器上的MySQL运行正常

我有包含正确信息的database.yml文件。我可以毫无问题地运行迁移:

rake db:migrate RAILS_ENV=production
正在正确更新数据库

所以,我点击tmp/restart并点击站点。我得到了500错误,但没有写入生产日志(非常奇怪)。因此,我检查了apache日志,得到了以下消息:

!!!捆绑的mysql.rb驱动程序已从Rails 2.2中删除。请安装mysql gem并重试:gem安装mysql

我已经安装了MySQL gem(版本2.7)。我仍然有这个错误

当我将生产数据库配置更改为指向一个伪sqlite数据库时,一切正常。当我将其更改回MySQL配置时,会收到相同的错误消息

我完全没有主意了,我希望它能奏效。我很高兴,非常感谢你能提供的任何帮助。我已经包括了我能想到的所有信息,但是如果有更多有用的信息,请告诉我

谢谢


Jason

您是否尝试过通过sudo安装mysql gem?

我也收到了这个错误。您不能只安装mysql而不将其指向mysql\u配置文件,如:

sudo gem install mysql -- --with-mysql-config=/path/to/user/local/mysql/bin/mysql_config
我不得不从macports安装mysql,因为我的系统上没有可用的头文件。我以前用过MAMP


Macports安装到/opt,因此我的mysql配置路径是/opt/local/bin/mysql\u config5

是生产环境中运行Rails的用户路径中的mysql bin目录吗?

找到了它。呜呜

简介:Ruby企业版(更新,谢谢红丽!)有自己的一套宝石。尽管我在更新gem,但它并不是乘客正在阅读的

我是这样想的:

>> /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

然后,我重新启动了这个实例,它成功了。

@Jason Butler:我没有足够的声誉来评论,所以我将把它作为一个答案发布


不是Phusion Passenger有自己的一套宝石,而是Ruby企业版。事实上,这是有记录的,并解释了其原因:

是的。我实际上是以root安装的。这里是gem列表:**本地gem***actionmailer(2.3.2)actionpack(2.3.2)activerecord(2.3.2)activeresource(2.3.2)activesupport(2.3.2)builder(2.1.2)配置(0.0.5)cucumber(0.2.2)diff lcs(1.1.2)fastthread(1.0.5)feedtools(0.2.29)hoe(1.11.0)launchy(0.3.3)memcache客户端(1.7.0)mysql(2.1.1.2)polyglot(0.2.5)rails(2.3.2)rake(0.8.4)rspec(1.2.2)rubyforge(1.0.3)SystemTimer(1.1.1)term ansicolor(1.0.3)treetop(1.2.5)uuidtools(1.0.7)谢谢。我刚刚重建了gem(在我的Ubuntu系统上,它是/usr/bin/mysql\u config)。我仍然在apache日志中遇到相同的错误!!!捆绑的mysql.rb驱动程序已从Rails 2.2中删除。请安装mysql gem,然后重试:gem安装mysql。感谢您的回复!我想我已经正确设置了路径。是吗$PATH-bash:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$whereis-mysql-mysql:/usr/bin/mysql/etc/mysql/usr/lib64/mysql/usr/include/mysql/usr/share/mysql/usr/share/man/man1/mysql.1.gz$mysql-p输入密码:欢迎使用mysql监视器。命令以结束;或\g。您的MySQL连接id是19服务器版本:5.0.51a-3ubuntu5.4(Ubuntu)Grr。似乎无法在评论中换行。啊,干得好。我还没有在EnterpriseRuby上设置乘客,所以我不知道这一点。我相信在将来我最终升级时,你为我节省了一些时间。我以前也有过这样的经历。真讨厌!谢谢很高兴知道。我是一名产品经理,所以我做了一些巫毒调试。我希望将来有人会觉得这很有帮助。