`

CentOS下Subversion配置指南

阅读更多

CentOS 5,CentOS6  下yum安装Subversion,及其配置指南:


基本步骤:
1、安装必需的subversion、登录subversion的认证数据库mysql、发布subversion的服务httpd及其相关mod文件、生成https证书的openssl;
2、配置subversion的资料库文件以及访问权限管理文件authz;
3、配置mysql里的认证数据库,便于访问svn;
4、配置httpd关于subersion和mysql的模块文件;
5、配置https证书,通过openssl;
6、注意事项以及常见问题。

完全运行如下:
1)
[simonsun@magic ~]$ sudo yum install subversion httpd openssl mod_ssl mod_dav_svn mod_auth_mysql mysql mysql-server mysql-devel
[simonsun@magic ~]$ sudo mkdir /home/subversion
[simonsun@magic ~]$ sudo svnadmin create /home/subversion/test
[simonsun@magic ~]$ sudo cp /home/subversion/test/conf/authz /home/subversion/
[simonsun@magic ~]$ sudo chown apache.apache /home/subversion/ -Rf
[simonsun@magic ~]$ sudo chmod ug+rwx /home/subversion/ -Rf
[simonsun@magic ~]$ sudo vim /home/subversion/authz
在最后添加如下内容(i)
[test:/]
testuser = rw
* =
即:给刚才通过svnadmin创建的资料库test添加访问用户testuser,其资料库权限为读和写rw, *= 表示其他用户没有任何权限访问任何资料库。

2)
下面在mysql里建立登录认证数据库auth,并添加用户名为testuser的记录:
(注:centos下mysql的具体配置参照: CentOS下配置MySQL )
[simonsun@magic ~]$ mysql -u root -p
登录后运行以下建库脚本并添加一条记录,建库脚本参考了/etc/httpd/conf.d/auth_mysql.conf 里的注释内容。
create database auth;
use auth;
CREATE TABLE users ( user_name CHAR(30) NOT NULL, user_passwd CHAR(20) NOT NULL, PRIMARY KEY (user_name) );
GRANT SELECT  ON auth.users TO authuser@localhost IDENTIFIED BY 'PaSswoRd2009';
INSERT INTO users VALUES ('testuser', ENCRYPT('testuser'));

3)
下面将上述2个步骤里的资料库信息和登录资料库认证信息配置到httpd里,便于通过http://localhost/svn访问资料库。
(注:centos下httpd的具体配置参照:Linux下无图形化配置万维网服务器httpd )
[simonsun@magic ~]$ sudo vim /etc/httpd/conf.d/subversion.conf
在最后添加如下内容(i),注意各个属性和前面2步一一对应。
<Location /svn>
        DAV svn
        SVNParentPath /home/subversion/
        AuthzSVNAccessFile /home/subversion/authz
        AuthName "SimonSun's Repository"
        AuthType Basic
        AuthMYSQLEnable on
        AuthMySQLUser authuser
        AuthMySQLPassword "PaSswoRd2009"
        AuthMySQLDB auth
        AuthMySQLUserTable users
        AuthMySQLNameField user_name
        AuthMySQLPasswordField user_passwd
        require valid-user
</Location>
[simonsun@magic ~]$ sudo /usr/sbin/httpd -t
Syntax OK

4)
下面通过openssl生成证书,便于通过https也能访问资料库。
[simonsun@magic ~]$ sudo vim /etc/httpd/conf/httpd.conf
找到:
#ServerName www.example.com:80
在其后添加(magic.linux为主机名):
ServerName magic.linux:80

[simonsun@magic ~]$ cd /etc/pki/tls/certs/
[simonsun@magic certs]$ sudo mv ../private/localhost.key ../private/localhost.key.bak
[simonsun@magic certs]$ sudo /usr/bin/openssl genrsa -out ../private/localhost.key 1024
Generating RSA private key, 1024 bit long modulus
................................++++++
...........++++++
e is 65537 (0x10001)

 

(备注:默认的ssl密钥的存放路径,在CentOS 5下 是在 /etc/pki/tls/certs/private/localhost.key,CentOS 6 下是在/etc/pki/tls/private/localhost.key,具体配置地址的是在文件/etc/httpd/conf.d/ssl.conf 里,如:

#   Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate.  If
# the certificate is encrypted, then you will be prompted for a
# pass phrase.  Note that a kill -HUP will prompt again.  A new
# certificate can be generated using the genkey(1) command.
SSLCertificateFile /etc/pki/tls/certs/localhost.crt

#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

。)
[simonsun@magic certs]$ sudo make testcert
umask 77 ; \
        /usr/bin/openssl req -utf8 -new -key /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt -set_serial 0
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:Beijing
Locality Name (eg, city) [Newbury]:Beijing
Organization Name (eg, company) [My Company Ltd]:Beijing
Organizational Unit Name (eg, section) []:Beijing
Common Name (eg, your name or your server's hostname) []:magic.linux
Email Address []:shellfisher@126.com
[simonsun@magic certs]$ ls
ca-bundle.crt  localhost.crt  make-dummy-cert  Makefile

 


5)
从新启动一下httpd
[simonsun@magic certs]$ sudo /etc/rc.d/init.d/httpd restart
Stopping httpd:                                           [  OK  ]
Starting httpd:                                            [  OK  ]

现在就可以打开浏览器访问svn资料库了:
http://localhost/svn/test 或者 https://magic.linux/svn/test
用户名和密码是testuser/testuser。

注意事项是,到了最后,如果开启着SELinux(Security-Enhanced Linux)可能会提示httpd访问受限,

日志里会有像下面的记录:

 [error] [client 127.0.0.1] Access denied: 'testuser' GET test:/
 [error] [client 127.0.0.1] (13)Permission denied: Failed to load the AuthzSVNAccessFile: Can't open file '/home/subversion/authz': Permission denied
可以在system-config-securitylevel里禁用SELinux。


(备注:CentOS 6 没有上面这个图形化工具配置,需要用setenforce设置:

[simon_sun@gnu ~]$ getenforce
Enforcing
[simon_sun@gnu ~]$ setenforce
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
[simon_sun@gnu ~]$ sudo setenforce 0
[simon_sun@gnu ~]$ getenforce
Permissive

 

如果要永久变更系统 SELinux 运行环境,可以更改配置文件 /etc/sysconfig/selinux 实现。注意当从 Disabled 切换到 Permissive 或者 Enforcing 模式后需要重启计算机并为整个文件系统重新创建安全标签(touch /.autorelabel && reboot。 --参考:http://blog.csdn.net/wxy8402/article/details/6902871

如果出现其他错误,可以通过查看错误日志来找出问题所在:
[simonsun@magic certs]$ sudo vim /var/log/httpd/error_log
访问subversion资料库的各种日志包含在httpd的日志里,
[simonsun@magic certs]$ sudo ls /var/log/httpd/
access_log    access_log.3  error_log.1  error_log.4     ssl_access_log   ssl_error_log.2  ssl_request_log
access_log.1  access_log.4  error_log.2  nss_access_log  ssl_error_log    ssl_error_log.3
access_log.2  error_log     error_log.3  nss_error_log   ssl_error_log.1  ssl_error_log.4
[simonsun@magic certs]$

 

以上均在CentOS 5系列和6系列的32位64位操作系统下测试通过。


参考链接:
http://wiki.centos.org/HowTos/Subversion
http://doc.iusesvn.com/show-12-1.html

=========================

1
0
分享到:
评论

相关推荐

    SVN版本管理系统的安装(CentOS+Subversion+Apache+Jsvnadmin)安装步骤

    本文档详细介绍了 SVN 版本管理系统的安装步骤,包括安装 CentOS、Subversion、Apache 和 Jsvnadmin 等组件的详细过程。 标题解释 SVN 版本管理系统的安装(CentOS+Subversion+Apache+Jsvnadmin)安装步骤 本标题...

    centos 6.5下离线安装svn

    以下是一份详细的步骤指南,帮助你理解如何在没有互联网连接的情况下完成这一任务。 首先,我们需要了解SVN是什么。Subversion是一个用于版本控制的系统,它跟踪文件和目录的更改,以便团队成员可以在共享项目上...

    subversion-deps-1.4.5.tar subversion-1.4.5.tar

    本篇文章将深入讲解如何在Linux环境下搭建SVN服务器,以"subversion-deps-1.4.5.tar"和"subversion-1.4.5.tar"这两个文件为基础进行安装和配置。 首先,我们需要了解这两个文件。"subversion-deps-1.4.5.tar"包含了...

    svn+apache centos下安装文档

    ### SVN + Apache 在 CentOS 下的安装与配置指南 #### 一、引言 在现代软件开发过程中,版本控制系统(Version Control System, VCS)扮演着至关重要的角色。Subversion(简称SVN)作为一款广受欢迎的集中式版本...

    subversion及myeclipse的svn插件安装文档

    在本教程中,我们将深入探讨如何在CentOS 6环境下安装Subversion 1.7版本,以及如何在MyEclipse集成开发环境中安装并配置SVN插件。 首先,我们开始CentOS 6上Subversion 1.7的安装步骤: 1. **更新系统**:在安装...

    linux-svn配置svn操作指南权限配置

    本指南将深入探讨如何在Linux环境中配置SVN服务器,以及如何进行权限管理,确保团队成员能按照预设的角色和职责进行协作。 首先,我们需要安装SVN。在大多数Linux发行版中,可以通过包管理器完成此操作。例如,在...

    详解CentOS的SVN服务器搭建与自动部署全过程

    总结,本文详细介绍了在CentOS上搭建SVN服务器的步骤,包括安装服务、创建仓库、配置权限、启动服务、开放端口,以及设置自动部署。通过这样的配置,团队可以高效地进行代码版本控制和协同开发,同时确保网站内容能...

    expat-2-1-0.zip

    Expat是一个开源的XML解析库,它被广泛用于各种操作系统和软件项目中,包括CentOS和Subversion。在本文中,我们将深入探讨Expat库,特别是版本2.1.0,以及它在CentOS和Subversion中的作用。 首先,XML(可扩展标记...

    CentOS 6.2 服务器下搭建Apache+SVN

    本教程将详细介绍如何在基于Linux的CentOS 6.2操作系统上安装和配置Apache Web服务器与Subversion(SVN)服务,以便实现代码仓库的集中管理和版本控制。 首先,Apache是世界上最流行的Web服务器软件,它提供了一个...

    svn centos

    描述中提到的链接指向了一个特定的博客文章,虽然描述本身是空的,但我们可以假设博客提供了关于在 CentOS 上配置和使用 SVN 的教程或指南。由于没有实际的链接内容,我们将基于一般实践来讲解 SVN 在 CentOS 上的...

    LINUX下如何搭建apache和svn。(centos 5.3)

    以下是一份详细的步骤指南,适用于CentOS 5.3系统: 首先,确保你的Linux系统是最新的,通过运行`yum update`来更新所有已安装的软件包。 **一、安装Apache** 1. 安装Apache HTTP Server,使用`yum install httpd*...

    linux / centos apache server + svn

    文档"CosSubversion版本控制2.doc"可能提供了关于如何使用Subversion进行版本控制的更深入指南,包括团队协作的最佳实践、分支策略、冲突解决等内容。阅读这份文档将有助于更好地理解和利用SVN。 总结起来,"Linux ...

    linux nginx下配置独立的svn

    本文详细介绍了如何在CentOS 5.5 + LNMP环境下配置独立的SVN服务器。从安装Subversion到配置服务器、启动服务直至测试连接,每个步骤都进行了详尽的说明。通过本文的学习,读者应能够掌握在Linux Nginx环境下搭建SVN...

    CentOS6.4搭建reviewboard

    在本文中,我们将深入探讨如何在CentOS 6.4上搭建ReviewBoard,这是一个流行的开源代码审查工具。首先,确保你的系统是CentOS ...如果需要更多的配置或定制,请参考ReviewBoard的官方文档,那里有更详细的信息和指南。

    LINUX下SVN服务器安装配置实践

    本实践指南将详细讲解如何在CentOS 5.4 Linux系统上,结合Apache服务器,安装并配置SVN服务器。尽管这里使用的版本是subversion-1.6.6和Apache 2.2.14,但不同版本的安装步骤大同小异。 **一、安装Subversion** 1....

    Linux_SVN客户端安装包和配置指导

    Linux下的Subversion(SVN)...总之,Linux下的Subversion客户端提供了一种有效管理项目代码的方式,通过正确的安装和配置,可以轻松地与团队成员共享和协作代码。遵循上述步骤,您将能够在Linux环境中顺利地使用SVN。

    centos6.5下svn的使用说明

    以下是一份详细的 SVN 安装和配置指南,帮助开发者理解和使用 SVN。 **一、安装 SVN** 首先,确保你的系统是最新的,通过运行 `yum update` 来更新系统。然后,使用 `yum` 包管理器安装 SVN: ```bash yum install ...

    Linux svn安装配置

    ### Linux下Subversion (SVN) 的安装与配置详解 #### 安装Subversion 在Linux环境下安装Subversion(简称SVN),有两种主要...以上是Linux环境下SVN的安装、配置及基础操作指南,适用于团队协作中的版本控制需求。

Global site tag (gtag.js) - Google Analytics