咕噜是 GitHub 用 Ruby 编写的新 wiki 引擎。在本地部署时,它使用 Sinatra 实例来提供 Web 界面。
是否可以使用 Apache 和 mod_rails(Phusion Passenger)在共享托管环境(如 Dreamhost)中运行它?
答案1
创建文件“config.ru”,并在其中添加以下内容:
require "gollum/frontend/app"
Precious::App.set(:gollum_path, File.dirname(__FILE__))
Precious::App.set(:wiki_options, {})
run Precious::App
答案2
有一篇出色的指南:
https://github.com/tecnh/gollum/wiki/Gollum-and-Passenger
要点如下:
- 将 config.ru 添加到 lib/gollum/frontend
- 将文档根目录指向 lib/gollum/frontend/public
- 使用以下 config.ru 作为基础,相应地设置 wiki 路径(我必须添加捆绑器设置部分)
#!/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
答案3
August Lilleaas 的回答是正确的,但是我需要使用旧版本的 gollum,因此我使用 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
还要记得创建目录public
和tmp
,因为 Passenger 需要这些。
但是,我遇到了另一个问题。您必须确保它git
位于 webserver-user 的路径中。对我来说情况并非如此,不幸的是没有错误消息,您总是会停留在创建新页面的页面上。