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)?

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

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

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.