2009年6月8日星期一

apache+fcgid+redmine安装心得

freebsd 70 apache22 fcgid redmine

如果是还未安装配置,请先看文尾处的参考资料 进行配置.勿阅读本文 免得造成疑惑

安装过程 一波三折,断断续续花了一周时间
1.装fastcgi
2.redmine 安装
首先是在安装ruby上折腾颇多
如果是在freebsd下ruby的包尽量用,可以省力不少.通过 pkg_info | grep ruby 时刻关注所装的包,因为ruby的包之间互为依存. 一定要留意.在调试中出现问题 google 找到原因,大多情况是因为缺包或者包版本不对造成的

关键节点
Test the installation by running WEBrick web server:
ruby script/server webrick -e production
Once WEBrick has started, point your browser to http://localhost:3000/.
You should now see the application welcome page.
如果测试通过表示基本安装已经完成,

3. 整合apache
这时我犯了个致命错误导致文件,用apache fastcgid 模式可以跑起来但是 css js 全部无法加载
解决:
1. 首先还是同过 . redmine/dispatch.fcgi 来测试包是否有问题. 包依赖我是通过这种方式解决掉的, 可当此步骤通过后 依然无法加载css js
2. 排除了ruby的问题,当然怀疑到 httpd.conf 配置问题, 查看/var/log/httpd-error.log经过反复排查 无误, 告失败
3. 这时候想到了.htaccess 的问题,找到 redmine/public/.htaccess 进行调试 不得要领
4. 有些抓狂, 再找到redmine/log/production.log
看到错误
ActionController::RoutingError (No route matches "/stylesheets/jstoolbar.css"
google之 无果,但是想到了 .htaccess 是通过rewrite 将访问转到 dispatch.fcgi上的想到问题应该是出在了rewrite上
打开rewrite log
RewriteLog "/var/log/rewrite.log"
RewriteLogLevel 3

5. 查看结果 rewriteCond %{REQUEST_FILENAME} !-f 失效 js css都通过 dispatch.fcgi 在解析,这当然找不到
可为什么会出现这个问题?依然是个问号 继续google之. 没有答案 为了调试,我把.htaccess 进行了删减 来排查问题
之前的疑问全部浮出水面

RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]


RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]


RewriteRule ^(.*)$ dispatch.cgi [QSA,L]

当我把 mod_fastcgi.c IfModule mod_cgi.c 两段去掉时.一切正常了. 头绪来了 mod_fastcgi mod_fcgid mod_cgi 其中至少跑了两个. 那么问题出在我在配置fcgid 的时候没有将mod_cgi 去掉所导致的问题. 我靠.
把 LoadModule cgi_module libexec/apache22/mod_cgi.so 注释掉,干掉 .htaccess 重新 svn update 重启apache 一切ok!

6.总结
当出现问题时 一定要查看log(各种log 服务的 软件的),通过log问题一块块排查 不能慌乱. 注意思考 依靠网络 但不依赖网络

参考:
1.安装fastcgid
http://www.cyberciti.biz/faq/freebsd-apache22-fastcgi-php-configuration/
(如安此文章出现问题请查看我的另一篇文章 http://leafghost.blogspot.com/2009/06/apache2fastcgi.html )
2.redmine 安装
http://www.redmine.org/wiki/redmine/RedmineInstall
3.整合 apache
http://www.redmine.org/wiki/1/HowTo_configure_Apache_to_run_Redmine

没有评论: