linux下SVN+apache搭建

回复 收藏
下载包
wget http://syslab.comsenz.com/downloads/linux/httpd-2.2.11.tar.gz
wget http://subversion.tigris.org/downloads/subversion-1.5.3.tar.gz

1. 编译apache
tar zxvf httpd-2.2.11.tar.gz
cd  httpd-2.2.11
./configure   --enable-dav --enable-dav-fs --enable-so   --enable-ssl --enable-maintainer-mode -prefix=/usr/local/apache2   --enable-mods-shared=all
make  && make install
问题: 在centos6系统中,如果增加了 --enable-ssl 会一直报错编译不成功,即使我们yum install  openssl-devl 也不行,这是因为centos6中yum安装的openssl版本和httpd-2.2.11所要求的版本不一致,解决办法:下载更新的httpd(2.4.6没有问题)或者源码编译安装openssl(0.9版本)


2. 编译subversion

tar zxvf  subversion-1.5.3.tar.gz
cd subversion-1.5.3
./configure --prefix=/usr/local/subverion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/src/httpd-2.2.11/srclib/apr/  --with-apr-util=/usr/local/src/httpd-2.2.11/srclib/apr-util --with-ssl
make && make install

3.  添加svn用户
useradd SVN

4. 创建仓库
/usr/local/subverion/bin/svnadmin create /home/SVN/lishiming

5. 测试svn
添加一个文件到仓库   /usr/local/subverion/bin/svn   import    /tmp/disk.txt     file:///home/SVN/lishiming/disk.txt  -m test
其中 命令格式为 svn  import  filename svn仓库路径 -m  说明
查看添加的文件信息  /usr/local/subverion/bin/svn list --verbose file:///home/SVN/lishiming/

6. 整合apache
vim /usr/local/apache2/conf/httpd.conf
在最后面加入

   DAV svn
   SVNPath /home/SVN/lishiming
   AuthzSVNAccessFile /home/SVN/lishiming/conf/authz.conf
   AuthType Basic
   AuthName "Subversion"
   AuthUserFile /home/SVN/authfile
   Require valid-user


另外需要修改一下
User  SVN
Group  SVN


7. 添加认证用户
/usr/local/apache2/bin/htpasswd -c /home/SVN/authfile svntest  

说明:第一次创建这个用户是需要加-c 选项,以后再次创建就不需要了,因为authfile 文件已经存在

8. 编辑用户权限
vim /home/SVN/lishiming/conf/authz.conf   内容如下:
[lishiming:/]
svntest = rw

9. 更改权限
chown -R SVN:SVN /home/SVN/

10. 重启apache
访问 10.0.2.111/lishiming/
2010-07-13 15:01 举报
已邀请:
0

阿铭 管理员

赞同来自:

SVN提交时强制添加注释
如果在linux环境中,则命名为pre-commit,并添加执行权限
——————————————————————————————————–
#!/bin/sh
REPOS=”$1″
TXN=”$2″
SVNLOOK=/opt/CollabNet_Subversion/bin/svnlook
LOGMSG=$($SVNLOOK log -t “$TXN” “$REPOS” | grep “[a-zA-Z0-9]” | wc -c)
if [ "$LOGMSG" -lt 10 ]; then
echo -e “\n Empty log message not allowed.Commit aborted!”1>&2
exit 1
fi
————————————————————————————————————
脚本命令解释
————————————————————————————————————
LOGMSG=$($SVNLOOK log -t “$TXN” “$REPOS” | grep “[a-zA-Z0-9]” | wc -c)
将提交的日志信息作为便来那个输入之后,将grep英文和数字的结果作为变量
if [ "$LOGMSG" -lt 10 ]; 传入变量来判断变量长度是否小于10
-eq 等于号  -gt 大于号   -lt小于号



echo 错误提示信息的时候必须重定向到 stderr ,即 1>&2
pre-commit 文件拷贝到 hooks 目录之后,需要 chmod 0755 pre-commit ,给 pre-commit 文件增加可执行权限(或者至少把文件owner改为 svn 服务运行用户并加上owner的x权限)
0

q524827699

赞同来自:

访问 10.0.2.111/lishiming/  老师 这个是本机的ip吗  我访问出错了 用本机ip也不行  防火墙都关闭了 ,apache和svn我用yum直接安装的 没有编译 最后访问出错了。修改User svn 和 Group svn 如何修改啊
0

凶狠

赞同来自:

svn加上apache和不加apache有什么区别吗?

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: