Skip to content

Instantly share code, notes, and snippets.

@witwall
Forked from MicahChalmer/.htaccess
Created April 6, 2013 09:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save witwall/5325487 to your computer and use it in GitHub Desktop.
Save witwall/5325487 to your computer and use it in GitHub Desktop.
<IfModule mod_fastcgi.c>
AddHandler fastcgi-script .fcgi
</IfModule>
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
</IfModule>
Options +FollowSymLinks +ExecCGI
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi/$1 [QSA,L]
#!/bin/bash
this_dir=`dirname $0`
unset GEM_HOME
unset GEM_PATH
export PATH=~/.rbenv/bin:"$PATH"
eval "$(~/.rbenv/bin/rbenv init -)"
err_log_file="${this_dir}/log/dispatch_err.log"
exec ~/.rbenv/shims/ruby "${this_dir}/dispatch_fcgi.rb" "$@" 2>>"${err_log_file}"
require 'rubygems'
require 'bundler'
Bundler.setup(:default, :fcgi)
require 'rack'
class Rack::PathInfoRewriter
def initialize(app)
@app = app
end
def call(env)
env['SCRIPT_NAME'] = '' # Don't delete it--Rack::URLMap assumes it is not nil
pathInfo, query = env['REQUEST_URI'].split('?', 2)
env['PATH_INFO'] = pathInfo
env['QUERY_STRING'] = query
@app.call(env)
end
end
app, options = Rack::Builder.parse_file('config.ru')
wrappedApp = Rack::Builder.new do
use Rack::ShowExceptions
use Rack::PathInfoRewriter
run app
end
Rack::Handler::FastCGI.run wrappedApp
# Initial setup for Ruby 1.9.3 on DreamHost shared hosting.
# We assume you're already in your project's root directory, which should
# also be the directory configured as "web directory" for your domain
# in the DreamHost panel.
# Install rbenv and ruby-build
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
# Create temporary directory--DreamHost does not allow files in /tmp to be
# executed, which makes the default not work
mkdir ~/.rbenv/BUILD_TEMP
# DreamHost will set your GEM_HOME and GEM_PATH for you, but this conflicts
# with rbenv, so we unset them here. You'll want to do this in your .bashrc
# on the dreamhost account.
unset GEM_HOME
unset GEM_PATH
# Add rbenv to PATH and let it set itself up.
# You probably want these two lines in your .bashrc as well:
export PATH=~/.rbenv/bin:"$PATH"
eval "$(~/.rbenv/bin/rbenv init -)"
# Decide which version of Ruby we're going to install and use.
NEW_RUBY_VERSION=1.9.3-p327
# Using that as the temp space, build and install ruby 1.9.3
TMPDIR=~/.rbenv/BUILD_TEMP rbenv install $NEW_RUBY_VERSION
# Now everything is set up properly, you should be able to set your
# directory to use the new ruby:
rbenv local $NEW_RUBY_VERSION
# Bundler doesn't come with ruby, so install it first:
gem install bundler
# Then use it to install the rest of your gems:
bundle install
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment