subversion+apache搭建

内容综合:

http://lxsym.blog.51cto.com/1364623/739864

http://www.cnblogs.com/dengqiye/archive/2009/07/11/1521464.html

两篇文章而成,感谢两位作者辛勤付出!

 

SVN环境安装
源码下载
wget http://archive.apache.org/dist/httpd/httpd-2.2.19.tar.bz2
wget http://www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.bz2
wget http://subversion.tigris.org/downloads/subversion-1.6.17.tar.gz
 

把文件全部上传到SVN服务器的/tmp目录

1、安装apr

      bzip2 -d httpd-2.2.19.tar.bz2

      cd /tmp/httpd-2.2.19.tar.bz2/srclib/apr

      ./configure

      make

      make install

 

2、安装apr-util

      cd ../apr-util

      ./configure --with-apr=/usr/local/apr

      make

      make install

 

3、安装 apache

      cd ../..

      ./configure --prefix=/usr/local/apache2.2.9 --enable-dav --enable-so --enable-maintainer-mode --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config  #--prefix表示把apache安装在指定目录

      make

      make install

 

4、安装subversion

      tar zxvf  subversion-1.6.17.tar.gz

      bgzip2 subversion-deps-1.6.6.tar.bz2 -d

      tar xvf  subversion-deps-1.6.6.tar

      tar xvf sqlite-amalgamation-3.6.13.tar

#解决configure: maintainer-mode: adding GCC warning flags  ,configure: error: –with-zlib requires an argument.错误

       cd /tmp/subversion-1.6.6/zlib  

       ./configure --shared

       make

#解决configure: error: Subversion requires SQLite 错误

      cd /tmp/subversion-1.6.17

      mkdir sqlite-amalgamation/

      cd sqlite-amalgamation/

      cp /tmp/sqlite-3.6.13/sqlite3.c . 

      ./configure --prefix=/opt/svn --with-apxs=/usr/local/apache2.2.9/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr

#报如下BDB WARNING:忽略此警告

      make

      make install

      至此,安装基本完毕,再配置下就可以使用了

 

5. 配置subversion

    mkdir -p /data/svn

    创建文件
    touch svn-access-file 
    touch svn-auth-file

   修改环境变量PAHT:PATH=/usr/local/apache2.2.9/bin:/opt/svn/bin:$PATH:$HOME/bin, 确保程序路径准确
    cd /data/svn

    svnadmin create /data/svn/ydzs

    cd /usr/local/apache2.2.9/conf

 6、在apache中配置SVN

      vi /usr/local/apache2.2.9/conf/httpd.conf

     ① 如果你看到如下两句,说明安装是成功的

      LoadModule dav_svn_module     modules/mod_dav_svn.so
      LoadModule authz_svn_module   modules/mod_authz_svn.so

      如果有下面一句就用#注释掉

      #LoadModule foo_module modules/mod_foo.so

     
     ② 定义apache访问svn配置:
      <Location /svn>
              DAV  svn
      #      SVNPath /opt/svndata
              SVNParentPath /data/svn
              AuthzSVNAccessFile /data/svn/svn-access-file
              AuthType Basic
              AuthName "Subversion repository"
              AuthUserFile /data/svn/svn-auth-file
              Require valid-user
      </Location>

 

   7. 建立本地访问控制文件

    /usr/local/apache2.2.9/bin/htpasswd /data/svn/svn-access-file 用户名

然后输入密码即可,默认是MD5加密的

8. 建立本地项目控制文件

     [groups]
      #<groupname1>=<username1>,<username2>
      admin=username

      #[<versionLib>:projectName/directory]
      #@<groupsname>=<authorities>
      #<username>=<authorities>

      [/]
      @admin = rw      #指定用户组成员可以读写根目录所有应用

      [repos:/abc/aaa]
      username1= rw      #指定用户username1可以读写:/abc/aaa目录的文件

 

 

9、测试连接

     ① 启动apache

      /usr/local/apache2.2.9/bin/apachectl start

     ② 打开浏览器,输入http://192.168.1.107/svn/ydzs #本例服务器ip是192.168.1.107

      使用刚才创建的权限用户名与密码登录即可访问

      注意:在你上传文件的时候可能会有如下权限不足的提示

      Permission denied
      svn: Commit failed (details follow):
      svn: Can't create directory '/opt/svndata/repos/db/transactions/0-1.txn': Permission denied

      这是因为apache在线程用户没有权限访问svn的仓库,两者分别属于不同的用户者

      本例apache属于daemon拥有者,而svn仓库属于svn拥有者

      解决方法:

      chown -R daemon /opt/svndata/repos

      chmod -R 755 /opt/svndata/repos

   

       重启下apache:

       /usr/local/apache2.2.9/bin/apachectl stop

       /usr/local/apache2.2.9/bin/apachectl start

 


新增工程:

   vi /usr/local/apache2.2.9/conf/httpd.conf 

增加:

 <Location /svn_sh>
              DAV  svn
      #      SVNPath /opt/svndata
              SVNParentPath /data/svn/工程目录名 
              AuthzSVNAccessFile /data/svn/svn-access-file
              AuthType Basic
              AuthName "Subversion repository"
              AuthUserFile /data/svn/svn-auth-file
              Require valid-user
</Location>

 

svnadmin create /data/svn/工程目录名

chmod -R 777 /data/svn/工程目录名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值