apache+svn安装配置
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和相应的密码
执行其他操作。。。
完成!
九月 2nd, 2010 at 12:37
好东西阿 我试试 嘿嘿
九月 2nd, 2010 at 16:51
我就看看,感觉有点复杂~~
九月 2nd, 2010 at 16:58
实用就好,根据文档,配置起来很简单的。。
刚回访了 宁怡 博客,很漂亮!
九月 2nd, 2010 at 18:10
支持啊,这么好的文章要顶起!!! 欢迎回访
九月 2nd, 2010 at 18:10
你好,博主我的站 武房网 申请文字友情链接( 内页)不知可否?
文章确实非常不错!我有必要支持一下!
九月 2nd, 2010 at 19:29
如何限制SVN用户只对某个目录可写,对其他目录只读;匿名用户对所有目录都只有只读权限。
九月 2nd, 2010 at 22:46
狂奔而来!想多学习!我只看,我不说话!
九月 3rd, 2010 at 08:49
视频看房武房网 可以交换链接!
关键字:
高进波linux博客 http://www.gaojinbo.com
你的链接已添加
九月 3rd, 2010 at 08:51
wensheng 用户权限控制很简单,通过修改authz文件
如:
[/www.gaojinbo.com/web]
@php = rw
gaojinbo = rw
* = r
上面允许php组和用户gaojinbo可以读写web,其他用户只读
九月 3rd, 2010 at 21:45
我一直在做这个东东,这样子并不能满足我的需求,
我的是网站注册的用户,审核通过后用户名与密码添加到passwd文件中,可是我没有实现脚本将这个用户添加到相应的群组中,我以为只要配置一下就可以实现passwd文件中的用户只对某个目录有写权限
九月 3rd, 2010 at 21:48
我的意思是:除了您上面的配置外,我还应该将网站注册后的用户gaojinbo增加到@php组里面
九月 3rd, 2010 at 21:55
#!/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,说明备份不成功,邮件通知也发送不出去…有解决否?
九月 5th, 2010 at 00:09
你的shell脚本可以中适当的地方用echo输出变量,一步一步进行测试,看看是哪里问题,这样即可解决。
五月 16th, 2011 at 11:21
[...] 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> [...]
八月 17th, 2011 at 14:11
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 [...]………