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. 表面缺陷检测数据集汇总及其相关论文集收集 | Github开源
  2. 将shell脚本转为python_shell脚本将python脚本加入Linux系统服务
  3. EBS ORACLE使用API批量取消销售订单
  4. [转]“Ceph浅析”系列之(二)—Ceph的设计思想
  5. python打开excel进行编辑_使用Python进行Excel文件处理
  6. java.net.unknown_android -------- java.net.UnknownServiceException
  7. MOSS数据库服务器迁移步骤
  8. ThreadLocal不仅要应付面试,更要真的理解,真的会用
  9. 使用OCCI连接Linux下Oracle数据库
  10. C++11 新关键字
  11. 为什么需要API网关?
  12. 2018-05-04 http入门
  13. Python Json读写(json模块)(转载)
  14. N1盒子刷机经验分享
  15. ad中按钮开关的符号_电工必备基础知识及电路的符号字母大全
  16. 关于linux网络编程的项目,linux网络编程入门
  17. Android-你真的懂AIDL的oneway嘛?
  18. 来自Java程序员的Python新手入门小结
  19. Java Test Fore
  20. pyhon入门turtle库画音符

热门文章

  1. 解决es启动no java的问题
  2. log里面汉字乱码问题
  3. 博士生提高科研幸福感的途径
  4. SGM3005 简介
  5. python在windows的cmd中打印彩色文字
  6. java后台转前端_从后端开发转职前端开发,我都经历了些什么?
  7. 【手册】如何编译/修改三星手机Rom(四)
  8. DirectX12(D3D12)基础教程(十六)——实现渲染线程池:3个内核同步对象实现渲染线程池/大规模线程池
  9. Mac中Pages格式刷
  10. LBP特征原理及C实现