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小结