我对ruby
很新,我想知道,是否可以在服务器上部署我的ruby脚本?
或者我应该使用Rails?
我可以理解Rails不是核心Ruby
lang的一部分,Ruby
即使没有Rails也有server
功能。 (如在Java,PHP等中。)
修改:
我有Ruby script
- 充当cmd-line传递的程序 - 我想以CGI
脚本/程序过去的方式将其部署到外部(甚至内部)服务器。
答案 0 :(得分:0)
是的,您可以部署任何Ruby应用程序,而不仅仅是Rails应用程序。看看Capistrano。
然而,部署和服务是两回事。如果您正在寻找Ruby HTTP服务器,请查看Unicorn,Thin,WEBrick,Puma。
如果您想要一个成熟的解决方案,请尝试处理部署和网络服务部分的Heroku。
答案 1 :(得分:0)
有很多工具可以部署Ruby项目,但你可以手动完成。
我也发现很难找到一个易于使用的解决方案,我认为这在RoR框架中是一个非常烦人的差距。
我一直在使用Git将项目部署到服务器的解决方案,比如Heroku工具带(google it,这是一个非常好的工具)。主要概念是:您使用Git推送您的项目,服务器执行其他所有操作!在这里,您可以看到我的项目:https://github.com/sentient06/RDH/。
但请不要专注于此。相反,请阅读我在wiki中获取所有信息的方式:https://github.com/sentient06/RDH/wiki。
这有点过时了,但我可以在这里总结一下:
首先,设置您的服务器。这是最无聊的部分,您必须设置所有配置,安全措施,远程访问等等。
如果您没有服务器,可以专门为RoR应用程序雇用一台服务器。有一些好的,每个都有不同的部署工作流程。但假设您决定自己设置:
我建议你有任何Linux或Unix系统,服务器版本。然后安装Ruby Version Manager,然后安装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。
干杯!