`
xupo
  • 浏览: 215805 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

apache SVN权限的问题困扰了我多长时间

阅读更多

 

chcon -R -h -t httpd_sys_content_t <SVN Root 目录>

 

 

 

 CentOs5.5上配置SVN1.6.13

我是采用RPM包来装的(本文是服务器端的安装),apache用的是原来安装系统的时候安装的apache。

1.首先下载所需要的RPM包

1)mod_dav_svn-1.6.13-1.i386.rpm
2)neon-0.28.4-1.i386.rpm
3)neon-devel-0.28.4-1.i386.rpm
4)sqlite-3.5.9-2.i386.rpm
5)sqlite-devel-3.5.9-2.i386.rpm
6)subversion-1.6.13-1.i386.rpm
7)subversion-devel-1.6.13-1.i386.rpm
大家可以到http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/1.6.13/下载所需要的软件,这边还有其它版本所需要的文件。
2.开始安装
1)先升级sqlite。
请注意,rpm管理本身对sqlite有依赖,所以不能卸载sqlite,如果卸载,会出现rpm命令不可用的问题,最好直接升级至最新版本的sqlite。
#rpm -Uvh sqlite-3.5.9-2.i386.rpm
注:可能出现以下问题
sqlite = 3.3.6-5 is needed by (installed) sqlite-devel-3.3.6-5.i386
那就先用#rpm -e sqlite-devel-3.3.6-5.i386把这个文件给卸载了,后面会再安装(sqlite-devel-3.5.9-2.i386.rpm)
2)安装neon-0.28.4-1.i386.rpm
# rpm -Uvh neon-0.28.4-1.i386.rpm 
error: Failed dependencies:
libneon.so.25 is needed by (installed) cadaver-0.22.3-4.el5.i386
# rpm -e cadaver-0.22.3-4.el5.i386
# rpm -Uvh neon-0.28.4-1.i386.rpm
Preparing...                ########################################### [100%]
   1:neon                   ########################################### [100%]
3)安装neon-devel
[root@localhost data]# rpm -Uvh neon-devel-0.28.4-1.i386.rpm 
Preparing...                ########################################### [100%]
   1:neon-devel             ########################################### [100%]
4)安装subversion
[root@localhost data]# rpm -ivh subversion-1.6.13-1.i386.rpm 
Preparing...                ########################################### [100%]
   1:subversion             ########################################### [100%]
5)安装mod_dav_svn-1.6.13-1.i386.rpm
[root@localhost data]# rpm -Uvh mod_dav_svn-1.6.13-1.i386.rpm
Preparing...                ########################################### [100%]
   1:mod_dav_svn            ########################################### [100%]
6)安装sqlite-devel
[root@localhost data]# rpm -ivh sqlite-devel-3.5.9-2.i386.rpm 
Preparing...                ########################################### [100%]
   1:sqlite-devel           ########################################### [100%]
7).安装subversion-devel
[root@localhost data]# rpm -ivh subversion-devel-1.6.13-1.i386.rpm
Preparing...                ########################################### [100%]
   1:subversion-devel       ########################################### [100%]
3.配置

 

1)初始化repository

 创建svn的项目库父路径,我把/svn/repos做为svn的项目库父路径。这个目录是任意的,如果是多个项目库则必须在同一个父路径下

 #mkdir /svn/repos

 我们通过如下命令初始化一个svn项目库zf

 #svnadmin create /svn/repos/zf

 重复上面的命令创建多个项目库,如

 #svnadmin create /svn/repos/chenproject

 指定存储方式来报建SVN库:

 #svnadmin create --fs-type fsfs /svn/repos/TelecomRepositorys

 #svnadmin create --fs-type bdb /svn/repos/TelecomRepositorys

 注:默认是bdb(Berkeley DB)的存储方式,不过一般人更喜欢fsfs的存储库方式

2)创建登陆的用户,有两种方式:以文件的形式,以数据库的形式(mysql)

a)以文件的形式

 

        在/svn目录下创建登陆用户文件.htpasswd以及2个用户chen1,chen2

        #htpasswd -c /svn/.htpasswd chen1

        #htpasswd /svn/.htpasswd chen2

注:-c是第一次那建文件时要用。在后面添加用户的时候,就不用-c选项.如果是自己安装了apaceh,那么找到apache的bin目录找到htpasswd 

 b)以数据库的形式

         #mysql -u root -p

          #mysql>create database svn_auth;

          mysql>user svn_auth

         创建用户svn

        mysql>GRANT ALL PRIVILEGES ON *.* TO svn@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

       创建表users

       mysql> CREATE TABLE users (

           ->   user_name CHAR(30) NOT NULL,

          ->   user_passwd CHAR(20) NOT NULL,

          ->   PRIMARY KEY (user_name)

          -> );

       添加2个测试帐号

         mysql> insert into users values('chen1', ENCRYPT('password'));

         mysql> insert into user values('chen2', ENCRYPT('password'));

4.SVN访问控制

  在/svn目录下创建访问控制文件文件svnaccess,名字任意,不过在以后的配置过程中你必须使用正确的名字,文件内容为
[groups]   
# harryharry_and_sally = harry,sally     
[/]   
*=rw  
注:意思是对所有的项目,所有人都有读写(rw)的权限,当然我们还可以对某个项目单独进行限制,设置如下
[groups]   
# harryharry_and_sally = harry,sally     
[zf:/]   
chen1=r  
*=rw  
 意思是对于项目库zf,用户chen1只有读权限,其他人有读写权限
5.Apache和SVN集成
 编辑apache的配置文件/etc/httpd/conf/httpd.conf文件或者/etc/httpd/conf.d/subversion.conf文件
 如果你使用登陆文件认证的方式,添加如下内容 
<Location /svn>  
DAV svn                           
SVNParentPath /svn/repos                           
AuthzSVNAccessFile /svn/svnaccess                           
AuthType Basic                           
AuthName "SVN Repositorys"                           
AuthUserFile /svn/.htpasswd                           
Require valid-user      
</Location>  
如果是用上面的方式,可能会出现提示authzSVNAccessFile有问题,要确保httpd.conf或是subversion.conf中有添加以下模块
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

 如果你使用数据库认证的方式,添加如下内容
<Location /svn>                      
DAV svn                       
SVNParentPath /svn/repos                       
AuthzSVNAccessFile /svn/svnaccess                       
AuthName "SVN Repositorys"                       
AuthType Basic                       
AuthMYSQLEnable on                       
AuthMYSQLUser svn                       
AuthMySQLPassword password                       
AuthMYSQLDB svn_auth                       
AuthMYSQLUserTable users                       
AuthMYSQLNameField user_name                       
AuthMYSQLPasswordField user_passwd                       
Require valid-user               
</Location> 
注:我们可以看到/svn/svnaccess,/svn/.htpasswd是我们创建的文件,如果名字自定义的话,请在http.conf配置正确,同样需要正确配置的还有数据库用户svn,数据库svn_auth,表名users等等。
6.安全访问设置[必须设置,否则svn无法访问]
 修改目录的属主和访问权限
 #chown apache.apache -R /svn
 #chmod 755 -R /svn    
注:如果有开启selinux,那么会出现问题,解决方法:
 .禁用SELinux(不推荐)
或者
在SELinux图形管理界面中勾上Disable SELinux protection for httpd daemon这个选项,否则apache这个虚拟用户无法访问/svn目录,当然  你也可以用更好的方法设置apache的访问权限.
7.重新启动Apache服务器
 #service httpd restart
  或者
 #/etc/init.d/httpd restart
7. 键入下面的url看是否能正确的访问svn。
 http://localhost/svn/zf
若页面有东西,说明成功。

 

 

 

 

分享到:
评论

相关推荐

    Windows apache svn服务器搭建

    本教程将详述如何在Windows环境下搭建基于Apache服务器的Subversion(SVN)服务端,帮助你实现代码的集中式管理。 首先,我们需要了解SVN的基本概念。Subversion是一个开源的版本控制系统,它允许开发者跟踪并管理...

    apache+svn安装

    ### Apache + SVN 安装与配置详解 #### 概述 在软件开发过程中,版本控制系统是必不可少的工具之一。Subversion(简称SVN)作为一款经典的集中式版本控制系统,在项目管理方面发挥着重要作用。而Apache作为一款...

    Apache配合SVN在Windows下安装配置及其权限管理

    ### Apache配合SVN在Windows下的安装配置及其权限管理 #### 一、安装配置Apache与SVN **1. 安装Apache** - **步骤**: 首先下载Apache 2.2.14版本,并进行安装。安装路径设为`D:\Program Files\Apache Software ...

    使用PHP进行Apache+SVN的权限管理

    Apache的mod_authz_svn模块提供了基于角色的访问控制(RBAC),但如果你想实现更复杂的逻辑,例如根据用户角色分配不同的权限,或者动态修改权限,那么可以编写PHP脚本来处理。PHP可以通过Apache的mod_rewrite模块...

    Windows 下面 apache+SVN配置

    确保选择与Apache版本兼容的SVN版本,因为不同版本可能存在兼容性问题。 接下来,进行安装。Apache的安装通常是标准的下一步流程,注意避免与其他服务如IIS、迅雷或QQ音乐等占用80端口的应用冲突。安装完成后,访问...

    windows下apache+svn

    【Apache + SVN 在 Windows 下的配置与应用】 Apache 和 Subversion(简称 SVN)是软件开发过程中常见的工具,Apache 作为一款流行的开源Web服务器,而 SVN 则是一种版本控制系统,用于协同开发和管理代码版本。本...

    windows下基于apache的svn安装教程

    2. **权限问题**:确保Apache服务有读写仓库目录的权限,否则可能导致无法访问。 3. **认证错误**:若出现认证失败,检查`htpasswd`文件是否正确创建,用户名和密码是否匹配。 4. **SVN访问慢**:优化网络设置,或...

    ApacheSVN安装操作

    Apache SVN 是一个广泛使用的版本控制系统,它基于Subversion(SVN)并与Apache HTTP Server相结合,提供了一个高效且安全的...在实际使用过程中,可能会遇到权限、网络或其他问题,需要根据错误信息进行排查和解决。

    apache svn安装程序

    Apache Subversion(简称SVN)是一款广泛应用于软件开发领域的版本控制系统,它可以帮助团队协作管理代码,跟踪文件的历史版本,合并不同开发者的修改,并提供备份和恢复功能。在本篇文章中,我们将详细介绍Apache ...

    svn+apache(httpd) svn离线安装包,需要的自取

    Apache与SVN的集成主要依赖于mod_dav_svn模块,这是一个Apache模块,提供了对SVN的WebDAV/DeltaV支持。安装过程通常包括以下几个步骤: 1. **下载与安装Apache**:首先,你需要下载适用于你操作系统的Apache ...

    搭建SVN + Apache 服务器

    ### 搭建SVN + Apache 服务器 在IT领域,版本控制系统对于软件开发团队来说至关重要,它能够帮助团队成员管理代码变更、协同工作,并确保项目的稳定性和安全性。Subversion(SVN)作为一款经典的集中式版本控制系统...

    SVN + Apache 成功安装部署

    **标题解析:** "SVN + ...以上就是关于“SVN + Apache 成功安装部署”的主要知识点,涵盖了版本控制、Web服务器配置和开发环境搭建等多个方面。实际操作中,还需要注意系统的兼容性、安全设置以及网络环境等因素。

    实例方式讲解svn目录权限设置

    但是,SVN的权限设置一直是开发者头疼的问题。本文将通过实例讲解svn目录权限的详细设置,希望能够帮助开发者更好地理解和掌握svn权限设置。 一、项目结构 在设置svn权限之前,我们需要了解项目的结构。一个典型的...

    Win安装svn Apache viewvc

    这个集成过程可能会遇到一些挑战,例如权限问题、URL重写规则的配置等,但按照上述步骤,大多数用户应该能够成功建立一个运行在Windows上的Subversion、Apache和ViewVC环境。记得在安装和配置过程中,始终检查错误...

    apache+svn安装配置

    - 监控Apache和SVN的日志文件,及时发现并解决问题。 - 根据团队规模和项目需求,调整SVN的性能参数。 以上就是"apache+svn安装配置"的详细步骤,通过这些步骤,你可以在本地或服务器上建立一套完整的版本控制...

    apache+svn配置网络服务器

    1. **权限问题**:如果用户无法访问仓库,可能需要检查文件系统权限、Apache用户与仓库目录的关系,以及Apache配置中的授权规则。 2. **性能优化**:对于大型项目,可能需要考虑缓存策略、内存配置(如`...

    Linux整合Apache和SVN

    将Apache与SVN整合,可以创建一个高效、安全的Web访问源代码仓库的解决方案。以下是对"Linux整合Apache和SVN"这一主题的详细讲解。 首先,了解SVN的基本概念。Subversion是一个集中式的版本控制系统,它记录了文件...

    CentOS 6.5搭建Apache整合SVN 1.8.5服务器(多版本库权限配置)

    本文将详细讲解如何在CentOS 6.5操作系统上搭建Apache服务器,并整合SVN 1.8.5,同时涵盖多版本库的权限配置。这个过程涉及到源码编译和安装,以及Apache的模块配置。 首先,我们需要准备必要的软件包,包括Apache ...

    关于svn与Apache整合

    关于svn与Apache整合以及svn一些常用问题的解决,

    如何配置基于apache且用svn、http、https访问的SVN

    1. **安装mod_dav_svn和mod_authz_svn**:这两个模块允许Apache与SVN通信并进行权限管理。在Linux上,可以通过包管理器(如apt或yum)安装。在Windows上,它们通常包含在SVN安装包中。 2. **创建SVN仓库**:在...

Global site tag (gtag.js) - Google Analytics