2010-06-16 126 views
2

我最近一直在學習Ruby,並且想要將測試Web應用程序上載到我的服務器。但我無法弄清楚如何讓它在我的共享主機上運行。在Apache上運行Ruby應用程序

我的託管詳細

  • 共享與Justhost的虛擬主機(見here for list of features
  • 操作系統:Linux
  • 的Apache:2.2.11
  • 的cPanel:11.25.0-STABLE
  • SSH訪問。
  • 可以安裝Ruby Gems。
  • 無法安裝Apache模塊
  • Can」通過cPanel管理Ruby on Rails應用程序「。
  • Mongrel寶石已安裝。

我建立了以下簡單的HelloWorld紅寶石機架採用Sinatra應用:

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

我只是無法弄清楚如何「啓動」的應用程序。我是否需要告訴Mongrel(或者Apache)應用程序以某種方式存在?我如何啓動這個應用程序運行?如果需要,我很樂意提供更多信息。

+0

如果託管服務擁有乘客支持,你可以運行任何基於機架的應用程序 – 2010-06-17 00:20:13

回答

3

首先,您必須在服務器啓動時手動或通過腳本啓動應用程序。只需做一些像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(diferent端口上的每個時間),你只需要添加新的BalancerMember。你也可以使用下面的指令來打開apache緩存:CacheEnable mem/

+0

當你說「做類似ruby hi.rb的事情」時,我在哪裏做?我還沒有SSH訪問權限,那麼我應該如何獲取? – 2010-06-18 23:42:53

+1

是的,這個解決方案期望你有權訪問服務器並且可以運行應用程序並且可以編輯Apache配置文件。如果你不能編輯apache配置文件,但是你可以執行你自己的服務器,你可以編輯.htacces,你只需要把ProxyPass和ProxyPassReverse作爲參數,你可以編輯/ http://127.0.0.1/4567。如果你不能運行應用程序,你可以嘗試通過運行它。 FCGI。看看這個:http://www.bluehostforums.com/showthread.php?p=76911 – pejuko 2010-06-19 20:47:07