gpt4 book ai didi

mysql - 使用 Passenger : missing the mysql gem 部署 Rails 3 时出现问题

转载 作者:行者123 更新时间:2023-11-29 07:10:28 24 4
gpt4 key购买 nike

我有一个问题似乎与另一篇文章中的问题非常相关,但我不明白所得出的解决方案。我是 Rails 的新手,并且组装了一个 Rails 3 应用程序。我正在 Windows 中开发,我试图通过 git 和 capistrano 将它部署到我的(共享的)Redhat Linux 服务器,并使用 Passenger 来提供页面。部署过程很顺利,但是当我尝试查看网页时,出现了乘客错误:

!!! Missing the mysql gem. Add it to your Gemfile: gem 'mysql', '2.8.1'.  

事实上,我已经将相应的行添加到我的 Gemfile 中,并且在服务器上执行“gem list”显示它就在那里。

在此post ,用户乐于指出完全相同的问题,并观察到 ​​Gemfile.lock 具有适用于 Windows 的 gem,即

mysql (2.8.1-x86-mingw32).  

这在我的 Gemfile.lock 中完全相同,所以我想我也遇到了同样的问题;可以看出这是 vendor/cache 和 vendor/bundle 中的 gem。

但是,我不明白该帖子中提议的修复应该如何工作。我可以将 Gemfile.lock 中的 mysql 行编辑为 mysql (2.8.1),但随后我得到一个不同的 Passenger 错误,上面写着

Can't find mysql-2.8.1 in any of the sources.

我该如何解决这个问题?

最佳答案

万一有人遇到同样的问题,以下是我所做的一些使它起作用的事情。我对发生的事情了解不够,无法确切知道是什么把戏。

首先,在 Gemfile 中,我指定我们需要相关 gem 的 ruby​​ 和 windows 版本。

gem 'sqlite3-ruby', "~> 1.2.5", :platforms => [:mswin, :ruby_18]

gem 'mysql', "2.8.1", :platforms => [:mswin, :ruby_18]

然后在生产服务器上,在使用“cap deploy”之后,我从 vendor/bundle 和 vendor/cache 中删除了 gem mysql-2.81-x86-mingw32。我的生产服务器让我“gem install mysql”和“gem install sqlite3-ruby”但是把它放在我的主目录的其他地方;我将它们复制到供应商/ bundle 和供应商/缓存中。我编辑了 Gemfile.lock 以将行“mysql (2.8.1-x86-mingw32)”更改为“mysql (2.8.1)”。生产服务器上的“bundle install”似乎安装了 linux 原生 gems(至少它说“构建原生扩展”)。

经过这一切,它似乎起作用了。

关于mysql - 使用 Passenger : missing the mysql gem 部署 Rails 3 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4830396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com