0

我很ruby陌生,我想知道,是否可以将我的 ruby​​ 脚本部署在服务器上?
还是我应该使用 Rails?

据我所知,Rails 不是核心Ruby语言的一部分,即使没有 RailsRuby也有功能。server(如 Java、PHP 等。)

编辑

我有一个Ruby script- 作为 cmd-line 传递的程序 - 我想以CGI脚本/程序过去的方式将它部署到外部(甚至内部)服务器。

4

2 回答 2

0

是的,您可以部署任何 Ruby 应用程序,而不仅仅是 Rails 应用程序。看看卡皮斯特拉诺

然而,部署和服务是两件不同的事情。如果您正在寻找 Ruby HTTP 服务器,请查看 Unicorn、Thin、WEBrick、Puma。

如果您想要一个成熟的解决方案,请尝试同时处理部署Web 服务部分的Heroku 。

于 2013-10-09T16:26:26.777 回答
0

有很多工具可以部署 Ruby 项目,但您几乎可以手动完成。

我还发现很难找到一个易于使用的解决方案,我认为这是 RoR 框架中一个非常烦人的差距。

我一直在研究使用 Git 将项目部署到服务器的解决方案,例如 Heroku 工具带(google it,是一个非常好的工具)。主要概念是:您使用 Git 推送您的项目,而服务器完成其他所有工作!在这里你可以看到我的项目:https ://github.com/sentient06/RDH/ 。

但请不要专注于此。相反,请阅读我在 wiki 中获取所有信息的方式:https ://github.com/sentient06/RDH/wiki 。

它有点过时了,但我可以在这里给你总结一下:

首先,设置您的服务器。这是最无聊的部分,您必须设置所有配置、安全措施、远程访问等。

如果您没有服务器,您可以专门为 RoR 应用租用一台。有一些好的,每个都有不同的部署工作流程。但是假设您决定自己设置:

我建议你有任何 Linux 或 Unix 系统,服务器版本。然后安装 Ruby 版本管理器、Ruby 和 Rails。然后安装服务器应用程序。我建议 Thin,但很多人使用 Unicorn 或 Apache 或其他服务器。在互联网上挖掘一点,找到一个易于使用的解决方案。但是,如果您不使用 Apache,您还需要一个“反向代理”,因此您可以将端口 80、8080 等上的所有请求重定向到您的应用程序。我建议使用 Nginx(我不喜欢 Apache,我认为这太过分了)。

现在,一切都完成了,部署过程或多或少可以像这样完成:

1 - 以您的文件在服务器中更新的方式提交所有内容;

2 - 在服务器中,cd到您的应用程序的目录并执行以下命令:

$ bundle package
$ bundle install --deployment
$ RAILS_ENV=production rake db:migrate
$ rake assets:precompile

3 - 重新启动服务器,如有必要,重新启动反向代理。

在互联网上挖掘以了解每个命令。这些将迫使您的应用程序进入生产模式,减少 javascript 和 CSS 使用的空间,迁移您的生产数据库并安装捆绑包。生产 RoR 与开发 RoR 没有太大区别,只是更紧凑、更快。

我希望这些信息有用。

祝你好运!

更新

我忘了说,检查一下ruby-toolbox,它有一些关于 Rails 技术更新频率的非常有用的统计数据和信息。他们有很多类别,这个是关于部署自动化的,看看:https ://www.ruby-toolbox.com/categories/deployment_automation 。

干杯!

于 2013-10-09T16:55:17.647 回答