在 Windows Apache MySQL 上的生产环境中部署 Rails 4

Posted

技术标签:

【中文标题】在 Windows Apache MySQL 上的生产环境中部署 Rails 4【英文标题】:Deploying Rails 4 in production on windows apache MySQL 【发布时间】:2015-07-20 18:46:54 【问题描述】:

我们已经在 Windows 12 服务器上部署了 Rails 4.1.0 / Ruby 2.1.6,在开发模式下使用 mysql,使用 WeBrick Web 服务器。我们现在希望将应用程序部署到使用 rails 4.1.0、ruby 2.1.6、windows 12 server、MySQL server 5.6 和 apache 以及 Mongrel 或 XAMPP 的生产环境

您能否指出我们的步骤/建议和想法,以帮助将我们的 Rails 应用程序部署到生产环境

【问题讨论】:

嗨,我不知道你为什么要部署到 Windows 机器上,也不知道为什么要使用 mongrel / XAMPP。如果这不是真的你想要做的我建议你去一个经典的堆栈:linux(也许是 ubuntu)+mysql(postgres 甚至更好)+乘客。如果是这种情况,我可以尝试帮助您,我们通常会在 Amazon Web Services 上快速部署。为什么选择 linux:***.com/questions/11648866/…. 我们已经将我们的生产环境迁移到了带有 MySQL 的 Linux(uBuntu)/nginx/Passenger。如果您能提供一些指示,我们也很想知道在 AWS 上部署。 【参考方案1】:

根据经验:最好的办法是忘记 Windows 部署。如果这不是一个选项,那么也许看看 JRuby 和 Warbler。只是不要期望:

来自社区的大量帮助(因为“没有人”部署在 Windows 上) 舒适的工作流程 开箱即用的东西

我也不明白你为什么需要 XAMPP?

【讨论】:

我们已经取消了 XaMPP - 这只是我们所做的许多试验中的一个。我们的生产转移到了 Linux,尽管开发仍在 Windows 上运行,但很快也会被替换到 Linux【参考方案2】:

如果您是第一次尝试部署,我建议您 Heroku。

 Heroku

好处是您可以通过点击安装addons(例如mysql database): - https://elements.heroku.com/

步骤真的很简单:

https://devcenter.heroku.com/articles/getting-started-with-rails4#write-your-app

简单地说:

# Install the `Heroku Toolbelt`
# inside Gemfile: gem 'rails_12factor', group: :production
# [git init & commit]
$ heroku login
$ apps:create my-app-name # run `heroku create --help` for further help
$ heroku addons:create jawsdb # mysql addon for `heroku`
$ git push heroku master
$ heroku run rake db:schema:load

 AWS

一段时间后,您可能会意识到,虽然部署起来很容易,但您仍需要更多的调整,并且可能需要更好的定价。 那时通常会出现 AWS,它在所有这些方面都有很好的平衡,我建议你 Elastic Beanstalk。

安装EB CLI 3 设置 git $ eb 初始化 $ eb 使用您的环境名称 $ eb 部署 $ eb ssh #进入机器

【讨论】:

感谢 Adit,了解在 AWS 上部署的步骤非常有用。我们现在已经成功部署在 Linux 上

以上是关于在 Windows Apache MySQL 上的生产环境中部署 Rails 4的主要内容,如果未能解决你的问题,请参考以下文章

Windows 上的 Django 1.6.1 + MySQL + Apache 2.4.7。可能吗? [关闭]

Windows 上的 PHP5.4,有 sqlite 但没有 Apache 和 MySQL

如何解决 Windows 7 上的 WAMP 和 Skype 冲突? [关闭]

Apache和MySQL windows服务的使用

PHPIniDir 在 windows 7 下坏了?

Windows 上的 httpd.conf:找不到 API 模型结构 `php8_module`