redmine默认是用webrick启动的,这种方法不适合生产环境,最好部署在apache下,本文介绍如何通过mod_fcgid启动。

首先要有一个能够启动的redmine,可以通过我之前的博文查看: http://www.cnblogs.com/wzy5223/p/5335549.html

本例redmine的安装位置:/opt/redmine-3.2.1

一. 下载资源

wget http://mirrors.hust.edu.cn/apache//httpd/httpd-2.2.31.tar.gz
wget http://mirrors.hust.edu.cn/apache//httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz

二. 编译apache

tar xzvf httpd-2.2..tar.gz
cd httpd-2.2.
./configure --prefix=/opt/httpd-2.2. --enable-rewrite
make
make install

三. 编译mod_fcgid

tar xzvf mod_fcgid-2.3..tar.gz
cd mod_fcgid-2.3.
APXS=/opt/httpd-2.2./bin/apxs ./configure.apxs
make
make install

四. 配置redmine到apache

cd /opt/redmine-3.2./public
cp dispatch.fcgi.example dispatch.fcgi
cp htaccess.fcgi.example .htaccess cd cd /opt/httpd-2.2./conf
vi httpd.conf

找到下面的内容

DocumentRoot "/opt/httpd-2.2.31/htdocs"

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
#
<Directory />
  Options FollowSymLinks
  AllowOverride None
  Order deny,allow
  Deny from all
</Directory>

修改为

DocumentRoot "/opt/redmine-3.2.1/public"

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
#
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>

并修改监听端口为3000

Listen 

五. 安装mod_passenger

gem install passenger
yum install libcurl-devel
passenger-install-apache2-module --apxs2-path /opt/httpd-2.2./bin/apxs --apr-config-path /opt/httpd-2.2./bin/apr--config --languages ruby

上面的命令最后会有一段字符需要添加到httpd.conf,例如下面

   LoadModule passenger_module /home/wzy/.rvm/gems/ruby-2.2.4/gems/passenger-5.0.26/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/wzy/.rvm/gems/ruby-2.2.4/gems/passenger-5.0.26
PassengerDefaultRuby /home/wzy/.rvm/gems/ruby-2.2.4/wrappers/ruby
</IfModule>

六. 启动apache,测试是否能访问 http://<IP>:3000

/opt/httpd-2.2./bin/apachectl start

如果能成功访问就大功告成了,最后可以将apache添加到服务,就可以随系统重启了

redmine + apache + mod_fcgid的更多相关文章

  1. Apache mod_fcgid fcgid_header_bucket_read函数缓冲区溢出漏洞

    漏洞名称: Apache mod_fcgid fcgid_header_bucket_read函数缓冲区溢出漏洞 CNNVD编号: CNNVD-201310-455 发布时间: 2013-10-21 ...

  2. Ubuntu 下 redmine 安装配置

    安装 rvm \curl -L https://get.rvm.io | bash -s stable --ruby --autolibs=enable –auto-dotfiles 安装 Ruby ...

  3. WEB网站常见受攻击方式及解决办法

    一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是 ...

  4. 【转】WEB网站常见受攻击方式及解决办法

    一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是 ...

  5. 常见的web攻击方式

    跨站脚本攻击(XSS) 概述 跨站脚本攻击(XSS,Cross-site scripting),指攻击者在网页中嵌入恶意脚本程序,是最常见和基本的攻击WEB网站的方法.攻击者在网页上发布包含攻击性代码 ...

  6. XSS CSS Cross SiteScript 跨站脚本攻击

    XSS攻击及防御 - 高爽|Coder - CSDN博客 https://blog.csdn.net/ghsau/article/details/17027893 XSS又称CSS,全称Cross S ...

  7. C#不用union,而是有更好的方式实现 .net自定义错误页面实现 .net自定义错误页面实现升级篇 .net捕捉全局未处理异常的3种方式 一款很不错的FLASH时种插件 关于c#中委托使用小结 WEB网站常见受攻击方式及解决办法 判断URL是否存在 提升高并发量服务器性能解决思路

    C#不用union,而是有更好的方式实现   用过C/C++的人都知道有个union,特别好用,似乎char数组到short,int,float等的转换无所不能,也确实是能,并且用起来十分方便.那C# ...

  8. WEB前端常见受攻击方式及解决办法

    一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.SQL注入 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的 ...

  9. apache 使用 mod_fcgid.so模块时 配置指令

    FcgidBusyScanInterval指令 说明:扫描繁忙超时进程的间隔 语法: FcgidBusyScanInterval seconds 默认:FcgidBusyScanInterval 12 ...

随机推荐

  1. Web API接口设计经验总结

    在Web API接口的开发过程中,我们可能会碰到各种各样的问题,我在前面两篇随笔<Web API应用架构在Winform混合框架中的应用(1)>.<Web API应用架构在Winfo ...

  2. 从vs2010的UnitTestFramework类库提取私有方法反射调用的方法

    背景 年龄大点的程序员都知道在vs2010中创建单元测试非常的简单,鼠标定位在方法名字,右键创建单元测试,就会创建一个测试方法,即使是在私有方法上也可以创建测试方法. VS2010以后就没这么简单了, ...

  3. 使用DataConnectionDialog在运行时设置数据源连接字符串

    介绍: DataConnectionDialog 类: 打开“数据连接”对话框,获取用户选择的数据连接信息. 命名空间为:Microsoft.Data.ConnectionUI 所在程序集:Micro ...

  4. MySQL的Incorrect string value错误

    用以下SQL语句向表2中插入数据: insert into 表2 select * from 表1 结果出现Incorrect string value错误: 打开表2一看,里面全是问号: 后来才发现 ...

  5. 制作rpm包步骤

    由于项目需要,需要自行制作rpm包.比较全面的可以参考如下链接: http://blog.chinaunix.net/uid-23069658-id-3944462.html 大致框架如下: 1,安装 ...

  6. Statement和PreparedStatement的区别; 什么是SQL注入,怎么防止SQL注入?

    问题一:Statement和PreparedStatement的区别 先来说说,什么是java中的Statement:Statement是java执行数据库操作的一个重要方法,用于在已经建立数据库连接 ...

  7. 阿里巴巴笔试整理系列 Session2 中级篇

    1知识点储备-----2笔试题总结-----3面试经验总结 知识点储备 2014年8月29日在线笔试题:20单选(40分钟内完成)+附加题(2道编程+1道问答) 1. 通过算法生成的随机数是“伪随机” ...

  8. Scalaz(50)- scalaz-stream: 安全的无穷运算-running infinite stream freely

    scalaz-stream支持无穷数据流(infinite stream),这本身是它强大的功能之一,试想有多少系统需要通过无穷运算才能得以实现.这是因为外界的输入是不可预料的,对于系统本身就是无穷的 ...

  9. easyui datagrid toolbar 添加搜索框

    最近用到了就研究了下,效果  把列名稍加转换放入menubtton,对于单项搜索来说还是非常方便的 var fields =  $('#tt').datagrid('getColumnFields') ...

  10. Webform(邮箱模式)

    <asp:Repeater ID="Repeater1" runat="server"> <HeaderTemplate> <ta ...