【发布时间】:2011-03-23 05:19:29
【问题描述】:
假设我有一个最简单的单文件 Sinatra 应用程序。他们主页上的hello world 就可以了。我想在 Apache 下使用 Phusion Passenger,AKA mod_rails 运行它。
- 我需要什么目录结构?
- 我必须在 vhost conf 文件中添加什么?
- 我知道我需要一个机架文件。里面有什么,为什么?
【问题讨论】:
标签: ruby apache sinatra passenger rack
假设我有一个最简单的单文件 Sinatra 应用程序。他们主页上的hello world 就可以了。我想在 Apache 下使用 Phusion Passenger,AKA mod_rails 运行它。
【问题讨论】:
标签: ruby apache sinatra passenger rack
app
|-- config.ru # <- rackup file
|-- hello-app.rb # <- your application
|-- public/ # <- static public files (passenger needs this)
`-- tmp/
`-- restart.txt # <- touch this file to restart app
<VirtualHost *:80>
ServerName app.example.com
DocumentRoot /path/to/app/public
<Directory /path/to/app/public>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
# encoding: UTF-8
require './hello-app'
run Sinatra::Application
#!/usr/bin/env ruby
# encoding: UTF-8
require 'rubygems' # for ruby 1.8
require 'sinatra'
get '/hi' do
"Hello World!"
end
restart.txt 为空。
【讨论】:
带有乘客的机架应用程序的示例 vhost 文件:
<VirtualHost *:80>
ServerName server.local
ServerAlias *.server.local
DocumentRoot /dir/public
RackEnv development
<Directory /dir/public>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
示例 Config.ru:
require File.expand_path('../boot.rb', __FILE__)
use Rack::Middleware
run Rack::Cascade.new([array])
【讨论】: