运行Redmine项目管理在nginx(Debian Wheezy)

在nginx上运行Redmine项目管理(Debian Wheezy)

Redmine是一个用Ruby编写的项目管理工具。 本教程将介绍如何通过Debian Wheezy上的一个nginx网络服务器,借助thin(一个快速的Ruby网络服务器)来为Redmine提供服务。

我不会保证这将为您工作!

1初步说明

我已经准备了一个网站www.example.com ,文件根/var/www/example.com/web(Redmine将安装在那里),由用户web1和组client0拥有

我还为Redmine准备了一个名为c0db1的MySQL数据库。 用户名也是c0db1 ,密码为FyZ5z4QGfhTf8

2安装Redmine

首先我们安装一些先决条件:

apt-get install thin ruby rake rubygems libopenssl-ruby libmysql-ruby librmagick-ruby ruby-dev libmysqlclient-dev libmagick-dev curl
gem install sass
gem install compass

下载最新的Redmine并将其复制到我们的文档根/var/www/example.com/web中

cd /tmp
wget http://www.redmine.org/releases/redmine-2.4.2.tar.gz
tar xvfz redmine-2.4.2.tar.gz
mv redmine-2.4.2/* /var/www/example.com/web
cd /var/www/example.com/web
chown -R web1:client0 *

填写MySQL数据库的登录详细信息:

cp config/database.yml.example config/database.yml
vi config/database.yml
[...]
production:
  adapter: mysql2
  database: c0db1
  host: localhost
  username: c0db1
  password: "FyZ5z4QGfhTf8"
  encoding: utf8
[...]

安装一些其他需要的软件包并填写数据库:

apt-get install libmagickwand-dev
gem install rmagick
gem install bundler
bundle install --without development test postgresql sqlite
rake generate_secret_token
rake db:migrate RAILS_ENV="production"
rake redmine:load_default_data RAILS_ENV="production"

3配置薄

接下来,我们配置thin,我们的Ruby网络服务器,nginx将代理请求。

ln -s /etc/thin1.9.1 /etc/thin
mkdir /var/log/thin
chmod 755 /var/log/thin
cd /etc/thin

创建一个名为文件根目录( web1 )的所有者的瘦配置文件:

vi web1.yml

确保在日志pid套接字用户行中使用正确的用户( web1 )以及行中正确的组( client0 )。 在chdir行中使用正确的文档根目录

---
chdir: /var/www/example.com/web
environment: production
timeout: 30
log: /var/log/thin/web1.log
pid: /var/run/thin/web1.pid
max_conns: 1024
max_persistent_conns: 512
require: []
wait: 30
socket: /var/run/thin/web1.sock
daemonize: true
user: web1
group: client0
servers: 1
prefix: /

创建/ var / run / thin目录(其中thin将创建其套接字):

mkdir /var/run/thin
chown -R web1:client0 /var/run/thin

为了确保目录在thin开始时存在,我们添加了行-e / var / run / thin || 将-m 755 -o web1 -g client0 -d / var / run / thin添加到/etc/init.d/thin init脚本(在SCRIPT_NAME行之后):

vi /etc/init.d/thin
[...]
DAEMON=/usr/bin/thin
SCRIPT_NAME=/etc/init.d/thin

test -e /var/run/thin || install -m 755 -o web1 -g client0 -d /var/run/thin

[...]

现在开始瘦了

/etc/init.d/thin start

...并注意它创建的套接字(在这种情况下为/var/run/thin/web1.0.sock ) - 我们将需要它在nginx配置中:

root@server1:/etc/thin# /etc/init.d/thin start
[start] /etc/thin1.9.1/web1.yml ...
Starting server on /var/run/thin/web1.0.sock ...
root@server1:/etc/thin#

如果您使用Monit,您可以将以下行添加到/ etc / monit / monitrc中 ,以确保thin始终运行:

vi /etc/monit/monitrc
[...]
check process thin with pidfile /var/run/thin/web1.0.pid
   start program = "/etc/init.d/thin start"
   stop  program = "/etc/init.d/thin stop"
[...]

稍后重新启动

/etc/init.d/monit restart

4配置nginx

接下来,我们必须配置我们要访问Redmine的nginx vhost。 您必须将以下配置粘贴到服务器{}容器中(如果使用ISPConfig,则为nginx指令) - 确保使用正确的精简socket

client_max_body_size 100M;

location / {
    proxy_set_header X-Reak-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    if (-f $request_filename/index.html) {
      rewrite (.*) $1/index.html break;
    }

    if (-f $request_filename.html) {
      rewrite (.*) $1.html break;
    }

    if (!-f $request_filename) {
      proxy_pass http://unix:/var/run/thin/web1.0.sock;
      break;
    }
}

而已! 现在访问您的网站,您应该可以使用Redmine。 默认用户名为admin ,密码为admin

4链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏