Remine、Apache和Git这个三个软件,无论哪一个,单独说来安装、配置和使用都是非常方便的,可是想把它们结合起来,却不是那么容易的事情。这里就把这一周来遇到的种种问题记录下来。
一、Redmine + Apache的fcgi配置
参考文章:
http://www.redmine.org/projects/redmine/wiki/RedmineInstall
http://www.redmine.org/projects/redmine/wiki/HowTo_configure_Apache_to_run_Redmine
文章里默认的安装都是用cgi,而Redmine 2.0.0安装后,在public目录中只有一个dispatch.fcgi.example,所以也就意味只能使用fcgi来讲二者结合在一起。平时用惯了Apache的Virtual Host + Proxy和tomcat共同运行模式,对fcgi有些陌生。在按照文二中的mod_fastcgi的方法折腾半天后,才发现原来Apache还有官方的mod_fcgi,既然有官方发布的版本,那就毫无疑问的换成了mod_fcgi。安装相对比较简单,几个简单的配置:
1、在/etc/httpd/conf.d/中新建一个文件mod_fcgi.conf,内容如下:
<VirtualHost *:80>
DefaultInitEnv RAILS_ENV production
DocumentRoot /var/lib/redmine/public
<Directory "/var/lib/redmine/public/">
Options Indexes ExecCGI FollowSymLinks
AllowOverride all
Order deny,allow
Allow from all
</Directory>
<Location />
AddHandler fcgid-script .fcgi
FCGIWrapper "/usr/local/bin/ruby /var/lib/redmine/public/dispatch.fcgi" .fcgi
</Location>
</Virtualhost>
2、修改Redmine下的目录权限:
cd /var/lib
chown -R apache.apache redmine
chmod -R 775 redmine
3、修改/etc/httpd/logs目录权限:
如果这个目录没有指定合适的权限,可能出现类似下面的错误:
[Mon May 21 14:52:38 2012] [error] (13)Permission denied: mod_fcgid: couldn't bind unix domain socket /etc/httpd/logs/fcgidsock/10989.0
[Mon May 21 14:52:38 2012] [warn] (13)Permission denied: mod_fcgid: spawn process /usr/bin/ruby error
同样要增加读写和执行的权限
cd /var/httpd/
chmod -R 775 logs
4、一个还没有解决的问题。
按照上面的配置后,Redmine的访问路径就是根目录,即http://localhost/。而我安装的服务器上还有其他一些服务,想把地址改为http://localhost/redmine,却始终无法成功。 尝试了google到所有方法,包括把日文翻译成了英文来看,也没有解决。
还望已经解决该问题的同学不吝赐教,感激不尽 :-)
二、Redmine + Git
虽然现在Git已经是开源社区的主流,开始不可否认第三方软件对SVN的集成还是超级方便。只需要指定Repository的地址以及用户名、密码,保存后就可以在Redmine的Resository下面看到了所有提交记录,用户也一并拿到。可是Git就没有那么简单了。
1、再Git的Repository中添加hook
Redmine不会主动去Git的代码库中取提交记录,所以必须要为Git增加一个hook,每次提交后,会通知Redmine,然后Redmine再过来取提交记录。Git的代码库位置:/home/git/respoistory/myapp.git/,进入到hooks目录,将post-receive.sample改为post-receive,然后添加下面的内容:
#!/bin/sh
curl "http://localhost/sys/fetch_changesets?key=XegbKj4EarU1YMor5S1N&id=myapp"
后面的id是Redmine中Project的id。
完成配置后,对myapp做了几次修改,但是在Redmine还是404,什么原因呢?!
2、权限,权限,还是权限
查看Apache的错误日志,看到了下面的内容:
fatal: Not a git repository: '/home/git/repositories/myapp.git'
fatal: Not a valid object name :
来回折腾的过程就不再赘述了,既然确定了是权限导致的,那么解决问题的方法很简单。首先不能把这些改为只有apache:apache可以访问,代码库的操作需要用git账户。那么就把apache添加到git的组里,打开/etc/group,找到git,修改为:
git:x:1638:apache
然后修改myapp.git的目录权限:
chmod -R g+r myapp.git
对于某些需要执行权限的,还要加上x。
回过头来再想,这些修改似乎都是不言而喻,尤其是文件权限,不是吗?
【后记】在突破上述的各种问题之后,在上个周五准备庆贺胜利的时候,才发现Backlogs插件对高版本的。今天就重新安装了Redmine1.4.2和Backlogs,安装过程中并没有异样。可是在访问时,出现了下面的错误:
[Mon May 28 16:17:01 2012] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
/usr/local/lib/ruby/gems/1.8/gems/bundler-1.1.4/lib/bundler/source.rb:574:in `load_spec_files': http://github.com/Vanuan/cucumber-rails.git (at cucumber-rails2_v0.3.3) is not checked out. Please run `bundle install` (Bundler::GitError)
from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.1.4/lib/bundler/source.rb:372:in `local_specs'
from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.1.4/lib/bundler/source.rb:557:in `specs'
from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.1.4/lib/bundler/lazy_specification.rb:53:in `__materialize__'
from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.1.4/lib/bundler/spec_set.rb:86:in `materialize'
from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.1.4/lib/bundler/spec_set.rb:83:in `map!'
from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.1.4/lib/bundler/spec_set.rb:83:in `materialize'
from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.1.4/lib/bundler/definition.rb:127:in `specs'
from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.1.4/lib/bundler/definition.rb:172:in `specs_for'
from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.1.4/lib/bundler/definition.rb:161:in `requested_specs'
from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.1.4/lib/bundler/environment.rb:23:in `requested_specs'
from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.1.4/lib/bundler/runtime.rb:11:in `setup'
from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.1.4/lib/bundler.rb:107:in `setup'
from /var/lib/redmine/public/../config/../config/preinitializer.rb:16
from /var/lib/redmine/public/../config/boot.rb:33:in `load'
from /var/lib/redmine/public/../config/boot.rb:33:in `preinitialize'
from /var/lib/redmine/public/../config/boot.rb:15:in `boot!'
from /var/lib/redmine/public/../config/boot.rb:124
from /var/lib/redmine/public/../config/environment.rb:8:in `require'
from /var/lib/redmine/public/../config/environment.rb:8
from /var/lib/redmine/public/dispatch.fcgi:21:in `require'
from /var/lib/redmine/public/dispatch.fcgi:21
[Mon May 28 16:17:06 2012] [warn] [client 172.16.99.11] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server, referer: http://localhost/login
[Mon May 28 16:17:06 2012] [error] [client 172.16.99.11] Premature end of script headers: dispatch.fcgi, referer: http://localhost/login
其实cucumber相关的文件已经安装成功了。实在不知道应该如何修复,就把/var/lib/redmine/vendor/plugins/redmine_backlogs/Gemfile中
gem 'cucumber-rails', :git => 'http://github.com/Vanuan/cucumber-rails.git', :branch => 'cucumber-rails2_v0.3.3'
注释掉,重启apache。然后,一切就正常了。
分享到:
相关推荐
redmine_git_hosting, Redmine插件,使你可以轻松配置你自己的Git主机;) Redmine Git主机插件 Redmine插件,可以轻松配置你自己的Git主机;)这个插件允许在Redmine内直接管理 Gitolite 。你可以在这里关注通知,...
Webhooks集成(gitlab和自定义) 与启用的自动提取更改集设置以及与其他scm类型混合使用时效果很好自动删除无法访问的提交安装 cd [redmine-root]/pluginsgit clone https://github.com/linniksa/redmine_git_mirror...
centos6 安装redmine+apache2
Redmine Git进行中 这是一个提供Reduine问题的插件,例如“进行中的提取请求”,并且易于共享知识。 演示版 去做 用法 去做 要求 Redmine 3.2.x或更高版本 安装 git将未存档的插件克隆或复制到Redmine路径上的...
redmine与svn的互动集成,及相关配置
redmine_git_hosting_dev_env
testlink与redmine的迁移和集成 testlink版本1.9beat5 redmine使用的是bitnami redmine2.1 有问题可与我联系
这是testlink与redmine的集成文档,集成后使用更方便
redmine 安装 redmine 主题使用集成 redmine 插件使用集成
介绍testlink1.99和redmine的集成使用
总结一下本文解决了哪些别人没有解决的问题:(1)将Redmine集成到了已有的PHPNow系统中;(2)总结了安装InstantRails后应该修改哪些配置文件;(3)在非上网机上将RedMine安装为Windows服务,使其能开机自动运行。
Redmine 2.x的工作时间插件 我们在Sourcepole的日常工作中使用的时间跟踪器。 该插件在您的个人页面上提供了一个附加部分,用于跟踪您花费在项目和门票上的时间。 特点: 凭票分配进行时间跟踪 每个用户的工作...
详细说明了在centos在redmine的配置,包括,apache安装,ruby安装,mysql安装,redmine配置,redmine和apache关联,redmine的ldap认证配置,redmine的邮件服务器配置。
Redmine 命令一个简单的 Redmine 松弛集成来管理问题。 用途一个 Slack“Slash Commands”和一个“Incoming WebHooks”集成(参见安装)。它是如何工作的? 它作为 PHP 应用程序安装在您的 Web 服务器上(使用 ...
集成redmine和TortoiseSVN的一个工具插件。
对于Redmine。 common.sh会抛出所需的功能。 test-suite.sh运行所有以test_开头的文件。也就是说,所有测试都在运行。 以test_开头的各种文件都是测试。 我正在使用shunit2,这是LGPL v2.1,因此会将它们视为LGPL吗...
整合配置redmine-testlink
redmine_code_review:代码评审插件,需要按配置代码版本库(SVN, GIT等) redmine_dashboard:仪表盘,方便调整任务 redmine_jquery_opentip:让redmine支持jquery redmine_lightbox2:附件截图、PDF预览框 redmine...
http://blog.csdn.net/windtailljj/article/details/7176692 对应的资源
redmine gitlab plugin hook.可以用来集成gitlab与redmine。使得redmine代码库在gitlab库更新时自动拉取最新代码。