Red*_*ech 0 php ruby webserver
我是Ruby的新手,我习惯了PHP风格的web服务器.
我想知道我是否有办法以与PHP相同的方式运行ruby.Apache是首选,但不是强制性的.
例如,在我的index.php文件中,我将有一些内容echo '<p>hello world</p>;,当我查看网页时,它将显示给我<p>hello world</p>,但解析为HTML.
我想知道我是否能用ruby做同样的事情,所以puts '<p>hello world</p>'在index.rb中会显示与index.php相同的东西.
我知道Rails和Sinatra,但我不想让ruby进程不断运行.Sinatra将是完美的,但我必须保持脚本运行,并在每次修改后重新启动它.
我只想保存文件,然后就是全部.一切都已更新,无需运行任何流程.
有没有办法做到这一点?
最接近的是Passenger,它是Apache和Nginx的支持模块,运行基于Rack的Ruby应用程序.
它将在必要时启动Ruby进程,并在它们不再使用时终止它们.它实际上非常高效,甚至非常适中的VPS(512MB)也可以处理运行多个站点的大量流量.
只是.php在服务器上转储文件并在那里工作的模型是不可扩展的,你很快就会得到一堆代码.现代PHP站点使用像Laravel这样的框架,它有一个路由层,部署应用程序并不像上传一些文件那么简单.如果你将一个好的PHP站点和一个好的Ruby站点进行比较,那里有很多共性,两者都需要一个适当的部署过程,而不是在服务器上临时转储文件.
一旦你习惯了它,使用像Capistrano这样的部署管理器比使用FTP的神秘方法容易得多.它可以产生一致的结果,避免在更新期间崩溃您的网站,并且团队可以更有效地使用它,因为使代码正常运行所需的任何操作都以代码表示.部署自动化非常有价值.
听起来像你在服务器本身做了很多开发,这是一个你需要打破的坏习惯.创建一个本地开发环境并在那里工作,然后只有在测试后才能实现更改.像Vagrant这样的工具可以让您轻松在计算机上创建服务器环境,如果您的操作系统不那么有利于此类操作.如果目标主机是基于Linux的,则可以使用Linux服务器环境在本地进行开发.
默认情况下,Rails有一个自动加载器,它将在开发模式下启动,大多数例行更改会自动应用,而无需重新启动服务器.
我想你会发现,在你克服Rails的初始学习曲线后,你会非常高效.Sinatra的重量更轻,学习成本更低,但开箱即用也少得多,其非结构化特性可能导致混乱.Rails有非常强大的约定,有助于指导您在尝试解决问题时,有一个适合所有事情的地方,一切都取而代之.