我很ruby
陌生,我想知道,是否可以将我的 ruby 脚本部署在服务器上?
还是我应该使用 Rails?
据我所知,Rails 不是核心Ruby
语言的一部分,即使没有 RailsRuby
也有功能。server
(如 Java、PHP 等。)
编辑:
我有一个Ruby script
- 作为 cmd-line 传递的程序 - 我想以CGI
脚本/程序过去的方式将它部署到外部(甚至内部)服务器。
有很多工具可以部署 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 。
干杯!