linux+apache+svn搭建

linux+apache+svn搭建
网上一搜一大堆案例,但感觉都没说到点子上,初次搭配总浪费很多时间。

1:官网有详细说明,请参考 http://svnbook.red-bean.com/

关键点:如果用apache http server(也即通过http访问svn), 那么:
    1) subversion安装好,再创建一个repository后,就什么配置也不用做了,不配置authz、不配置passwd、不配置svnserver.conf、不需启动svnserver、一切的一切都只需在apache http server中配置。
    2) apache http server安装好后,建议用yum(redhat)安装,然后进入/etc/httpd/目录,先贴上配置步骤,再说明

一:进入/etc/httpd/conf.d/目录,打开subversion.conf文件。如图:




二:放开注释,配置成你的仓库地址,
                    <Location /svn>: 意思为http访问为:http://hostname/svn
                    SVNParentPath:顾名思义仓库父目录,也即如上图/home/svn/目录是所有仓库的父目录,里面可添加许多仓库。它和<Location /svn>是映射关系,即http访问/svn,也就是访问/home/svn
                    AuthType Basic: 基本认证,具体说明见官方
                    AuthUserFile: 存储用户名和密码的文件
                    AuthzSVNAccessFile:配置用户权限文件,可访问哪些仓库、哪些目录
                    Require valid-user: 有效用户

三::wq!后,执行
                    svnadmin create repos   --- 创建仓库repos,名字随便起, 该命令在/home/svn/父目录下执行,执行成功就能看到repos目录且下面多了conf、db、format、等等文件。
                    chown -R apache.apache repos  ---赋予apache访问权限,至关重要,否则启动server后还是会无法访问。
                    chcon -R -t  httpd_sys_content_t  repos  ---递归修改安全上下文的类型配置,至关重要,否则无法访问。

四:配置用户名和密码,执行(任意目录,只要安装了apache http server,该命令默认提供):
                    htpasswd -b -c -m  /etc/httpd/svnconfig/svn-user.htpasswd  用户名  密码   --- htpasswd -b 创建用户名和密码直接一行执行完毕,不需换行提示输入密码, -c 创建新文件  -m 强制MD5加密密码,信息存储在svn-user.htpasswd文件里
                    htpasswd -b -m /etc/httpd/svnconfig/svn-user.htpasswd  用户名  密码  ---创建第二个用户,就不需要在新建文件了,即去掉了-c
                    最简单方式,看不懂命令,直接输入htpasswd -h  会提示帮助说明,按照说明操作即可。

五:配置用户权限,执行:
                    在/etc/httpd/svnconfig/目录里执行vim svn-authz.conf,名字随便起,内容很重要,如图:

[groups] 表示下面都是组,里面有manager和dev两个组
[/] 表示任意目录,下面是用户xliu具有rw权限。
[repos:/]表示repos仓库下面的任意工程,下面是manager组和dev组的用户具有rw权限。

六:一切配置完毕,重启apache http server 执行:
                         /etc/init.d/httpd restart
                        访问:http://hostname/svn/repos即可提示输入用户名密码、进入看到如图:这里的foundation目录是创建的一个文件夹而已,如果没有创建foundation目录,进入则什么也看不到。
                        
七:利用eclipse连接svn导入工程或者通过命令行导入工程即可,具体不再赘述。

说明点:
        1) 一般svn配置都是在httpd.conf文件里面配置svn模块,这里为什么直接在/etc/httpd/conf.d/subversion.con里面配置?
            答:这是因为httpd.conf文件里面有一行: Include conf.d/*.conf ,即已经默认添加subversion.conf配置文件到httpd.conf文件里,所以直接在subversion.conf里面配置,打开suversion.conf看见前三行:


       2) 如果配置过程中,出现任何问题,
                                 只需访问/etc/httpd/logs/error_log 即可看到错误信息,根据错误排查即可,附上命令:tail -100f /etc/httpd/logs/error_log,然后通过http访问svn,看错误信息排查
                                 也可访问/var/log/httpd/error_log查看错误信息。

至此一切配置完毕!

你可能感兴趣的:(linux+apache+svn搭建)