Comment exécuter Gollum en utilisant mod_rails et Apache dans un environnement d'hébergement partagé (par exemple Dreamhost)?

10

Gollum est le nouveau moteur wiki de GitHub écrit en Ruby. Déployé localement, il utilise une instance Sinatra pour fournir une interface Web.

Est-il possible de l'exécuter dans un environnement d'hébergement partagé tel que Dreamhost en utilisant Apache et mod_rails (Phusion Passenger)?

Kenners
la source

Réponses:

5

Créez le fichier "config.ru", ajoutez-y:

require "gollum/frontend/app"

Precious::App.set(:gollum_path, File.dirname(__FILE__))
Precious::App.set(:wiki_options, {})
run Precious::App
August Lilleaas
la source
7

Il y a un excellent guide sur:

https://github.com/tecnh/gollum/wiki/Gollum-and-Passenger

Les points principaux sont:

  • ajouter un config.ru à lib / gollum / frontend
  • Pointez la racine de votre document vers lib / gollum / frontend / public
  • Utilisez le config.ru suivant comme base, définissez le chemin wiki en conséquence (j'ai dû ajouter la partie de configuration du bundler)
#!/usr/bin/ruby
require 'rubygems'
require 'bundler/setup'
require 'gollum/frontend/app'

system("which git") or raise "Looks like I can't find the git CLI in your path.\nYour path is: #{ENV['PATH']}"

gollum_path = '/path/to/wiki' # CHANGE THIS TO POINT TO YOUR OWN WIKI REPO

disable :run

configure :development, :staging, :production do
 set :raise_errors, true
 set :show_exceptions, true
 set :dump_errors, true
 set :clean_trace, true
end

$path = gollum_path
Precious::App.set(:gollum_path, gollum_path)
Precious::App.set(:wiki_options, {})

run Precious::App
reto
la source
1

La réponse d'August Lilleaas est correcte, mais j'avais besoin d'utiliser une ancienne version de gollum, donc je l'ai installée avec Bundler:

Gemfile:

source 'http://rubygems.org'

gem 'rdiscount'
gem 'gollum', '1.3.0'

config.ru:

require 'rubygems'
require 'bundler'

Bundler.require

require "gollum/frontend/app"

Precious::App.set(:gollum_path, File.expand_path(File.dirname(__FILE__)))
Precious::App.set(:wiki_options, {})
run Precious::App

Pensez également à créer les répertoires publicet tmp, comme le requiert Passenger.

Cependant, j'ai rencontré un autre problème. Vous devez vous assurer qu'il se gittrouve dans le chemin de l'utilisateur du serveur Web. Pour moi, ce n'était pas le cas, et malheureusement il n'y a pas de message d'erreur, vous vous retrouvez toujours sur la page pour créer une nouvelle page.

fabi
la source