apache+svn安装配置

九月 2nd, 2010 Posted in SVN | 阅读次数: 506 次

Author:gaojinbo
Time:2010-8-30

优点:
可以通过apache记录svn操作相关日志

 

环境:
ubuntu 10.04.1 lts 64bit

apache2.2

 

1.安装相关包
apt-get install apache2 libapache2-svn subversion cronolog

 

 

2.建立一个svn库
mkdir -p /www/svn/
svnadmin create /www/svn/web

 

 

3.配置apache
vi /etc/apache2/sites-enabled/000-default
<VirtualHost *:8080>
        ServerAdmin admin@gaojinbo.com

<Location /svn>
  DAV svn
  SVNPath /www/svn/web
  AuthType Basic
  AuthName "svn repos"
  AuthUserFile /www/svn/web/conf/passwd
  AuthzSVNAccessFile /www/svn/web/conf/authz
  Satisfy Any
  Require valid-user
</Location>

        ErrorLog /www/var/log/apache2/error.log

        CustomLog "|/usr/sbin/cronolog /www/var/log/apache2/%Y_%m_%d.access.log" combined
</VirtualHost>

#上面日志使用cronolog进行分割,每天1个,svn相关操作会记录到日志文件,apache默认使用www-data运行

 

 

4.删除默认的dav_svn.conf
/etc/apache2/mods-available/dav_svn.conf
/etc/apache2/mods-enabled/dav_svn.conf

 

 

5.添加用户
htpasswd -c /www/svn/web/conf/passwd gaojinbo
根据提示输入2次密码

添加多个用户,这时不需要-c选项
htpasswd  /www/svn/web/conf/passwd hugwww
根据提示输入2次密码

 

 

6.目录权限控制
vi /www/svn/web/conf/authz
[groups]
admin = gaojinbo
php = hugwww,gaojinbo
design = gaojinbo

[/]
@admin = rw
* =

#####www.gaojinbo.com start##########

[/www.gaojinbo.com/web]
@php = rw
* =

[/www.gaojinbo.com/design]
@php = rw
@design = rw
* =

#####www.gaojinbo.com end ###########

 

 

7.重启apache
/etc/init.d/apache2 restart

 

 

8.svn与web自动同步配置
web根目录/opt/gaojinbo.com
svn co http://ip:8080/svn/gaojinbo.com  /opt/gaojinbo.com –username=gaojinbo –password=gaojinbo
chown -R www-data:www-data /opt/gaojinbo.com

vi /www/svn/web/hooks/post-commit
#!/bin/sh

export LANG=en_US.UTF-8
SVN=/usr/bin/svn
WEB=/opt/gaojinbo.com/

sudo $SVN update $WEB –username gaojinbo –password gaojinbo
sudo chown -R www-data:www-data $WEB

增加执行权限
chmod +x /www/svn/web/hooks/post-commit

增加sudo权限,不需要输入密码
vi /etc/sudoers
%www-data ALL=(ALL) NOPASSWD: /usr/bin/svn
%www-data ALL=(ALL) NOPASSWD: /bin/chown

 

 

9.使用svn
svn checkout地址  http://ip:8080/svn/
根据提示输入管理账号gaojinbo和相应的密码

 

执行其他操作。。。

 

完成!

相关日志:

Tags: ,

15 Responses to “apache+svn安装配置”

  1. OSMSG Says:

    好东西阿 我试试 嘿嘿


  2. 宁怡 Says:

    我就看看,感觉有点复杂~~


  3. gaojinbo Says:

    实用就好,根据文档,配置起来很简单的。。

    刚回访了 宁怡 博客,很漂亮!


  4. 视频看房武房网 Says:

    支持啊,这么好的文章要顶起!!! 欢迎回访


  5. 视频看房武房网 Says:

    你好,博主我的站 武房网 申请文字友情链接( 内页)不知可否?
    文章确实非常不错!我有必要支持一下!


  6. wensheng Says:

    如何限制SVN用户只对某个目录可写,对其他目录只读;匿名用户对所有目录都只有只读权限。


  7. 邦道之家 Says:

    狂奔而来!想多学习!我只看,我不说话!


  8. gaojinbo Says:

    视频看房武房网 可以交换链接!

    关键字:
    高进波linux博客 http://www.gaojinbo.com

    你的链接已添加


  9. gaojinbo Says:

    wensheng 用户权限控制很简单,通过修改authz文件

    如:
    [/www.gaojinbo.com/web]
    @php = rw
    gaojinbo = rw
    * = r

    上面允许php组和用户gaojinbo可以读写web,其他用户只读


  10. wensheng Says:

    我一直在做这个东东,这样子并不能满足我的需求,
    我的是网站注册的用户,审核通过后用户名与密码添加到passwd文件中,可是我没有实现脚本将这个用户添加到相应的群组中,我以为只要配置一下就可以实现passwd文件中的用户只对某个目录有写权限


  11. wensheng Says:

    我的意思是:除了您上面的配置外,我还应该将网站注册后的用户gaojinbo增加到@php组里面


  12. wensheng Says:

    #!/bin/sh

    REPOS=”$1″
    REV=”$2″
    export LANG=”en_US.UTF-8″
    #update
    cd /opt/htdocs/wpsplugin
    svn update –username weiwensheng –password 0101856 2>/dev/null

    #increment backup
    DIR=”/tmp/svn_backups”
    svnadmin dump $REPOS –incremental –revision $REV > $DIR/increv$REV 2>/dev/null

    #mail notify
    mailto=”shenggxhz@gmail.com”
    mailfrom=”weiwensheng@kingsoft.com”
    subject_prefix=”http://www.uofsdk.org
    /opt/svn/commit-email.pl $REPOS $REV –from $mailfrom -s $subject_prefix $mailto 2>/dev/null

    #log-commit.py –repository “$REPOS” –revision “$REV”
    # Hit CodeReview

    看我的shell,可是我的增量备份有问题,/tmp/svn_backups/increv
    而不是如:/tmp/svn_backups/increv2,说明备份不成功,邮件通知也发送不出去…有解决否?


  13. admin Says:

    你的shell脚本可以中适当的地方用echo输出变量,一步一步进行测试,看看是哪里问题,这样即可解决。


  14. Linux/ubuntu下apache+svn安装配置 | 第一整站站 Says:

    [...] Author:gaojinbo Time:2010-8-30 优点: 可以通过apache记录svn操作相关日志 环境: ubuntu 10.04.1 lts 64bit apache2.2 1.安装相关包 apt-get install apache2 libapache2-svn subversion cronolog 2.建立一个svn库 mkdir -p /www/svn/ svnadmin create /www/svn/web 3.配置apache vi /etc/apache2/sites-enabled/000-default <VirtualHost *:8080>         ServerAdmin admin@gaojinbo.com <Location /svn>   DAV svn   SVNPath /www/svn/web   AuthType Basic   AuthName "svn repos"   AuthUserFile /www/svn/web/conf/passwd   AuthzSVNAccessFile /www/svn/web/conf/authz   Satisfy Any   Require valid-user </Location>         ErrorLog /www/var/log/apache2/error.log         CustomLog "|/usr/sbin/cronolog /www/var/log/apache2/%Y_%m_%d.access.log" combined </VirtualHost> [...]


  15. http://www.concealeranswers.info/1447/how-much-makeup-should-a-teenager-put-on.htm/ Says:

    You should check this out……

    [...] Wonderful story, reckoned we could combine a few unrelated data, nevertheless really worth taking a look, whoa did one learn about Mid East has got more problerms as well [...]………


留下您的脚印