Linux下Apache+SVN搭建完美版

优点:
可以通过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 @www.linuxidc.com.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 linuxidc
根据提示输入2次密码
添加多个用户,这时不需要-c选项
htpasswd  /www/svn/web/conf/passwd hugwww
根据提示输入2次密码
6.目录权限控制
vi /www/svn/web/conf/authz

[groups]
admin = linuxidc
php = hugwww,linuxidc
design = linuxidc
[/]
@admin = rw
* =

##### start##########
[/www.linuxidc.com/web]
@php = rw
* =

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

##### end ###########

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

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

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

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

sudo $SVN update $WEB –username linuxidc –password linuxidc
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地址  :8080/svn/
根据提示输入管理账号linuxidc和相应的密码

执行其他操作。。。
完成!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wywgws.html