日期:2014-05-17  浏览次数:20903 次

Fedora中使用apache运行redmine的配置手记

今天花了大半天的时间,参阅了网上各种资料,终于配好了,于是把整个过程理一下,供大家参考。

PS.?本人Linux新手,ruby小白,如有错失,烦多指教!

?

参考资料:

①apache 与 redmine 整合?http://hi.baidu.com/leolance/blog/item/1b752791399d4b067af48008.html

②HowTo configure Apache to run ?Redmine

???http://www.redmine.org/wiki/1/HowTo_configure_Apache_to_run_Redmine

③Redmine+Apache+SVN+Postfix完整配置指南

???http://www.swordair.com/docs/config-doc/redmine_complete_config_on_ubuntu.html

?

一. 安装Phusion Passenger

这是一个非常流行的、用于在apache和ngix上部署ROR项目的工具。

安装步骤:

1. gem i passenger

这里可能遇到的问题有:


(1)

ERROR: Failed to build gem native extension. 
/usr/bin/ruby extconf.rb
can't find header files for ruby

此处的解决方法是安装ruby-devel,运行yum install ruby-devel命令进行安装即可。

参考:

http://www.question-defense.com/2010/09/10/ruby-gem-install-error-usrbinruby-extconf-rb-cant-find-header-files-for-ruby


(2)

1 gem installed
ERROR:  While executing gem ... (Gem::DocumentError)
    ERROR: RDoc documentation generator not installed: no such file to load -- rdoc/rdoc

这个不是大问题,运行yum install ruby-rdoc命令安装ruby-rdoc即可。
参考:

http://www.question-defense.com/2010/09/09/error-rdoc-documentation-generator-not-installed-no-such-file-to-load-rdocrdoc


2. passenger-install-apache2-module

安装的时候会检查其他依赖组件是否已正确安装,如果有缺失会进行提示,并告诉你运行什么命令来获取该组件,所以这一步应该很简单。

安装完成之后,会有类似于下面的这种提示信息,告诉你要在apache的httpd.conf文件里面加入以下的配置:

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.0/ext/apache2/mod_passenger.so

?

PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.0

?

PassengerRuby /usr/bin/ruby

?

二. 修改apache的配置文件:?/etc/httpd/conf/httpd.conf

除了加入上面提到的几句之外,还需要进行以下配置:

?

Options Indexes FollowSymLinks   ( 找到这一行,删除“ Indexes ”,并添加“ Includes ”、“ ExecCGI ” ) ??

?????改成:Options Includes ExecCGI FollowSymLinks   ( 允许服务器执行 CGI 及 SSI) ??

?

#AddHandler cgi-script .cgi   ( 找到这一行,去掉行首的“ # ”,并在行尾添加“ .pl ” ) ??

?

?? ?改成:AddHandler cgi-script .cgi .pl   ( 允许扩展名为 .pl 的 CGI 脚本运行 ) ??

?

另外再添加以下两句配置:

RailsEnv production

RailsBaseURI /redmine?

三.?配置 redmine 源码目录下的 public/dispath.cgi 脚本

cd /usr/redmine   (进入redmine的根目录)
cp public/dispatch.cgi.example public/dispatch.cgi 

?

四. 设置关联路径

ln -s /var/www/redmine /usr/redmine

五. 重启apache服务

service httpd restart

?

此时应该能通过http://<YOUR_HOST>/redmine成功访问redmine

?

附:其他可能出现的问题

1. Apache 403 forbidden

?? ?问题分析:http://yuanxing.iteye.com/blog/435445

?? ?解决方法:保证apache的访问身份与redmine文件夹的身份一致即可,可以像上面那个文章里说的,把httpd.conf里面的user和group改掉,也可以把/var/www/redmine的所有者改成apache:apache

chown -R apache:apache /var/www/redmine

?

2. 在不存在上述问题的情况下,依然是403forbidden

?? ?问题分析:http://yuanxing.iteye.com/blog/445415?(跟上面是同一个博主,感谢该博主的总结)

?? ?解决方法:总而言之就是selinux搞的鬼,我尝试上面那篇文章里说的命令setsebool -P httpd_disable_trans 1 ,但提示说我没有httpd_disable_trans这个参数,考虑到我们这个服务器只对内不对外,我干脆就取消掉selinux的保护算了。修改/etc/selinux/config文件中的SELINUX="" 为disabled,然后重启系统即可。

?

?

?

1 楼 tuoxie007 2011-01-08  
redmine是个好货,抄(超)了trac一大截