Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Let's say I have the simplest single-file Sinatra app. The hello world on their homepage will do. I want to run it under Apache with Phusion Passenger, AKA mod_rails.

  • What directory structure do I need?
  • What do I have to put in the vhost conf file?
  • I understand I need a rackup file. What goes in it and why?
like image 938
kch Avatar asked Jul 30 '10 12:07

kch


1 Answers

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-8 require './hello-app' run Sinatra::Application 

hello-app.rb (sample application):

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

restart.txt is empty.


Mildly useful links:

  • Heroku rack documentation
  • Phusion Passenger documentation
like image 191
kch Avatar answered Sep 22 '22 17:09

kch