如何在任何Web服务器(Apache或Mongrel或其他任何东西)中运行简单的ruby脚本

dev*_*zee 21 ruby webserver

我觉得很有趣的是,当我搜索相关的红宝石时,所有ruby都会在轨道相关的结果上弹出.所以没有人再使用原始红宝石了?

但是,我是红宝石的新手.今天早上我只想在web服务器上运行一个简单的hello world ruby​​脚本,首先是apache 2,然后尝试了mongrel.但不幸的是我失败了.我用各种方式搜索,但结果只显示有关铁轨上的红宝石.所以真的有办法在任何Web服务器上运行ruby脚本,或者即使我只想做一个hello world应用程序我也必须使用ror?

she*_*edd 10

Sinatra可能是你从没有Rails的Web服务器运行Ruby脚本的最佳选择.

看看这里:http://www.sinatrarb.com

来自Sinatra文档:

require 'sinatra'

get '/hi' do
  "Hello World!"
end
Run Code Online (Sandbox Code Playgroud)

然后,运行:

$ gem install sinatra
$ ruby -rubygems hi.rb
== Sinatra has taken the stage ...
>> Listening on 0.0.0.0:4567
Run Code Online (Sandbox Code Playgroud)

只需在浏览器中访问http://0.0.0.0:4567即可找到"Hello World"

...

除此之外,由于您还询问有关在Apache或其他Web服务器中运行的问题,您可能需要查看有关将基于Sinatra的新应用程序部署到Apache或Nginx的这些教程:

Apache:http://www.pastbedti.me/2009/11/deploying-a-sinatra-app-with-apache-and-phusion-passenger-aka-mod_rack/http://www.giantflyingsaucer.com/blog/p = 1716

Nginx:http://tommy.chheng.com/2009/06/09/deploying-a-sinatra-app-on-nginx-passenger-with-capistrano-and-git/

请注意这两个教程都涵盖了通过Passenger运行Sinatra(http://www.modrails.com/ - 不要被"modrails"名称:)推迟),我在Apache下部署应用程序时运气不错. Nginx的.


cHa*_*Hao 7

您可以配置Apache(例如)以.rb文件作为CGI脚本运行,然后在脚本顶部添加一个shebang行(#!/path/to/your/ruby或者可能#!/usr/bin/env ruby).然而,这并不是最佳的,因为它会为每个请求启动一个新的解释器.