我最近一直在学习 Ruby,我想将测试 Web 应用程序上传到我的服务器。但我不知道如何让它在我的共享主机上运行。
我的托管详细信息
- 与 JustHost 共享托管(请参阅 here for list of features)
- 操作系统:Linux
- Apache :2.2.11
- cPanel:11.25.0-稳定
- 否 SSH 访问。
- 可以安装 Ruby Gems。
- 无法安装 Apache 模块。
- 可以通过 cPanel“管理 Ruby on Rails 应用程序”。
- Mongrel gem 已安装。
我使用 Sinatra 构建了以下简单的 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/
关于ruby - 在 Apache 上运行 Ruby 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3057090/