Ubuntu下 subversion 安装

来源:互联网 发布:室内设计3d效果图软件 编辑:程序博客网 时间:2024/04/30 21:53

一.安装subversion ( svn )

$ sudo apt-get install subversion
$ sudo apt-get install libapache2-svn

二.配置subversion

1.创建svn仓库
例如要创建的项目名称为project,存储在/home/svn目录下
$ cd /home
$ mkdir svn
$ chown root:www-data svn -R //svn 的组用户是www-data,这样apache就可以访问该目录
$ chmod 770 svn -R
$ chmod u+s svn -R
$ chmod g+s svn -R
$ cd /home/svn
$ svnadmin create project
$ chmod g+ws project -R
好目录创建好了:)

2.创建/导入/导出项目

创建项目
例如要将/home/code 中的代码导入svn
svn import -m "Import code to project" /home/code http://svn所在机器的IP地址/svn/project



导入
svnadmin load /home/svn/project < project.data

导出
svnadmin dump /home/svn/project >project.data


3.apache配置

修改 /etc/apache2/httpd.conf
加入
LoadModule dav_module          /usr/lib/apache2/modules/mod_dav.so
LoadModule dav_svn_module     /usr/lib/apache2/modules/mod_dav_svn.so

修改 /etc/apache2/mods-enabled/dav_svn.conf

加入以下配置
<Location /svn/project>
   DAV svn
   SVNPath /home/svn/project
   AuthType Basic
   AuthName "project Subversion Repository"
   AuthUserFile /etc/subversion/passwd
   AuthzSVNAccessFile /etc/subversion/access
# <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
# </LimitExcept>
</Location>

重启apache

打开浏览器输入
http://svn所在机器的IP地址/svn/project
应该可以访问了:)

4.访问权限控制

口令文件
/etc/apache2/mods-enabled/dav_svn.conf
中AuthUserFile /etc/subversion/passwd指定了svn用户的password存放位置
可以使用
$ htpasswd2 passwd dev_admin #加入开发者dev_admin
$ htpasswd2 passwd dev_c1 #加入开发者dev_c1
$ htpasswd2 passwd dev_c2 #加入开发者dev_c2
$ htpasswd2 passwd dev_php #加入开发者dev_php

访问控制文件
/etc/apache2/mods-enabled/dav_svn.conf
中AuthUserFile /etc/subversion/access 指定了svn用户的访问控制文件存放位置

访问控制文件例子:[groups]
g_admin = dev_admin
g_dev_c = dev_c1,dev_c2
g_dev_php = dev_php

[/]             #根目录
@g_admin = rw   #只有@g_admin可以修改
* =r            #请他用户可读

[/admin]   #管理文件目录
@g_admin = rw    #只有@g_admin可读写
* =              #请他用户不可访问   

[/c_code] #c代码仓库
@g_dev_c = rw    #c开发者可读写
* =            #请他用户不可访问

[/php_code] #php组代码仓库
@g_dev_php = rw   #php开发组可以读写
* =               #请他组用户不可访问

[/docs]   #文档目录
@g_admin = rw   #管理组可读写
@g_dev_php = rw   #php开发组可读写
@g_dev_c = rw   #c开发组可读写
* =               #其他组用户不可访问



4.添加ssl支持

修改 /etc/apache2/sites-enabled/ssl #如果没有可以拷贝 /etc/apache2/sites-available/ssl

NameVirtualHost *:443
<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        SSLEngine On
        SSLCertificateFile /etc/apache2/ssl/apache.pem
        DocumentRoot /home/www/html
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /home/www/html/site/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                #AuthType Basic
                #AuthName "Restricted Files"
                #AuthUserFile /etc/apache2/passwd
                #Require user soap
                # Uncomment this directive is you want to see apache2's
                # default start page (in /apache2-default) when you go to /
                #RedirectMatch ^/$ /apache2-default/
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined
        ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>




附:
如何导出subversion仓库
如何导入subversion仓库
原创粉丝点击