How do I set up a Sinatra app under Apache with Passenger? How do I set up a Sinatra app under Apache with Passenger? ruby ruby

How do I set up a Sinatra app under Apache with Passenger?


Basic directory structure:

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

Virtual host file:

<VirtualHost *:80>  ServerName    app.example.com  DocumentRoot  /path/to/app/public  <Directory    /path/to/app/public>    Order       allow,deny    Allow       from all  </Directory></VirtualHost>

config.ru

# encoding: UTF-8require './hello-app'run Sinatra::Application

hello-app.rb (sample application):

#!/usr/bin/env ruby# encoding: UTF-8require 'rubygems' # for ruby 1.8require 'sinatra'get '/hi' do  "Hello World!"end

restart.txt is empty.


Mildly useful links:


Example vhost file for rack app with passenger:

<VirtualHost *:80> ServerName   server.local ServerAlias  *.server.local DocumentRoot /dir/public RackEnv      development <Directory /dir/public> Order allow,deny  Allow from all </Directory></VirtualHost>

Example Config.ru:

require File.expand_path('../boot.rb', __FILE__)use Rack::Middlewarerun Rack::Cascade.new([array])