最近公司要求搭建一个平台用于管理svn权限,在综合考虑之后采用了svnadmin,这个平台的详细介绍请查看https://code.google.com/p/jsvnadmin

本文主要整合了网上的部分资料,以及svnadmin平台说明文档,主要引用资料链接如下:

http://blog.csdn.net/yan19880901/article/details/8489873

http://www.tuicool.com/articles/RfuqYv

新手第一次写博客,希望大家一起多多交流。

下列为所需软件列表:

apr-1.5.0.tar.bz2

apr-util-1.5.3.tar.bz2

zlib-1.2.8.tar.gz

sqlite-autoconf-3080200.tar.gz

pcre-8.34.tar.gz

httpd-2.4.9.tar.gz

subversion-1.8.9.tar.bz2

sqlite-amalgamation-3080403.zip

php-5.5.6.tar.gz

svnadmin-3.0.4.zip

mysql-5.5.25.tar.gz

下载地址:

wget http://archive.apache.org/dist/apr/apr-1.5.0.tar.bz2

wget ftp://ftp.mirrorservice.org/sites/ftp.apache.org/apr/apr-util-1.5.3.tar.bz2

wget http://zlib.net/zlib-1.2.8.tar.gz

wget http://www.sqlite.org/2013/sqlite-autoconf-3080200.tar.gz

wget http://ftp.exim.llorien.org/pcre/pcre-8.34.tar.gz

wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.9.tar.gz

wget http://mirrors.cnnic.cn/apache/subversion/subversion-1.8.9.tar.gz

wget http://www.sqlite.org/2014/sqlite-amalgamation-3080403.zip

wget http://cn2.php.net/distributions/php-5.5.6.tar.gz

https://code.google.com/p/jsvnadmin/downloads/detail?name=svnadmin-3.0.zip&can=2&q=

wget http://downloads.skysql.com/archives/mysql-5.5/mysql-5.5.25.tar.gz

系统编译环境环境默认为已健全,若编译过程中出现依赖库缺失,请按照报错提示进行环境搭建补全。默认下载后的源码包存放位置为/opt/svnsoft

#接下来安装基础依赖软件包apr   apr-util   zlib   sqlite-autoconf   openssl   pcre

#------------------------------------------------------------------

一、安装系统环境

#安装apr

cd /opt/svnsoft

tar -xvf apr-1.5.0.tar.bz2

cd apr-1.5.0

./configure --prefix=/usr/local/apr

make && make install

#安装apr-util

cd /opt/svnsoft

tar -xvf apr-util-1.5.3.tar.bz2

cd apr-util-1.5.3

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

make && make install

#安装zlib

cd /opt/svnsoft

tar -xvf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure --prefix=/usr/local/zlib

make && make install

#安装sqlite

cd /opt/svnsoft

tar -xvf sqlite-autoconf-3080200.tar.gz

cd sqlite-autoconf-3080200

./configure --prefix=/usr/local/sqlite-autoconf

make && make install

#安装openssl

cd /opt/svnsoft

tar zxf openssl-1.0.1e.tar.gz

cd openssl-1.0.1e

./config --prefix=/usr/local/openssl --shared

make && make install

#安装pcre

cd /opt/svnsoft

tar -xvf pcre-8.34.tar.gz

cd pcre-8.34

./configure --prefix=/usr/local/pcre

make && make install

#安装pcre是异常报错configure: error: You need a C++ compiler for C++ support

#解决办法:

#yum install -y gcc gcc-c++

二、安装Apache

#------------------------------------------------------------------

cd /opt/svnsoft

tar -xvf httpd-2.4.9.tar.gz

cd httpd-2.4.9

./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --with-ssl=/usr/local/openssl --enable-module=so --enable-dav --enable-so --enable-dav-fs --enable-ssl --enable-proxy --enable-proxy-http

make && make install

cp /etc/init.d/httpd /etc/init.d/httpd.bak-20140127

cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd

cd /usr/local/apache2/conf

cp httpd.conf httpd.conf.bak

useradd -M apache

#如果异常提示useradd: user 'apache' already exists

#则执行usermod -s /bin/bash apache

#测试 su  - apache

vi /usr/local/apache2/conf/httpd.conf

#找到 User 和 Group 并修改成 User apache 和 Group apache 保存并退出

#找到 ServerName 并修改成ServerName localhost:80

#去掉该行的注释

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

三、安装配置Subversion

#------------------------------------------------------------------

cd /opt/svnsoft

tar -xvf subversion-1.8.9.tar.bz2

unzip sqlite-amalgamation-3080403.zip

mv sqlite-amalgamation-3080403 sqlite-amalgamation

mv sqlite-amalgamation subversion-1.8.9/

cd subversion-1.8.9

./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

make && make install

vi /etc/profile

#在最下面增加 export PATH=$PATH:/usr/local/svn/bin 保存并退出

source /etc/profile

exit

#检查是否安装成功

svnserve --version

#配置Subversion

#------------------------------------------------------------------

#先检查是否存在/techcenter/sd/repos目录结构

#cd /techcenter/sd/repos

#没有则创建 mkdir -p /techcenter/sd/repos/

svnadmin create /techcenter/sd/repos/project1

chown -R apache.apache /techcenter/sd/repos/

vi /techcenter/sd/repos/project1/conf/svnserve.conf

#将以下代码

[sasl]

#注释掉

#在文件最下面增加代码

anon-access = none

auth-access = write

password-db = passwdfile

authz-db = authz

realm = project1

#保存并退出

vi passwdfile

#***[users]下面的所有内容

#在[users]下面增加以下代码

admin = admin

#保存并退出

vi authz

#***### ('').下面的所有内容

#在### ('').下面增加以下代码

[groups]

g_mgr = admin    //可以根据需求添加组成员

### at

[project1:/]     //在project1下成员拥有的权限

@g_mgr = rw

* =

### trunk

[project1:/trunk] //载仓库project1下面的trunk目录上拥有的权限

@g_mgr = rw

* =

### branches

[project1:/branches]  //在仓库project1下面branches目录上拥有的权限

@g_mgr = rw

* =

#保存并退出

/usr/local/svn/bin/svnserve -d -r /techcenter/sd/repos/   //指定svn运行的目录

ps -ef | grep svnserve

echo "/usr/local/svn/bin/svnserve -d -r /techcenter/sd/repos/" >> /etc/rc.local

#使用TortoiseSVN工具测试    //如果没有这个工具可以网上下载

svn://IP/project1

#添加文件提交

#更新文件提交

#OK~

四、整合Svbversion与Apache

#------------------------------------------------------------------

#配置svn权限及账号密码

cd /usr/local/apache2/bin/

./htpasswd -mc passwd admin

#输入两次密码

cp passwd /techcenter/sd/conf/

rm -rf passwd

cd /techcenter/sd/conf/

cp /techcenter/sd/repos/project1/conf/svn_passwdfile ./

cp /techcenter/sd/repos/project1/conf/svn_accessfile ./

#拷贝passwd文件内容到svn_passwdfile中

cp passwd svn_passwdfile

***passwd文件

rm -rf passwd

改变文件拥有者

chown -R apache.apache ./passwdfile

chown -R apache.apache ./authz

#配置apache配置文件

cd /usr/local/apache2/modules

cp /usr/local/svn/libexec/mod_authz_svn.so ./

cp /usr/local/svn/libexec/mod_dav_svn.so ./

vi /usr/local/apache2/conf/httpd.conf

查找以下每行代码,如有注释去掉注释,如不存在代码,则在文件最后面添加,同时核对modules是否存在.so文件

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

LoadModule ssl_module modules/mod_ssl.so

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

LoadModule dav_module modules/mod_dav.so

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

ServerName www.example.com:80改为

ServerName localhost:80

<Location /svn>

DAV svn

SVNParentPath /techcenter/sd/repos

SVNListParentPath On

AuthType Basic

AuthName "svn repos"

AuthUserFile /techcenter/sd/conf/svn_passwdfile

AuthzSVNAccessFile /techcenter/sd/conf/svn_accessfile

Require valid-user

</Location>

#保存并退出

五、安装php

#------------------------------------------------------------------

cd /home/soft/

yum install libxml2-devel libjpeg libjpeg-devel libpng libpng-devel

tar -xvf php-5.5.6.tar.gz

cd php-5.5.6

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-jpeg-dir=/usr/share/doc/libjpeg-turbo-1.2.1 --with-png-dir=/usr/share/doc/libpng-1.2.49 --with-mysql --with-zlib --with-gd --with-pear --with-config-file-path=/etc/

make && make install

cp php.ini-development /etc/php.ini

vi /usr/local/apache2/conf/httpd.conf

#确保下面代码,是去掉注释的,没有的补充添加上

<IfModule dir_module>

DirectoryIndex index.php index.html

</IfModule>

AddType application/x-compress .Z

AddType application/x-gzip .gz .tgz

AddType application/x-httpd-php .php .phtml .php3 .inc

#保存并退出

测试php是否安装成功,在/usr/local/apache2/htdocs/ 下建立一个info.php文件

<?php

phpinfo()

?>

保存退出;

在浏览器输入http://IP/info.php 查看是否成功。

#测试,打开浏览器访问地址

https://IP/svn/

#可以看到project1项目,可点击目录,查看目录里的文件

#输入账号密码

#在浏览器上可以看到先关项目文件,即标识成功

六、安装mysql

#------------------------------------------------------------------

yum -y install bison gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel* mysql-devel

安装cmake

由于mysql5.5开始,不再使用configure安装,而是使用cmake。

cd /opt/svnsoft

wget http://wwwNaNake.org/files/v2.8/cmake-2.8.6.tar.gz

tar -zxvf cmake-2.8.6.tar.gz

cd cmake-2.8.6/

./configure

make && make install

使用cmake安装mysql

//进入/opt/svnsoft目录下

tar -zxvf mysql-5.5.25.tar.gz

cd mysql-5.5.25

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/user/local/mysql/data \

-DSYSCONFDIR=/etc \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \

-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \

-DMYSQL_TCP_PORT=3306 \

-DWITH_DEBUG=0 \

-DENABLED_LOCAL_INFILE=1

执行完成后继续执行 make && make install

配置mysql

#在mysql/support-files目录中有五个配置信息文件(请根据系统的实际情况以及实际需求选择下列配置文件进行操作,若选择不当可能导致mysql无法启动):

#my-small.cnf (内存<=64M)

#my-medium.cnf (内存 128M)

#my-large.cnf (内存 512M)

#my-huge.cnf (内存 1G-2G)

#my-innodb-heavy-4G.cnf (内存 4GB)

cd /usr/local/mysql

cp ./support-files/my-huge.cnf /etc/my.cnf

添加mysql用户和用户组,生成新的mysql授权表

//添加mysql运行的用户和用户组

groupadd mysql

useradd -g mysql mysql

cd /usr/local/mysql

chown -R root .

chown -R mysql data

chgrp -R mysql .

//生成新的mysql授权表

//进入mysql安装目录下的脚本目录

cd /usr/local/mysql/scripts

//利用mysql_install_db脚本生成新的mysql授权表

./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  --user=mysql

//mysql server在系统中的服务项设置

//复***务文件并修改

cd /usr/local/mysql/support-files

cp mysql.server mysqld

//修改mysqld

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

mv mysqld /etc/init.d/mysqld

chmod 755 /etc/init.d/mysqld

//设置软连接使mysql,  mysqldump,  mysqladmin这三个bin命令能在shell中直接运行

ln -s /usr/local/mysql/bin/mysql /usr/bin

ln -s /usr/local/mysql/bin/mysqldump /usr/bin

ln -s /usr/local/mysql/bin/mysqladmin /usr/bin

rm -rf /etc/mysql/my.cnf 因为已经把此文件复制到/etc/my.cnf  如果不***的话,mysql启动不起来。

启动mysql,设置mysql用户名和密码

/etc/init.d/mysqld start

//设置root密码

mysqladmin -u root password "admin"

//mysql数据库中文乱码解决方法,如果没有出现乱码问题建议不要采用下列方法,utf8可能会导致出现字节过长的错误

vi /etc/my.cnf

//然后在[mysqld]配置选项下添加

character-set-server=utf8

注 mysql采用utf8编码格式时会出现:MySQL ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes 特别需要注意的是,如果采用这个格式,那么导入数据时需要保证表内没有超过767bytes。

//然后进入mysql

cd /usr/local/mysql/bin

mysql -u root -p

提示输入密码,若成功进入则表示安装成功。

七、安装 svnadmin-3.0.4.zip

解压

$unzip svnadmin-3.0.4.zip

解压完成后在当前目录下,出现:

db (这是一个目录)

svnadmin-javadoc.jar

svnadmin-sources.jar

svnadmin-3.0.4.zip

SvnAdmin_Manual_zh_CN.pdf

svnadmin.war

配置

1.配置数据库

导入sql脚本过程:

本地登陆进MSYQL,创建svnadmin数据库,导入脚本

# mysql -uroot -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 177

Server version: 5.1.30-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>create database svnadmin;

mysql>flush privileges;   (这句意思是让刚才的配置生效)

mysql>use svnadmin;

mysql>source /soft/svnadmin-3.0.3/db/mysql5.sql;    //(此处数据库一定要导入成功,我在操作过程中出现了i18n的表消失的情况,至今原因不明,有知道原因的大神请告知一下。)

mysql>flush privileges;

mysql>exit;

2.部署svnadmin

将svnadmin.war拷贝到tomcat目录下的webapps目录中

$cp svnadmin-3.0.4/svnadmin.war apache-tomcat-6.0.36/webapps

修改jdbc.properties文件 配置svnadmin的数据库连接信息。

#vim /usr/local/tomcat/webapps/svnadmin/WEB-INF/jdbc.properties

例如:

db=MySQL

#MySQL

MySQL.jdbc.driver=com.mysql.jdbc.Driver

MySQL.jdbc.url=jdbc:mysql://localhost:3306/svnadmin?characterEncoding=utf-8

MySQL.jdbc.username=root

MySQL.jdbc.password=123  //此处输入mysql用户密码

3.测试svnadmin是否运行正常

浏览器输入 http://hostname:8080/svnadmin

如果能出现登陆窗口说明运行正常。

svnadmin的操作请查看解压出来的SvnAdmin_Manual_zh_CN.pdf文件

转载于:https://blog.51cto.com/jystart/1424141

Centos 6.4搭建svnadmin服务器相关推荐

  1. centos 6.7搭建邮箱服务器

    centos 6.7搭建邮箱服务器 删除系统自带邮件软件包 rpm -qa |grep mailx sendmail rpm -e xxx 安装yum依赖包 sudo yum install -y m ...

  2. 虚拟机安装postfix服务器,CentOS 7 下搭建邮件服务器(bind+postfix+dovecot)

    CentOS 7下搭建邮件服务器 前提环境:CentOS 7虚拟机IP为192.168.43.124 主机名为mail.zxp.com 修改主机名:hostnamectl set-hostname m ...

  3. 在阿里云主机上基于CentOS用vsftpd搭建FTP服务器

    最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...

  4. 服务器linux centos 7.4 搭建ftp服务器

    此操作是在腾讯云服务器linux centos 7.4 完成搭建ftp服务器 vsftpd 的: 安装 vsftpd $ yum install vsftpd -y 启动 $ service vsft ...

  5. linux创建sftp服务器,Linux Centos 6.6搭建SFTP服务器

    众所周知SFTP账号是基于SSH账号的,所以在默认情况下访问服务器的权限是非常大的.下面为SFTP用户权限设置方法. 必要条件: 你的openssh-server版本至少得失4.8p1, 因为配置权限 ...

  6. 在linux挂载网络驱动器,利用centos 6.6 搭建iscsi服务器并在centos挂载iscsi网络驱动器...

    ################################################################## 搭建iscsi服务器: 参考自:http://www.linuxi ...

  7. CentOS 6.5搭建PPTP服务器

    本次搭建使用阿里云华东节点ECS云服务器,操作系统:CentOS 6.5 64位 . 1. 服务器端安装软件 1.1 首先安装ppp,ppp是一种数据链路层协议,命令:  #yum install - ...

  8. CentOS 6.4 搭建SVN服务器

    SVN作为新一代代码版本管理工具,有很多优点,管理方便,逻辑明确,安全性高,代码一致性高.SVN数据存储有两种方式,BDB(事务安全表类型)和FSFS(一种不需要数据库的存储系统),为了避免在服务器连 ...

  9. Centos 6.5 搭建NFS服务器笔记

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://hao360.blog.51cto.com/5820068/1670521 htt ...

最新文章

  1. opencv python 中cv2.putText()函数的用法
  2. VBA学习笔记(9)--生成点拨(1)
  3. 新浪微博爬虫设计(Python版)
  4. android点击运行后无法显示设备,Android仿真器除了黑屏外什么都不显示,adb设备显示“设备离线”...
  5. Java项目开发全流程实践
  6. 库克微微一笑:苹果市值再次突破万亿美元大关
  7. redis 缓存目标
  8. Spark入门(Python版)
  9. html怎么加漂浮物,全面开展水面漂浮物清理专项行动
  10. first network error, wait for 15 seconds
  11. 区块链应用 | 区块链的火爆会一直持续吗?
  12. 【已解决】ws2_32.dll丢失怎么办?ws2_32.dll调用失败如何修复
  13. System Repair Engineer (SREng) 2.6 正式发布
  14. SLG游戏中绘制六边形网格地形
  15. mysql物理删除索引_mysql创建索引,mysql索引优化,mysql索引创建删除
  16. ElasticSearch + Kibana
  17. [BZOJ 1193] 马步距离
  18. 资深建模师常用的几款建模软件,你了解多少?
  19. 利用shell脚本生成动态sql(67天)
  20. PS入门之基本工具介绍

热门文章

  1. 深入 Lucene 索引机制
  2. solr 启动时指定 solr.home
  3. Spring框架整合JUnit单元测试
  4. Python 字典的操作
  5. learn_Day14 内置函数补充、反射、初识面向对象
  6. Google Chrome Native Messaging开发实录(一)背景介绍
  7. Foundation框架中常用类的介绍
  8. jQuery遮罩层(转)
  9. python爬取基金历史净值_Python爬取天天基金网历史净值数据
  10. JQuery中元素的数据存储