CentOS 6 用SVN自动提交文件到web服务器

关于 svn 的安装 参考:[转]Linux(centOS6.5)下SVN的安装、配置及开机启动

经过两天的各种尝试总算解决了,总结如下:

1、在建立库时注意 要让库的名称和 要同步的 web目录名称相同(避免麻烦)

2、在web 目录的上层目录首先 运行命令:

svn co(checkout) svn://127.0.0.1/website checkout 出文库 (我的svn和web在同一服务器)

3、进入 库目录 配置好 conf下的用户名和密码

4、进入 hook目录

vim post-commit

export LANG=en_US.UTF-8
REPOS="$1"
REV="$2"
SVN_PATH=/usr/bin
WEB_PATH=xx
SVN_USER=xx
SVN_PASS=xx
WEB_USER=xx
WEB_GROUP=xx
LOG_PATH=/var/log/svn/svn.log
echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH

cd $WEB_PATH
svn cleanup >> $LOG_PATH
svn update $WEB_PATH --username $SVN_USER --password $SVN_PASS
chown $WEB_USER.$WEB_GROUP -R $WEB_PATH >> $LOG_PATH

自动更新时会调用 post-commit 进行同步。

5、注意权限设置 为 chmod 77 post-commit 否则会出现权限问题。

由于开了 sftp SVN_USER=xx 和  WEB_USER=xx  均为 sftp用户
SVN_PASS=xx 密码是设置为  sftp用户密码,否则会无法自动同步。

6、如果修改了发布目录注意发布目录的http远程访问权限

参考:[转]SELinux管理与配置SElinux与http小结