Wie führe ich Gollum mit mod_rails und Apache in einer gemeinsam genutzten Hosting-Umgebung (z. B. Dreamhost) aus?

10

Gollum ist GitHubs neue Wiki-Engine, die in Ruby geschrieben wurde. Lokal bereitgestellt verwendet es eine Sinatra-Instanz, um eine Webschnittstelle bereitzustellen.

Ist es möglich, es in einer gemeinsam genutzten Hosting-Umgebung wie Dreamhost mit Apache und mod_rails (Phusion Passenger) auszuführen?

Kenners
quelle

Antworten:

5

Erstellen Sie die Datei "config.ru" und fügen Sie diese hinzu:

require "gollum/frontend/app"

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

Es gibt eine ausgezeichnete Anleitung zu:

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

Die Hauptpunkte sind:

  • Fügen Sie lib / gollum / frontend eine config.ru hinzu
  • Zeigen Sie mit Ihrem Dokumentstamm auf lib / gollum / frontend / public
  • Verwenden Sie die folgende config.ru als Basis und stellen Sie den Wiki-Pfad entsprechend ein (ich musste den Bundler-Setup-Teil hinzufügen).
#!/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
quelle
1

Die Antwort von August Lilleaas ist richtig, aber ich musste eine ältere Version von Gollum verwenden, also habe ich sie mit Bundler eingerichtet:

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

Denken Sie auch daran, die Verzeichnisse zu erstellen publicund tmp, wie Passenger diese benötigt.

Ich bin jedoch auf ein anderes Problem gestoßen. Sie müssen sicherstellen, dass gitsich das im Pfad des Webserver-Benutzers befindet. Für mich war dies nicht der Fall und leider gibt es keine Fehlermeldung. Sie landen einfach immer auf der Seite, um eine neue Seite zu erstellen.

fabi
quelle