代码之家  ›  专栏  ›  技术社区  ›  Adam Harte

在Apache上运行Ruby应用程序

  •  2
  • Adam Harte  · 技术社区  · 15 年前

    我最近一直在学习Ruby,我想将一个测试Web应用程序上传到我的服务器上。但我不知道如何让它在我的共享主机上运行。

    我的宿主详细信息

    • 与justhost共享托管(请参见 here for list of features )
    • 操作系统:Linux
    • Apache:2.2.11
    • 面板:11.25.0-稳定
    • SSH访问。
    • 罐头 安装红宝石。
    • 不能 安装Apache模块。
    • 罐头 管理Ruby on Rails应用程序 “通过CPanel。
    • 安装了Mongrel GEM。

    我建立了以下简单的地狱世界红宝石 齿条 应用程序使用 Sinatra :

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

    我只是不知道如何“启动”应用程序。我是否需要告诉Mongrel(或者Apache)应用程序以某种方式存在?如何启动此应用程序?如果需要,我很乐意提供更多信息。

    1 回复  |  直到 15 年前
        1
  •  3
  •   pejuko    15 年前

    首先,当服务器启动时,必须手动或通过脚本启动应用程序。只需做一些类似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>
    

    如果你有IE多核,你可以多次运行hi.rb(每次在不同的端口上),你只需要添加新的balancermember。您还可以使用以下指令打开Apache缓存:cacheEnable mem/