当我在PHP上编写Web应用程序时,它可以在不同的模式下工作:如FCGI(php-fpm),如apache模块(mod_php)等等。在所有这些情况下,当我正在编辑我的PHP脚本时,应用程序立即更新,而无需重新启动服务器。我知道Ruby Web应用程序也可以在不同模式下工作(即FCGI与Unicorn + Nginx)。但是我想了解所有最常见的方法来启动Ruby Web应用程序和关于所有这些方法的技术细节(即我应该重新启动服务器以更新脚本),它们的过程和缺点。
答案 0 :(得分:1)
有许多方法可以编写Ruby应用程序,经典的20世纪90年代风格的CGI,FastCGI,具有Mongrel或Thin的独立HTTP流程以及使用像{{{}}这样的启动器的更现代的推荐方法{3}}更直接地管理流程。
Ruby on Rails可以有多种操作模式。默认的两个是development
和production
。这些有一些重要的区别:
在开发:
app/
或config/routes.rb
中的任何内容。log/development.log
尽可能详细,记录每个执行的查询。在制作:
log/production.log
文件仅包含错误和重要通知。在生产服务器上编辑脚本通常是一个坏主意,因此Rails方法通常是一件好事。如果您需要快速迭代某些内容,请在本地副本上执行此操作,并仅在您确信自己能够正常工作时将更改推送到服务器。
如果您确实需要在服务器上进行紧急修复,可以编辑代码,然后touch tmp/restart.txt
强制重新加载。当您更改资产时,您必须运行rake assets:precompile
来重新打包它们。
与许多事情一样,Rails使推荐的方法变得容易,而且风险很大。