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 productionDocumentRoot /var/lib/redmine/public<Directory "/var/lib/redmine/public/">Options Indexes ExecCGI FollowSymLinksAllowOverride allOrder deny,allowAllow from all</Directory><Location />AddHandler fcgid-script .fcgiFCGIWrapper "/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、Apache、Git集成遇到的重重困难相关推荐

  1. Redmine与GitLab集成

    文章目录 Redmine与GitLab集成 前言 在Redmine中配置版本库 全局配置版本库 生成Redmine的SSH Key 配置项目版本库 克隆项目代码库 在Redmine上安装GitLab ...

  2. Redmine+Apache+SVN+Postfix完整配置指南

    2019独角兽企业重金招聘Python工程师标准>>> Redmine+Apache+SVN+Postfix完整配置指南 Edition Author State Date Desc ...

  3. 面临重重困难,iPhone出货量依然增长显示出强大竞争力

    近日旭日大数据公布数据估计苹果在2018年销售了2.25亿台iPhone,较2017年增长近千万,凸显出其虽然面临重重困难,却依然取得了出货量的增长,这证明了iPhone依然在智能手机市场拥有强大竞争 ...

  4. 开发人员学Linux(8):CentOS7编译安装Subversion及Apache并集成

    1.前言 本篇将介绍如何编译安装SVN服务器端管理软件subverion和Web服务器Apache.本来在前面的系列文章已经讲过使用Nginx作为Web服务器的,所以我一直在找有关subverion集 ...

  5. API 网关 Apache APISIX 集成 Eureka 作为服务发现

    微服务架构中,大型复杂的系统按功能或者业务需求垂直切分成更小的子系统,这些子系统以独立部署的子进程存在,它们之间通过网络调用进行通信.这些独立部署的服务如何发现对方成为了首先要解决的问题,所以在微服务 ...

  6. Linux 下禅道和 SVN、GIT 集成插件发布

    Linux 下 SVN.GIT 可以和禅道集成了.在版本库中提交代码就可以自动更新关联禅道的任务和Bug.感谢网友张彪的开发. 一.下载地址 1.源代码:https://github.com/easy ...

  7. kafka处理流式数据_通过Apache Kafka集成流式传输大数据

    kafka处理流式数据 从实时过滤和处理大量数据,到将日志数据和度量数据记录到不同来源的集中处理程序中,Apache Kafka越来越多地集成到各种系统和解决方案中. 使用CData Sync ,可以 ...

  8. 通过Apache Kafka集成流式传输大数据

    从实时实时过滤和处理大量数据,到将日志数据和度量数据记录到不同来源的集中处理程序中,Apache Kafka日益集成到各种系统和解决方案中. 使用CData Sync ,可以轻松地将此类解决方案应用于 ...

  9. Apache ShenYu 集成 RocketMQ 实时采集海量日志的实践

    本文作者:胡泰室, 快手Java开发工程师. ​ 认识Apache ShenYu(神禹) 网关最重要的是流量治理,而流量治理与大禹治水有很多相似的地方,因此,网关的流量治理项目被命名为神禹. Shen ...

最新文章

  1. 最新 macOS Sierra 10.12.3 安装CocoaPods及使用详解
  2. 利用多线程解决多业务不同定时区间歇触发问题的一种方法
  3. mybatis入门(四)----输入映射和输出映射
  4. Python requests请求禁止跳转重定向(判断是否为原请求链接)
  5. ionic滚动条返回顶部
  6. 2018我们要赢 (5 分)
  7. 加速你的开发环境[VS2003]
  8. ue4模型为啥这么亮_UE4中的HLOD和Proxy
  9. 继电器(Relay)
  10. Servlet实现一个登陆界面
  11. 想让你的Mac桌面清爽整洁?试试Mac临时文件存储小助手Yoink
  12. 怎样任意裁剪图片?如何快速改变图片形状?
  13. 品牌,来1TB反向传播?
  14. 图形_反走样技术总结
  15. Winform开发框架之通用Windows摄像头调用拍照--SNF快速开发平台3.3-Spring.Net.Framework...
  16. 【论文阅读】Locally Adaptive Color Correction for Underwater Image Dehazing and Matching
  17. 跟小博老师一起学JSP ——EL表达式
  18. win10下git命令窗口快速命令
  19. 一个前端程序猿的Sublime Text3的自我修养
  20. win2000远程桌面工具使用mstsc.exe

热门文章

  1. 二叉搜索树算法演示视频
  2. cad vba计算两点之间距离
  3. ps图层混合计算公式
  4. Java 去除aspose-cells生成的pdf文件中水印文字
  5. 小白跑WRF第二天,安装环境(各种编译器)的准备
  6. 淘宝店小蜜配置手册——官方知识库的配置
  7. 微信小程序 转发给用户
  8. 阿尔·里斯-市场营销的22条法则(22条商规)-8
  9. Excel自动为行编号
  10. 这位人力HR总监的数据分析能力,太牛了!大多数人根本没有