我无论如何都无法让 Redmine 运行。我不是 Ruby 程序员。我尝试使用apt-get
,但安装程序失败了,所以我选择从 Redmine 的源代码手动安装。当我尝试在浏览器中启动它时,我得到:
应用程序错误
Rails 应用程序无法正常启动
这是日志文件:
[notice] FastCGI: process manager initialized (pid 11163)
[notice] Apache/2.2.22 (Ubuntu) mod_fastcgi/mod_fastcgi-SNAP-0910052141 Phusion_Passenger/2.2.1$
[warn] FastCGI: (dynamic) server "/project/redmine/public/dispatch.fcgi" started (pid 11185)
/usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require': no such file to load -- fcgi (LoadE$
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from /project/redmine/public/dispatch.fcgi:4
首先,这是我的版本:
$ ruby -v; rails -v; gem -v
ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]
Rails 3.2.6
1.8.15
$ uname -a
Linux host 3.2.0-29-generic-pae #46-Ubuntu SMP Fri Jul 27 17:25:43 UTC 2012 i686 i686 i386 GNU/Linux
根据Redmine的文档,这应该可以正常工作。
我的 redmine 位于/project/redmine
。该路径中的所有文件都具有 755 权限,但日志文件夹除外,该文件夹的权限为 666。我使用以下 apache 配置:
Alias /redmine "/project/redmine/public/"
<Directory "/project/redmine/public/">
Options Indexes ExecCGI FollowSymLinks
RailsBaseURI /project/redmine
PassengerResolveSymlinksInDocumentRoot on
Order allow,deny
Allow from all
AllowOverride all
</Directory>
Apache 具有以下模块:
核心 mod_log_config mod_logio prefork http_core mod_so mod_actionsmod_aliasmod_auth_basic mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindexmod_cgimod_deflate mod_dir mod_envmod_fastcgimod_mime mod_negotiationmod_passengermod_php5 mod_reqtimeoutmod_rewritemod_setenvif mod_status
这是我的 dispatch.fcgi。这是默认设置,但require
我为了修复这个问题添加了前两行。它看起来像:
#!/usr/bin/ruby
require 'rubygems'
require 'fcgi'
require File.dirname(__FILE__) + '/../config/boot'
require File.dirname(__FILE__) + '/../config/environment'
class Rack::PathInfoRewriter
def initialize(app)
@app = app
end
def call(env)
env.delete('SCRIPT_NAME')
parts = env['REQUEST_URI'].split('?')
env['PATH_INFO'] = parts[0]
env['QUERY_STRING'] = parts[1].to_s
@app.call(env)
end
end
Rack::Handler::FastCGI.run Rack::PathInfoRewriter.new(RedmineApp::Application)
我错过了什么?
答案1
来自部分“gem_original_require”:没有这样的文件可以加载--fcgi of the error message, I assume you're missing the
fcgi` gem。
使用以下命令安装:
sudo gem install fcgi
答案2
尝试Bitnami 的 Redmine 堆栈而是。它是一个开箱即用的软件包。安装后,Redmine(以及 Bitnami 上的所有其他堆栈)即可使用。您只需要进行必要的项目、跟踪器、用户等定义。