在Apache上运行Ruby应用程序

我最近一直在学习Ruby,我想上传一个testingWeb应用程序到我的服务器。 但我无法弄清楚如何让它在我的共享主机上运行。

我的托pipe详细信息

  • 与JustHost共享主机(请参阅此处以查看function列表 )
  • 操作系统:Linux
  • Apache:2.2.11
  • cPanel:11.25.0-STABLE
  • 没有 SSH访问。
  • 可以安装Ruby Gems。
  • 无法安装Apache模块。
  • 可以通过cPanel“ pipe理Ruby on Rails应用程序 ”。
  • Mongrelgem已安装。

我使用Sinatra构build了以下简单的HelloWorld Ruby Rack应用程序:

#!/usr/bin/ruby ruby require 'rubygems' require 'sinatra' get '/hi' do "Hello World!" end 

我只是无法弄清楚如何“启动”应用程序。 我是否需要告诉Mongrel(或者Apache)应用程序以某种方式存在? 我如何启动这个应用程序运行? 如果需要,我很乐意提供更多信息。

首先,您必须在服务器启动时手动或通过脚本启动应用程序。 只要做一些像ruby hi.rb(如在sinatra网页上描述的那样,它在4567端口上运行应用程序)。 那么你有两个选择。 1)你可以直接访问这个应用程序: http:// yourserver:4567 /或者2)你可以使用apache作为代理。

如果你想使用Apache作为代理,你必须使用虚拟主机服务器。 例如:

 NameVirtualHost hi.server:80 <VirtualHost hi.server:80> servername hi.server RewriteEngine On <Proxy balancer://hi> BalancerMember http://127.0.0.1:4567 </Proxy> ProxyPass / balancer://hi/ ProxyPassReverse / balancer://hi/ </VirtualHost> 

如果你有多个核心,你可以多运行hi.rb一次(每次不同的端口),你只需添加新的BalancerMember。 你也可以使用指令来打开apache缓存:CacheEnable mem /