在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链接
- Redmine: http : //www.redmine.org/
- nginx: http : //nginx.org/
- Debian: http : //www.debian.org/