如何在共享托管环境(例如 Dreamhost)中使用 mod_rails 和 Apache 运行 Gollum?

如何在共享托管环境(例如 Dreamhost)中使用 mod_rails 和 Apache 运行 Gollum?

咕噜是 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

还要记得创建目录publictmp,因为 Passenger 需要这些。

但是,我遇到了另一个问题。您必须确保它git位于 webserver-user 的路径中。对我来说情况并非如此,不幸的是没有错误消息,您总是会停留在创建新页面的页面上。

相关内容