/ 中存储网

bitnami-redmine-SVN-Apache安装配置过程

2014-03-22 16:23:01 来源:kejihao
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

这样,一个新的版本库就被创建出来了。我们来查看一下生成的版本库结构:

[[email protected] 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运行状况

[[email protected] ~]$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 访问了。