图片 2

陆14人上搭建SVN服务器,Subversion的安装配置与用户验证配置

前情提要:福无双至,祸不单行。这句话映射到程序员身上就是不但笔记本电脑进厂了,而且连电脑上近一个月写的代码也丢了。欲哭无泪之际,开始思量着给自己的代码找个安身之所。说起鄙人那堆可怜的代码。最开始的时候,是在台式机上装了本地的SVN服务器。代码不出门,全在家里住。那会毕业不久,写的东西少也不怎么实用。也没有代码库的概念。后来积累的东西多了,遇到的很多问题都属于重复编码。家里的代码库连不上网,那拷硬盘放着呗。老板看你整天用硬盘不爽不说,代码不同步搞到千疮百孔。再后来开始用git了。用着还不错,就是私有化项目这一块没弄,也没敢全往上面传。直到上星期笔记本挂了,丢了几份代码。思来想去,还是得自己开个代码仓库。存到服务器上提交方便,也多份保障吧。

CentOS 下搭建SVN +
Apache 服务器

注:本例采取subversion+apache的模式

Linux中Subversion配置实例
http://www.linuxidc.com/Linux/2012-02/53109.htm

1.安装软件包

一:所需软件包下载
编译svn需要依赖sqlite库,RHEL5自带的rpm包版本太低,编译不能通过。
#wget
#wget

#wget

CentOS 6.2 SVN搭建
(YUM安装)

http://www.linuxidc.com/Linux/2013-10/91903.htm

# yum install httpd

二:sqlite库编译安装
#tar -zxvf sqlite-amalgamation-3.6.13.tar.gz
#cd sqlite-3.6.13/
#./configure–prefix=/usr/local/sqlite
#make && make install

Apache+SVN搭建SVN服务器
http://www.linuxidc.com/Linux/2013-03/81379.htm

# yum install mod_dav_svn

三:apache编译安装
#cd../
#tar -zxvf httpd-2.2.16.tar.gz
#cd httpd-2.2.16.tar.gz       
—subversion与apache结合的时候,需要使用apache服务器的dav模块,在编译apache的时候,需添加
–enable-dav选项
#./configure –prefix=/usr/local/apache –enable-dav –enable-so
–enable-rewrite –enable-headers –enable-expires
–enable-mods-shared=all
#make&& make install

Windows下SVN服务器搭建和使用 + 客户端重新设置密码
http://www.linuxidc.com/Linux/2013-05/85189p5.htm

# yum install subversion

四:subversion编译安装
#cd../
#tar -jxvf subversion-1.6.12.tar.bz2
#cd subversion-1.6.12
#./configure –prefix=/usr/local/subversion –with-sasl
–with-zlib=/usr/lib –with-ssl –with-sqlite=/usr/local/sqlite
–with-apxs=/usr/local/apache/bin/apxs
#make && make install

Ubuntu Server 12.04 安装
SVN 并迁移 Virtual SVN数据
http://www.linuxidc.com/Linux/2013-05/84695.htm

2.  验证安装

五:配置apache支持subversion
1:查看apache是否编译了dav模块:
#cat/usr/local/apache/build/config.nice
“./configure” \
“–prefix=/home/usr/local/apache”\
“–enable-so” \
“–enable-rewrite” \
“–enable-headers” \
“–enable-dav”\          —有dav模块
“–enable-expires” \
“–enable-mods-shared=all” \
“$@”

Ubuntu Server搭建svn服务以及迁移方法
http://www.linuxidc.com/Linux/2013-05/84693.htm

# httpd -version

 
2:配置apache主配置文件httpd.conf
修改servername:
Servername localhost:80
取消拓展配置文件中httpd-vhosts.conf之前的注释:
Includeconf /extra/httpd-vhosts.conf
 
3:配置/usr/local/apache/conf/extra/httpd-vhosts.conf
#cat /usr/local/apache/conf/extra/httpd-vhosts.conf
NameVirtualHost *:80
 
<VirtualHost *:80>
  DocumentRoot “/svn_data”
  ServerName  192.168.189.132
  <Directory /svn_data>
    Order allow,deny
    Allow from all
  </Directory>
 
</VirtualHost>
 
<Location /svn>
  DAV svn
  SVNListParentPath on
  SVNParentPath /svn_data/
  SVNPathAuthz Off
</Location>

借助网盘搭建SVN服务器
http://www.linuxidc.com/Linux/2013-10/91271.htm

结果显示:

创建/svn_data目录:
#mkdir -p /svn_data

1  程序安装

前往 /etc/httpd/modules/
下,检查是否包含mod_dav_svn.so和mod_authz_svn.so,如果有,mod_dav_svn安装成功。

4:启动apache服务
验证配置文件语法:
#/usr/local/apache/bin/apachectl -t

1.1  sudo apt-get install apache2

# svnserve –version

如果正常,则显示“SyntaxOK”。
首次配置subversion+apache时,通常会出现如下错误:
httpd: Syntax error online 105 of
/usr/local/apache2.2.15/conf/httpd.conf: Cannot
load/usr/local/apache2.2.15/modules/mod_dav_svn.so into
server:/usr/local/subversion/lib/libsvn_subr-1.so.0: undefined symbol:
sqlite3_open_v2
 使用如下方法解决:
#echo “/usr/local/sqlite/lib” >>/etc/ld.so.conf
#ldconfig

安装apache2。如果你已经装了nginx的话。先将nginx停掉。他使用的80端口和后面安装的apache2会冲突。如:/etc/init.d/nginx
stop。

结果显示:

若使用上述方法依然无法解决错误,则查看系统是否为64为,再使用以下方法:
#mv /usr/lib64/libsqlite3.so.0.8.6 /root/bak
#ln -s /usr/local/sqlite/lib/libsqlite3.so.0.8.6
/usr/lib64/libsqlite3.so.0.8.6
#ldconfig

安装完之后,如无意外会出现如下报错:

安装svn 成功。

六:测试subversion
 创建svn目录cmh:
#svnadmin  create  /svn_data/cmh
#ls /svn_data/cmh
conf db  format  hooks locks  README.txt

apache2: Could not reliably determinethe server’s fully qualified domain
name, using 127.0.0.1 for ServerName

  1. 创建仓库

web界面测试:

在/etc/apache2/httpd.conf(此文件此时为空,是正常的)中增加下面一行:

# mkdir /var/www/svn
 # cd /var/www/svn
 # svnadmin create repo1

图片 1

ServerName 127.0.0.1:80

  1. 配置

出现以上界面,说明subversion初步配置使用完成。
 
七:配置subversion用户验证
创建subversion配置目录,并创建验证文件:
#mkdir  /usr/local/subversion/conf
#cd  /usr/local/subversion/conf
#touch authz
#cat  authz  (配置组、用户、目录权限)
[groups]
admin = admin,cmh
tech = user1,user2
 
[cmh:/]
@admin = rw
@tech = r

重启apache2 ,执行
/etc/init.d/apache2restart。出现如下字段表示重启成功。

/var/www/svn 目录下会有一个repo1的文件夹

使用apache的htpasswd命令创建passwd文件(首次创建用-cm,后续添加用户用-m):
#/usr/local/apache/bin/htpasswd-cm /usr/local/subversion/conf/passwd
cmh

    root@xxxxx:/etc/apache2#/etc/init.d/apache2 restart
      * Restarting web server apache2
    … waiting  …done.

修改所有者:

 配置/usr/local/apache2.2.15/conf/httpd.conf文件,在svn目录下添加验证配置。
<Location/svn>
  DAV svn
  SVNListParentPathon
  SVNParentPath /svn_data/
  SVNPathAuthz On
  AuthzSVNAccessFile/usr/local/subversion/conf/authz
  AuthName “Private Svn”
  AuthType Basic
  AuthUserFile/usr/local/subversion/conf/passwd
  Require valid-user
</Location>

1.2  sudoapt-get install subversion

# chown -R apache:apache repo1
 

重启apache:
#/usr/local/apache/bin/apachectl –t
#/usr/local/apache/bin/apachectl –k restart

安装subversion。略过。

copy  /var/www/svn/repo1/conf 下的 authz到
/var/www/svn下,并创建passwd文件

Web验证:

1.3  sudoapt-get install libapache2-svn

# cp /var/www/svn/repo1/conf/authz /var/www/svn/authz
 # cd /var/www/svn
 # vi passwd
 :wq保存退出

图片 2

安装连接插件。略过。

生成账号:

Linux中Subversion配置实例
http://www.linuxidc.com/Linux/2012-02/53109.htm

2  权限

# htpasswd /var/www/svn/passwd user1

CentOS 6.2 SVN搭建
(YUM安装)

http://www.linuxidc.com/Linux/2013-10/91903.htm

2.1  相关用户、组的设定

输入密码,生成user1账号

Apache+SVN搭建SVN服务器
http://www.linuxidc.com/Linux/2013-03/81379.htm

执行下面命令:

权限管理设置:

Windows下SVN服务器搭建和使用 + 客户端重新设置密码
http://www.linuxidc.com/Linux/2013-05/85189p5.htm

sudoaddgroup subversion
sudousermod -G subversion -a www-data

# vi /var/www/svn/authz

Ubuntu Server 12.04 安装
SVN 并迁移 Virtual SVN数据
http://www.linuxidc.com/Linux/2013-05/84695.htm

查看结果:

在[groups]下添加组,

Ubuntu Server搭建svn服务以及迁移方法
http://www.linuxidc.com/Linux/2013-05/84693.htm

    cat /etc/group|grep subversion
    subversion:x:1001:www-data

[/] 相当于/var/www/svn这个目录,赋予权限给用户组

借助网盘搭建SVN服务器
http://www.linuxidc.com/Linux/2013-10/91271.htm

2.2  Apache2挂载SVN模块(通过

[repo1:/] 是指repo1库

Subversion (SVN)
的详细介绍
:请点这里
Subversion (SVN)
的下载地址
:请点这里

通过 WebDAV 协议访问SVN
文件仓库,必须在/etc/apache2/mods-available/dav_svn.conf中加入下面的代码片段:

[repo1:/desgin]是repo1下的desgin目录

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-07/133088.htm

    <Location/svn/>
        DAV svn
        SVNParentPath /home/svn
        SVNListParentPath On
        AuthType Basic
        AuthName “Subversion Repository”
        AuthUserFile /home/svn/conf/dav_svn.passwd
        AuthzSVNAccessFile/home/svn/conf/dav_svn.authz
        Require valid-user
    </Location>
    RedirectMatch^(/svn)$ $1/

[groups]
admin=user1
proj1_developer=user2,user3
proj2_develoer=user2,user4
 
proj1_desgin=user5,user6
 
[/]
@admin=rw
 
[repo1:/]
@proj1_developer=rw
 
[repo1:/desgin]
@proj1_desgin=rw
 
[repo2:/]
@proj2_developer=rw
 

图片 3

2.3  用户设置

将svn关联到apache上:
 
 # vi /etc/httpd/conf.d/subversion.conf
 
  在底部加上:

新建/home/svn/conf目录。为用户设置密码,会以加密方式保存(-c
是新建的意思,去掉就是追加)。后面会提示你输入对应密码的。

<Location /repos>
  DAV svn
  SVNParentPath /var/www/svn
 
#  # Limit write permission to list of valid users.
#  <LimitExcept GET PROPFIND OPTIONS REPORT>
#      # Require SSL connection for password protection.
#      # SSLRequireSSL
#
      AuthType Basic
      AuthName “Authorization SVN”
      AuthzSVNAccessFile /var/www/svn/authz
      AuthUserFile /var/www/svn/passwd
      Require valid-user
#  </LimitExcept>
</Location>
 

    htpasswd -c /home/svn/conf/dav_svn.passwd user_1
    htpasswd  /home/svn/conf/dav_svn.passwd user_2

重启httpd

新建dav_svn.authz 文件,加入如下代码。

# service httpd restart

    [groups]
    admin=user_1
    user=user_2
    [/]
    @admin = rw
    @user = r

  1. 通过浏览器测试

重启apache2。/etc/init.d/apache2 restart

在浏览器中输入

如无意外会出现如下报错

此时会弹出输入密码框,输入创建的用户名和密码就可以登录了。

    Syntax error on line 65 of/etc/apache2/mods-enabled/dav_svn.conf:
    Invalid command’AuthzSVNAccessFile’, perhaps misspelled or defined
by a module not included inthe server configuration
    Action ‘configtest’ failed.
    The Apache error log mayhave more information.
        …fail!

Ubuntu 14.04
下搭建SVN服务器 svn:// 
http://www.linuxidc.com/Linux/2015-01/111956.htm

原因是没有载入模块。在/etc/apache2/mods-available/dav_svn.load加入下面代码。

CentOS 6.2 SVN搭建 (YUM安装)
http://www.linuxidc.com/Linux/2013-10/91903.htm

LoadModule authz_svn_module/usr/lib/apache2/modules/mod_authz_svn.so

CentOS 6.5部署Apache+SVN 
http://www.linuxidc.com/Linux/2013-12/94315.htm

再执行重启/etc/init.d/apache2restart就正常了。

Apache+SVN搭建SVN服务器
http://www.linuxidc.com/Linux/2013-03/81379.htm

更多详情见请继续阅读下一页的精彩内容
http://www.linuxidc.com/Linux/2014-06/102562p2.htm

Windows下SVN服务器搭建和使用 + 客户端重新设置密码
http://www.linuxidc.com/Linux/2013-05/85189p5.htm

图片 4

Ubuntu Server 14.04
安装Web服务器(Linux+Apache+MySQL+PHP) 
http://www.linuxidc.com/Linux/2015-06/119061.htm

Linux下安装配置PHP环境(Apache2) 
http://www.linuxidc.com/Linux/2015-05/118062.htm

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置
http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9下编译安装LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12)
http://www.linuxidc.com/Linux/2013-03/80333p3.htm

RedHat
5.4下Web服务器架构之源码构建LAMP环境及应用PHPWind
http://www.linuxidc.com/Linux/2012-10/72484p2.htm

Apache
的详细介绍
:请点这里
Apache
的下载地址
:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-07/120710.htm

图片 5