zoukankan      html  css  js  c++  java
  • Centos7下安装iF.svnadmin实现web方式管理svn(源码安装)

      iF.SVNAdmin 是一个基于 Web 的,用来管理 Subversion 的认证文件的项目。无需数据库支持,直接对 Subversion 的认证文件和用户认证文件进行设置,支持 LDAP,同时也可以用来创建和删除版本库,以及对版本库进行浏览。

      说来惭愧,用了将近半个月时间才完成整个安装过程。想想可能是对linux不熟悉,源码编译安装需要的依赖包太多,网上的教程也不靠谱,再加上这个不友好的黑白命令行界面,着实很让人头大。其实一开始准备用submin的,但是安装完后新建仓库报的一个错误拖了好几天实在解决不了,只能换用iFSVNAdmin。报错如下,希望有大神可以给出解决方法。

     

    以下是正文


    环境:  Centos 7 x64

    用到的包:apr-1.4.6.tar.gz

         apr-util-1.5.1.tar.gz

         pcre-8.37.tar.bz2

         httpd-2.2.31.tar.bz2

         libxml2-2.9.1.tar.gz

         openssl-1.0.0e.tar.gz

         php-5.3.8.tar.gz

         sqlite-autoconf-3130000.tar.gz

         subversion-1.8.1.tar.gz

         svnadmin-1.6.2.zip

         zlib-1.2.8.tar.gz

    本例所有tar包都放在/usr/local/src/下,安装目录为/usr/local/

    一、创建svn组和用户

    adduser svn

    passwd svn

    切换到root用户,在/etc/sudoers文件中找到root  ALL=(ALL) ALL,在该行下添加提升权限的用户信息,如:

    root    ALL=(ALL)       ALL
    svn    ALL=(ALL)       ALL

    强制保存退出

    二、安装apache及其依赖包

    1.安装 apr

    sudo tar zxvf apr-1.4.6.tar.gz

    cd apr-1.4.6

    sudo ./configure --prefix=/usr/local/apr

    sudo make

    sudo make install

     

    2.安装 apr-util
    sudo tar zxvf  apr-util-1.5.1.tar.gz

    cd cd apr-util-1.5.1/
    sudo ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

    sudo make

    sudo make install

     

    3.安装 sqlite

    sudo tar zxvf sqlite-autoconf-3130000.tar.gz

    cd sqlite-autoconf-3130000.tar.gz

    sudo ./configure --prefix=/usr/local/sqlite

    sudo make

    sudo make install

     

    4.安装 zlib

    sudo tar zxvf zlib-1.2.8.tar.gz

    cd zlib-1.2.8.tar.gz

    sudo ./configure --prefix=/usr/local/zlib

    sudo make

    sudo make install

     

    5.安装 prce

    sudo tar jxvf pcre-8.37.tar.bz2

    cd pcre-8.37/

    sudo ./configure --prefix=/usr/local/pcre 

    sudo make

    sudo make install

    6.安装openssl

    sudo tar zxvf openssl-1.0.0e.tar.gz

    cd openssl-1.0.0e/

    sudo ./config --prefix=/usr/local/ssl shared

    sudo make depend

    sudo make install

    7.安装apache

    sudo tar jxvf  httpd-2.2.31.tar.bz2

    cd httpd-2.2.31

    sudo ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config --with-pcre=/usr/local/pcre --with-zlib=/usr/local/zlib --with-ssl=/usr/local/ssl --enable-log-config --enable-log-forensic --enable-logio --enable-env --enable-mime-magic --enable-expires --enable-headers --enable-setenvif --enable-proxy --enable-proxy-http --enable-http --enable-mime --enable-status --enable-autoindex --enable-info --enable-cgi --enable-dir --enable-actions --enable-rewrite --enable-so --enable-module=so --enable-http --enable-dav --enable-maintainer-mode --enable-mods-shared=ALL --enable-ssl

    sudo make

    sudo make install

    三、修改配置文件
    1.
    修改配置文件

    sudo vi conf/httpd.conf 
    添加一行 ServerName 192.168.91.128:80(本机ip)

    2.启动
    sudo /usr/local/apache2/bin/apachectl start

    在浏览器中输入localhost,出现it works说明安装成功。

    可能出现的问题:

     

    解决方法:

    sudo ln -sf /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.1.0.0

    sudo ln -sf /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.1.0.0

    四、在apache中配置SVN

    1.安装subversion

    sudo tar zxvf subversion-1.8.1.tar.gz

    cd subversion-1.8.1.tar.gz

    sudo ./configure --prefix=/usr/local/subversion --with-apr=/usr/local/apr/bin/apr-1-config --with-zlib=/usr/local/zlib --with-apr-util=/usr/local/apr-util/bin/apu-1-config --with-apxs=/usr/local/apache2/bin/apxs  --enable-shared --enable-maintainer-mode --enable-mod-activation --with-sqlite=/usr/local/sqlite

    sudo make

    sudo make install

    2.修改配置文件

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

    找到User、Group修改:

    User svn

    Group svn

    如果看到如下两行,说明安装是成功的

    定义apache访问svn:

     

    五、配置svn权限管理

    1、建立svn版本库目录
    sudo mkdir -p /data/svn/repos   #可以多建版本库目录

    2、建立svn版本库
    sudo svnadmin create /data/svn/repos

    3、建立本地访问控制文件,第一次创建加 -c 参数,就是第一次没有passwd.conf文件, "-c"参数不是创建passwd.conf文件
    sudo mkdir /home/svn/svnpasswd

    /usr/local/apache2/bin/htpasswd -c /home/svn/svnpasswd admin 然后输入密码即可,默认是MD5加密的
    /usr/local/apache2/bin/htpasswd /home/svn/svnpasswd svnusername 追加用户

    4、建立本地项目控制文件
    touch /home/svn/svnaccessfile

    本例svnaccessfile内容为:

    注意事项:顶格写,=号两边有空格

     

    六、测试连接

    1、启动apache
    sudo /usr/local/apache2/bin/apachectl start

    2、打开浏览器,输入localhost/svn

    出现版本库说明安装成功

     

    七、安装PHP及其依赖包

    1.安装libxml2

    sudo tar zxvf libxml2-2.9.1.tar.gz

    cd libxml2-2.9.1

    sudo ./configure –prefix=/usr/local/libxml2

    sudo make

    sudo make install

    可能出现的错误:

     

    解决方法:

    make clean && make dclean后重新编译

    可能出现的错误2:

     

    原因:缺少python-dev依赖包

    解决方法:

    sudo rpm -ivh python-devel-2.7.5-34.el7.x86_64.rpm

    2.安装php

    sudo tar zxvf php-5.3.8.tar.gz

    cd php-5.3.8/

    sudo ./configure  --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-libxml-dir= /usr/local/libxml2 sudo make

    sudo make test

    sudo make install

    sudo cp php.ini-development /etc/php.ini 

    可能遇到的问题:

    解决方法:

    把php-5.3.8.patch 放在src下

    cd php-5.3.8

    sudo patch -p0 -b <../php-5.3.8.patch

    sudo make

    sudo make install

     

    八、安装iFSVNAdmin

    sudo unzip svnadmin-1.6.2.zip -d /usr/local/svnadmin

    unzip svnadmin-1.6.2.zip 
    mv iF.SVNAdmin-1.6.2 svnadmin 
    cd svnadmin/include/ 
    vi config.inc.php 
    #找到下段代码,在下面添加一段代码 
    //define("IF_SVNBaseC_ConfigDir", "E:/Development/Test/temp svnadmin/svn-config-dir"); 
    define("IF_SVNBaseC_ConfigDir", "/blubb/edi/blubb");

    chown -R svn:svn svnadmin/ 

    修改httpd.conf

     

    重启apache

    sudo /usr/local/apache2/bin/apachectl restart

    访问 localhsot/svnadmin 出现 ifsvnadmin 说明安装成功

    默认用户名密码都是admin

    登录后如下,输入各个配置文件的路径后点击Test进行测试是否成功,全部成功后保存配置Save configration:

     

    登录后如下,可以看到软件版本信息、已有的仓库、用户、组、权限路径等:

    至此,整个安装就完成了!

  • 相关阅读:
    11月2日
    Rain和小爱的幸福山洞
    乍冷初寒
    支付宝接口源代码
    因没有设置文件夹权限导致的发布的页面不能在文本中写人数据
    asp.net真的是并行处理request的吗?
    Javascript学习笔记
    .net Windows服务程序和安装程序制作图解
    String.Trim()真相大揭秘
    c#基础知识总结学习
  • 原文地址:https://www.cnblogs.com/flandre/p/5765625.html
Copyright © 2011-2022 走看看