将Redmine和SVN整合入Nginx的方法,可以通过以下步骤完成:
1. 安装和配置Redmine
1.1 安装Ruby和Rails
首先需要安装Ruby和Rails。在命令行输入以下命令:
sudo apt-get update
sudo apt-get install ruby rails
1.2 下载和解压Redmine
到Redmine官网下载安装包,解压到nginx的html目录下。解压命令:
tar xvfz redmine-<version>.tar.gz
1.3 修改配置文件database.yml
进入config目录,编辑database.yml文件,将其中的database、username、password、host等信息修改为你的配置。示例:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: password
1.4 创建数据库和用户
登录mysql,创建数据库和用户:
CREATE DATABASE redmine CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'password';
1.5 安装插件
到Redmine插件库下载想要的插件,将插件解压并复制到redmine/plugins目录下。
2. 安装和配置SVN
2.1 安装Subversion
在命令行中输入以下命令:
sudo apt-get install subversion
2.2 创建SVN仓库
在SVN仓库的目录下执行以下命令:
svnadmin create svn_repo
2.3 修改authz文件
在conf目录下的authz文件中,可以配置SVN用户的权限。示例:
[groups]
developers = jimmy, alice
[svn_repo:/]
@developers = rw
3. 配置Nginx
3.1 安装Nginx
在命令行中输入以下命令:
sudo apt-get install nginx
3.2 配置server
在/etc/nginx/sites-available中创建redmine.conf文件,配置server信息。示例:
upstream redmine {
server unix:///var/run/unicorn.sock; #路径和unicorn配置要一致
}
server {
listen 80;
server_name 127.0.0.1;
root /var/www/redmine/public; #redmine解压目录
location /svn {
proxy_pass http://127.0.0.1:8000; #svnserve默认端口是8000,可以修改
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
proxy_pass http://redmine;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
3.3 启用server
将创建的redmine.conf软链接到/etc/nginx/sites-enabled目录下:
sudo ln -s /etc/nginx/sites-available/redmine.conf /etc/nginx/sites-enabled/
sudo service nginx restart
最后就可以通过访问http://127.0.0.1来访问Redmine和SVN了。
另外,以下是两个常用的示例:
示例1:修改SVN端口
修改svnserve.conf中的端口号,示例配置:
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = myrepo
[sasl]
EOF
listen-port = 8001
EOF
同时在Nginx的配置中将相关配置修改为8001即可。
示例2:使用https
使用https协议访问Redmine和SVN,需要先准备好证书。
1.1 在/etc/nginx/certs目录下生成证书
sudo mkdir -p /etc/nginx/certs
cd /etc/nginx/certs
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt
1.2 修改redmine.conf文件
在server段中增加以下配置:
listen 443 ssl;
ssl_certificate /etc/nginx/certs/server.crt;
ssl_certificate_key /etc/nginx/certs/server.key;
同时将proxy_pass和相关设置修改为https协议即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Linux系统中将Redmine和SVN整合入Nginx的方法 - Python技术站