Bitnami Redmine 安装
(1)bitnami: 专业为开源软件包装, 把好的开源软件友好地呈现给用户. 他们提供的安装包可谓是真正的"傻瓜式"/"一站式" 安装包. 即使不同技术的人也可以根据安装向导"下一步"->...."安装"->"完成" 成功安装.这对于新手来说的确是一个好伙伴. 目前他们网站发布的软件包支持 Windows, Linux, Mac x86, Mac PPC。
(2)配置编码(可不做)
由于默认的编码是latin1,虽然显示什么的都不会乱码,但是还是改为utf8看的舒爽.

1) 修改 mysql 目录下的my.cnf (有时候是my.ini)
    对几个节点都添加
       default-character-set=utf8
       character_set_server=utf8
[mysqladmin]  
user=root  
[mysqld]  
basedir=/opt/bitnami_redmine/mysql  
datadir=/opt/bitnami_redmine/mysql/data  
port=3306  
socket=/opt/bitnami_redmine/mysql/tmp/mysql.sock  
tmpdir=/opt/bitnami_redmine/mysql/tmp  
default-character-set=utf8  
character_set_server=utf8  
[mysqld_safe]  
mysqld=mysqld.bin  
default-character-set=utf8  
[client]  
port=3306  
socket=/opt/bitnami_redmine/mysql/tmp/mysql.sock  
default-character-set=utf8  
[manager]  
port=3306  
socket=/opt/bitnami_redmine/mysql/tmp/mysql.sock  
pid-file=/opt/bitnami_redmine/mysql/tmp/manager.pid  
default-mysqld-path=/opt/bitnami_redmine/mysql/bin/mysqld.bin  
    然后把my.cnf cp到/etc/my.cnf  (没玩过mysql...不知道这步必要不...)

2) 把初始化的mysql数据转为utf8格式
    a) 先把数据导出: mysqldump --opt -hlocalhost -uroot -proot --default-character-set=lantin1 bitnami_redmine > /opt/dbname.sql
    b) 搜索替换dbname.sql文件中的CHARSET=latin1改为CHARSET=utf8
    c) 在dbname.sql的最前面加一句set names utf8;
    d) 在windows上用UltraEdit打开dbname,不要转换为dos,另存为utf-8(无bom)格式
    e) 导入数据: mysql -hlocalhost -uroot -proot --default-character-set=utf8 bitnami_redmine < /opt/dbname.sql
3) 修改redmine的配置
    a) 我的目录为/opt/bitnami_redmine/apps/redmine/config/database.yml
    b) 在production节点的最下面加一句encoding: utf8
    c) 注意: utf8前面必须有个空格,否则ruby跑redmine跑不起来...(没有ror的我..可怜的被折腾了半天..)
    d) 建议: vi中,直接在username那行,yy然后p,再i修改...
production:  
  adapter: mysql  
  database: bitnami_redmine  
  host: localhost  
  username: bitnami  
  password: 322cf81344  
  socket: /opt/bitnami_redmine/mysql/tmp/mysql.sock  
  encoding: utf8

(3)重启服务&使用
 /usr/local/redmine/ctlscript.sh restart 重启服务
 /usr/local/redmine/ctlscript.sh stop 停止
 /usr/local/redmine/ctlscript.sh start 启动

(4)
现在你就可以访问你的redmine了
http://localhost/redmine

SVN 的配置与使用
(1)建立版本库目录
# mkdir -p /opt/svn/svndata/repos
可建多个,如:
#mkdir -p /opt/svn/svndata/repos1
#mkdir -p /opt/svn/svndata/repos2
(2)建立版本库
#svnadmin create /opt/svn/svndata/repos
建立版本库,默认为FSFS数据存储方式,也可以显示指定
#svnadmin create --fs-type fsfs /opt/svn/svndata/repos
可以建立多个版本库,如:
#svnadmin create /opt/svn/svndata/repos1
#svnadmin create /opt/svn/svndata/repos2
这样,一个新的版本库就被创建出来了。我们来查看一下生成的版本库结构:
[svn@testbed1 repos]$ ls -l /opt/svn/svndata/repos
total 48
drwxrwxr-x 2 svn svn 4096 Jul 15 15:39 conf
drwxrwsr-x 6 svn svn 4096 Jul 15 12:41 db
-r--r--r-- 1 svn svn    2 Jul 15 12:02 format
drwxrwxr-x 2 svn svn 4096 Jul 15 12:02 hooks
drwxrwxr-x 2 svn svn 4096 Jul 15 12:02 locks
-rw-rw-r-- 1 svn svn  229 Jul 15 12:02 README.txt
其中,conf 目录下存放了版本库的配置文件,包括用户访问控制和权限控制等内容,文件本身的注释说明十分详细,读者可以根据注释自行配置;dav 目录是提供给 Apache 相关模块的目录,目前为空;db 目录下存放着 Subversion 所要管理的所有受版本控制的数据,不同的存储方式(Berkeley DB 或者 FSFS)下有着不同的目录结构,不过我们一般不用直接修改和查看这个目录下的内容,Subversion 的命令可以安全的操作这个目录;另外,hooks 目录存放着钩子脚本及其模版(一种版本库事件触发程序),locks 目录存放着 Subversion 版本库锁定数据,format 文件记录了版本库的布局版本号。
(3) 修改版本库配置文件
#vi /opt/svn/svndata/repos/conf/svnserve.conf
 内容修改为:
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = repos
注意:前面不能有空格!
(4) 配置允许访问的用户
#vi /opt/svn/svndata/repos/conf/passwd
文件格式如下:
[users]
<用户1> = <密码1>
<用户2> = <密码2>
其中,[users]是必须的。下面列出要访问svn的用户,每个用户一行。示例:
[users]
User1 = password
User2 = 123456
注意:对用户配置文件的修改立即生效,不必重启svn。
(5)配置用户访问权限
#vi /opt/svn/svndata/repos/conf/authz
用户组格式:
[groups]
<用户组名> = <用户1>,<用户2>
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
其中,方框号内部分可以有多种写法:
[/]表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/opt/svn/svndata,这样,[/]就是表示对全部版本库设置权限。
[repos1:/]表示对版本库1设置权限
[repos2:/abc]表示对版本库2中的abc项目设置权限
[repos2:/abc/aaa]表示对版本库2中的abc项目的aaa目录设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
示例:
[groups]
admingroup = user1,user2,user3
[/]
@admingroup = rw
[repos:/]
user1 = rw
注意:权限配置文件中出现的用户名必须已在用户配置文件中定义,对权限配置文件的修改立即生效,不必重启svn。
(6)SVN服务器的启动与停止
#cd  /usr/local/redmine/subversion/scripts
#vi ctl.h
把SVN_START修改为如下内容
SVN_START="/usr/local/redmine/subversion/bin/svnserve -d --listen-port=3690 --pid-file=$SVN_PIDFILE --listen-host 192.168.6.130 -r /opt/svn/svndata"
/opt/svn/svndata  为你的版本库目录
192.168.6.130  为你的本机IP地址
保存后,重启redmine
#ps -ef | grep svnserve
root      8943     1  0 11:16 ?        00:00:00 /usr/local/redmine/subversion/bin/.svnserve.bin -d --listen-port=3690 --pid-file=/usr/local/redmine/subversion/tmp/svnserve.pid --listen-host 192.168.6.130 -r /opt/svn/svndata
root     11577  6011  0 12:49 pts/2    00:00:00 grep svnserve
可查看你的SVN运行状况
[svn@testbed1 ~]$kill -9 1985
(7) 在版本库里面添加项目
       Subversion 的灵活性允许用户自由布局版本库,但有一套推荐的方式,创建一个 trunk
目录来保存开发的“主线”,一个 branches 目录存放分支拷贝,tags 目录保存标签拷贝,当然,SVN也不限于代码库的管理,用户完全可以自定义布局用以共享文件。
       添加项目最好的办法就是用svn import命令导入已有的目录树,首先,在一个临时目录下,根据 Subversion 版本控制的一般布局结构,创建出项目的主要目录树。
       /opt/svn/tmp                             
|
――demo_project                                  
|      |
|      ――branches
|      |
|      ――tags
|      |
|      ――trunk
#mkdir tmp
#mkdir -p /opt/svn/tmp/demo_project/branches
#mkdir -p /opt/svn/tmp/demo_project/tags
#mkdir -p /opt/svn/tmp/demo_project/trunk
#svn import /opt/svn/tmp/ file:///opt/svn/svndata/repos/ --message "init"
Adding         /opt/svn/tmp/demo_project
Adding         /opt/svn/tmp/demo_project/trunk
Adding         /opt/svn/tmp/demo_project/branches
Adding         /opt/svn/tmp/demo_project/tags
Committed revision 2.
(8)版本库查看
#svn list --verbose file:///opt/svn/svndata/repos
      4 svn                   Jul 15 16:02 ./
      4 svn                   Jul 15 16:02 AMX_HUB/
      2 svn                   Jul 15 15:56 demo_project/
查看最新修订版本的信息,可以使用svnlook info命令
       #svnlook info /opt/svn/svndata/repos/
svn
2010-07-15 16:02:18 -0500 (Thu, 15 Jul 2010)
4
Init
命令输出了这个版本库的最新修订版本信息,包括作者、时间、日志字数和日志内容等。除开最新修订版以外,我们还可以在命令后面接上 “--revision 版本号” 来指定某一个修订版的显示。
另外,我们还可以用如下命令来显示版本库的具体树形结构,后面的 “--show-ids” 选项指定显示每一个显示元素的修改版本 ID。
#svnlook tree /opt/svn/svndata/repos/ --show-ids
/ <0.0.r4/154>
 AMX_HUB/ <0-4.0.r4/0>
 demo_project/ <0-2.0.r2/345>
  trunk/ <2-2.0.r2/0>
  branches/ <4-2.0.r2/76>
  tags/ <5-2.0.r2/156>
(9)TortoiseSVN客户端访问版本库
       安装并配置好SVN服务器后,就可以在客户端通过svn协议来访问svn服务器了。如果希望通过浏览器或HTTP协议进行访问,则需要安装配置Apache HTTP Server。
Apache的配置与使用
(1)修改Apache配置文件
# cd /usr/local/redmine/apache2/conf# vi httpd.conf
//下面这两句话是自动加上的
#LoadModule dav_svn_module modules/mod_dav_svn.so
#LoadModule authz_svn_module modules/mod_authz_svn.so
把前面的“#”去掉
在最下面添加,
<Location />
DAV svn
SVNParentPath /opt/svn/svndata
AuthzSVNAccessFile /opt/svn/svndata/authz.conf
AuthType Basic
AuthName "Subversion.zoneyump"
AuthUserFile /opt/svn/svndata/passwd
Require valid-user
</Location>//其中passwd是通过
#/usr/local/redmine/apache2/bin/htpasswd  -c  /opt/svn/svndata/passwd  username  
//来创建的
//"Require valid-user"告诉apache在authfile中所有的用户都可以访问。这里的权限和用户可以自己去定义(2)权限管理
1)增加用户
//由于htpasswd是apache的内置命令,所以先进入apache的命令目录
#/usr/local/redmine/apache2/bin/htpasswd  -c  /opt/svn/svndata/passwd  username
//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加,再增加别的用户时,不用加c
2)权限分配配置用户访问权限,用于定义用户组和版本库目录权限
# vi /opt/svn/svndata/authz.conf注意:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。也就是在前面用htpasswd添加的用户
* 对权限配置文件的修改立即生效,不必重启svn。用户组格式:
[groups]
用户组名 = 用户1,用户2
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。版本库目录格式:
[版本库:/项目目录]
@用户组名 = 权限
用户名 = 权限其中,方框号内部分可以有多种写法:
/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/home/svnroot/repository。这样,/就是表示对全部版本库设置权限。
test:/,表示对版本库test设置权限权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。示例:
[groups]
admin = mangosoft[/]
@admin = rw[repos:/]
@admin = rw
lsw = rw
jackey=rw测试

如果顺利的话,就可以通过http://localhost/repos 访问了。

根据本博客中的cent OS 6.4下的SVN服务器构建 一文,搭建好SVN服务器只能管理一个工程,如何做到不同的项目,多个成员的权限管理分配呢?

一 需求

开发服务器搭建好SVN服务器,不可能只管理一个工程项目,如何做到不在一个项目中的开发人员不能访问其它项目中的代码,做好技术保密工作。

代码仓库有三个仓库:project1,project2,project3

假设人员有6个人:eg1,eg2,eg3,eg4,eg5,eg6

eg1,eg2,只能访问project1;

eg3,eg4,只能访问project2;

eg5,eg6,只能访问project3;

二 实现

在你的仓库路径下:假如是/home/sv

1
2
3
4
5
6
7
8
9
10
11
cd /home/svn
//创建三个代码仓库
svnadmin create project1
svnadmin create project2
svnadmin create project3
//把两个权限配置文件复制到SVN
//根路径下,统一管理所有代码仓库
cd/projcet1/conf
cp authz passwd /home/svn
//打开配置文件
vi svnserve.conf

修改成如下:

1
2
3
4
5
anon-access = none               //禁止匿名访问
auth-access = write
password-db = /home/svn/passwd   //统一使用密码文件
authz-db = /home/svn/authz
realm =   project1               //权限域名,很重要,写你的工程名

分别修改project2的svnserve.conf

和上面一样,最后一行分别写

1
2
3
4
5
anon-access = none               //禁止匿名访问
auth-access = write
password-db = /home/svn/passwd   //统一使用密码文件
authz-db = /home/svn/authz
realm =   project2              //权限域名,很重要,写你的工程名

分别修改project3的svnserve.conf

和上面一样,最后一行分别写

1
2
3
4
5
anon-access = none               //禁止匿名访问
auth-access = write
password-db = /home/svn/passwd   //统一使用密码文件
authz-db = /home/svn/authz
realm =   project3              //权限域名,很重要,写你的工程名

修改两个权限管理文件:

passwd

1
2
3
4
5
6
7
8
//用户名 = 密码
[users]
eg1 = 123
eg2 = 123
eg3 = 123
eg4 = 123
eg5 = 123
eg6 = 123

authz

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[groups]                  //分组
admin = eg1,eg2
guest = eg3,eg4
guset1 = eg5,eg6
[/]                      //管理者拥有所有读写权限
* =
@admin = rw
[project1:/]                 //工程1的访问控制,guest1,2无法访问
@admin = rw
eg1 = rw
eg2 = rw
[project2:/]          
@guest = rw
eg3 = rw
eg4 = rw
[project3:/]
@guest1 = rw
eg5 = rw
eg6 = rw

三 重启

1
svnserve -d -r /home/svn

停止命令

1
killall svnserve

实际测试:

各个组成员只能访问自己的项目,无权限查看别人的项目

只有管理员才能查看所有项目工程

添加用户:

首先找到用户文件:authz.conf;我的目录结构是:/home/proj/conf 下面

用vi 编辑authz.conf文件在develps 后面添加你要添加的用户名;如图;

SVN简单添加用户(Linux) - java3_2005 - java3_2005的博客

 
上图:cheny就是我后面添加上去的用户名

按Esc :wq保存authz.conf文件。

现在用户已经添加完毕。

2、添加用户密码

进入apche的bin目录

# cd /usr/local/apache2/bin

使用htpasswd命令进行密码设置。

# ./htpasswd /home/proj/conf/passwd 您的密码

说明:/home/proj/conf/passwd 是密码文件。

bitnami-redmine-SVN-Apache相关推荐

  1. bitnami redmine mysql_centos7 BitNami一键安装Redmine

    Redmine是一个灵活的项目管理web应用,采用Ruby on Rails框架开发.Redmine是典型的web 2.0网站,项目管理系统的后起之秀.Redmine支持多项目,灵活的角色权限管理,灵 ...

  2. BitNami Redmine Stack

    BitNami Redmine Stack 是打包了 Redmine 的一键安装程序包,包括:Apache, MySQL, Ruby On Rails, and Subversion Redmine ...

  3. Bitnami redmine 一键安装包

    为什么80%的码农都做不了架构师?>>>    redmine 传统的安装方式按转步骤比较繁琐,依赖繁杂,让人痛苦无比,redmine提供了一键安装包,可以很轻松的安装部署redmi ...

  4. Bitnami Redmine安装程序 --文档

    2019独角兽企业重金招聘Python工程师标准>>> 注意:在运行此页面上显示的命令之前,您应该通过执行installdir/use_APPNAME脚本(Linux和Mac OS ...

  5. bitnami redmine mysql 密码_Bitnami redmine 安装后查看数据库以及更改url

    Bitnami redmine 安装后,有关url的配置,主要步骤参考了官方说明 , 根据自己的实际配置经验,做了部分修改整合 1. 查看数据库 可以用安装时填写的账户登录phpmyadmin,但是看 ...

  6. Bitnami Redmine安装配置指南

    Redmine的安装向来是一件麻烦的事情,在工具的介绍中也曾经提出过,随着Remine官方docker镜像的发行使得以前变得无比简单.但是仍然有很多各种情况无法使用docker的场景的存在,bitna ...

  7. 使用docker镜像搭建svn+Apache环境

    2019独角兽企业重金招聘Python工程师标准>>> 环境准备 虚拟机装好之后,按照官网步骤检查虚拟机内核版本,必须在3.10以上版本,故此处安装redhat_7.2 # unam ...

  8. Linux下BitNami Redmine的插件安装与更新

    截至2017年3月27日,Redmine-3.3.2-2安装以下的15款插件全部成功并通过测试(下面显示为插件正确文件夹名): easy_wbs redmine_ckeditor 提供所见即所得编辑器 ...

  9. linux docker安装svn,使用docker镜像搭建svn+Apache环境

    环境准备 虚拟机装好之后,按照官网步骤检查虚拟机内核版本,必须在3.10以上版本,故此处安装redhat_7.2 # uname -r 3.10.0-327.el7.x86_64 安装docker: ...

  10. bitnami mysql_最新 Bitnami redmine安装与配置

    最新 Bitnami redmine4.1.1-6安装与配置 首先登陆官网下载最新版本 1 接下来开始安装: 2选择安装语言: 3 继续下一步: 4 选择安装插件默认就可以,继续下一步: 5 选择安装 ...

最新文章

  1. 新能源汽车会是一阵风吗
  2. 谁是全球最顶级AI实验室?DeepMind、OpenAI和FAIR霸榜前三
  3. 采购计算机的,如何采购计算机
  4. 面对困难的代码,分解困难各个击破
  5. TensorFlow RNN tutorial解读
  6. 【CV】基于python和OpenCV构建智能停车系统
  7. Windows 如何用命令终端(CMD)启动和停止 MySQL 数据库服务
  8. springboot 别名不起作用_springboot之mybatis别名的设置
  9. 【XMPP】XMPP协议之原理篇
  10. 表达式转换成后缀表达式进行计算
  11. 8种寻找机器学习数据集的方法 | 附数据集资源
  12. Nginx源码分析 - HTTP模块篇 - HTTP模块的初始化(20)
  13. SpringBoot 之Thymeleaf模板
  14. 彻底放弃没落的MFC,对新人的忠告! by FreeWick
  15. 基于神经网络的系统辨识,神经网络的种类和特点
  16. mac HBux连接夜神模拟器
  17. Creating a ContextMenu on a ListView
  18. (商品评价页)商品星级评分html+css+js
  19. 局域网频繁掉线解决办法
  20. python爬取贝壳找房之北京二手房源信息

热门文章

  1. MT7921:STA+AP+BT调试(基于RK3399 Linux平台)
  2. 华为AR502H二次开发笔记
  3. C ++和Java传统中积极的一面
  4. Android激活设备管理器--一键锁屏
  5. U牌丰小为荣获新国货创新大赛金物奖年度人物奖
  6. 成功安装ubuntu16.04+cuda9.0+cuDNN7.0.5+caffe+digits(附错误汇总)
  7. 自己写strcpy函数
  8. java代码使用.pac脚本自动配置代理服务器策略
  9. Kafka入门教程 Golang实现Kafka消息发送、接收
  10. html 定位 精灵技术 过度 2d变形 动画