zoukankan      html  css  js  c++  java
  • Ubuntu16.04下安装httpd+svn+viewVC

    一、安装httpd

    1、下载httpd

    网址:http://httpd.apache.org/download.cgi#apache24

    下载这一条---Source: httpd-2.4.39.tar.gz [ PGP ] [ SHA256 ]

    解压成httpd-2.4.39文件夹

    2、下载apr和apr-util

    网址:http://apr.apache.org/download.cgi

    下载这两条---

    (1)将解压的apr-1.7.0文件夹和apr-util-1.6.1文件夹改名成apr和apr-util后copy到httpd的srclib目录下

    3、下载pcre

    网址:https://ftp.pcre.org/pub/pcre/ 

    下载这一条---pcre-8.43.tar.gz 23-Feb-2019 16:46 2M

    (1)安装pcre

    cd /etc/httpd/pcre-8.43
    sudo ./configure
    sudo make 
    sudo make install

    4、安装httpd

    sudo ./configure --with-pcre=/usr/local/pcre --with-included-apr -enable-dav -enable-so -enable-maintainer-mode -enable-rewrite

    ** –enable-dav 启用davweb支持,是subversion+apache组合必选,缺少的话,在运行apache会出现undefined symbol: dav_register_provider的错误

    sudo make

    sudo make install

    就将httpd安装完成了

    ps:sudo make 这一步报了个fatal error: expat.h: No such file or directory 错误

      解决办法:安装expat库

        命令:sudo apt-get install libexpat-dev

    5、启动httpd

    cd /usr/local/apache2/bin

    sudo ./apachectl -k start   #启动

    sudo ./apachectl -k stop   #停止

    sudo ./apachectl -k restart   #重启

     ps:再启动httpd的时候报了个找不到 /usr/home/httpd/conf/httpd.conf这个配置文件的错误

      原因:是因为我们安装的httpd路径是/usr/local/apache2/

      解决办法:sudo ./apachectl -f /usr/home/apache2/conf/httpd.conf -k start   #启动

    二、安装svn

    1、安装apr

    把上面下载apr解压安装

    sudo ./configure

    sudo make

    sudo make install

    ps:报了个小错误:rm: cannot remove 'libtoolT': No such file or directory

      解决办法:找到apr-1.7.0下的configure文件,用gedit打开他,找到RM='$RM'这一句修改为RM='$RM -f'

    2、安装apr-util

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

    sudo make

    sudo make install

    3、下载subversion

    网址:http://subversion.apache.org/download.cgi#supported-releases

     解压

    cd ./subversion-1.10.4

    # sudo ./configure --with-included-apr

    #sudo ./configure --with-lz4=internal --with-utf8proc=internal --with-apr=/usr/local/apr --with-apr-#util=/usr/local/apr-util/

    sudo ./configure --with-lz4=internal --with-utf8proc=internal --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util LDFLAGS="-L/usr/lib64 -L/lib64"

    sudo make

    sudo make install

    ps:

    (1)报了个小错误:

    An appropriate version of sqlite could not be found. We recommmend
    3.8.11.1, but require at least 3.8.2.
    Please either install a newer sqlite on this system

    or

    get the sqlite 3.8.11.1 amalgamation from:
    https://www.sqlite.org/2015/sqlite-amalgamation-3081101.zip
    unpack the archive using unzip and rename the resulting
    directory to:
    /home/xyp/Downloads/subversion-1.10.4/sqlite-amalgamation

    configure: error: Subversion requires SQLite

    解决办法:

    (1)wget https://www.sqlite.org/2015/sqlite-amalgamation-3081101.zip

    (2)将解压的sqlite-amalgamation-3081101文件夹中的sqlite3.c复制到/home/xyp/Downloads/subversion-1.10.4/sqlite-amalgamation路径中,没有sqlite-amalgamation这个文件夹就自己创建

    (2)又报了个小错误

    configure: error: subversion requires zlib

    解决办法:去http://zlib.net/下载最新版的zlib,点击US (zlib.net) (GPG signature)

        sudo ./configure

        sudo make

        sudo make install

    (3)又又报了个小错误

    错误1:configure: error: Subversion requires LZ4 >= r129, or use --with-lz4=internal
    解决:./configure命令添加 --with-lz4=internal选项

    错误2:configure: error: Subversion requires UTF8PROC
    解决:./configure命令添加  --with-utf8proc=internal

    (4)又又又报了个小错误

    configure: error: failed to recognize APR_INT64_T_FMT on this platform

    原因:找了下相关资料,据说是没装apr和apr-util,mmp,狗日的,我才装了好不好,神奇的Linux,每次装环境都是不同的错误

    解决办法:没办法,试了很多种网上说版本,都不行,只能暴力破解了

    用gedit打开configure

    把下面这三句话注释了,就可以继续./configure操作了

    # if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
    # as_fn_error $? "failed to recognize APR_INT64_T_FMT on this platform" "$LINENO" 5
    # fi

     (5)在sudo make 的时候又出错了

    subversion/libsvn_subr/sqlite.c:57:26: fatal error: sqlite3ext.h: No such file or directory
    compilation terminated.
    Makefile:789: recipe for target 'subversion/libsvn_subr/sqlite.lo' failed
    make: *** [subversion/libsvn_subr/sqlite.lo] Error 1

    原因:之前放了的,但是据说是版本太低了

    解决办法:去官网https://www.sqlite.org/download.html下载一个最新的,我下的是下面这个

    sqlite-amalgamation-3280000.zip
    (2.21 MiB)

    再将解压的替换之前sqlite-amalgamation中的那个sqlite3.c,我是直接把解压的文件中的全部复制过去了

    (6)再sudo make 和sudo make install,感动,终于没报错了

    #svnserve --version 回车显示版本说明安装成功

    3、配置版本库

    #mkdir /var/svn 创建svn数据目录 
    #svnadmin create /var/svn/repository ,就是版本库的名字,可以改变! 
    ·修改版本库配置,回车后会在库目录下生成配置文件 
    #vim /var/svn/repository/conf/svnserve.conf 主配文件 
    
    [general] 
    anon-access = none 
    auth-access = write 
    password-db = passwd 
    authz-db = authz 
    
    #vim /var/svn/repository/conf/passwd 用户配置文件 
    
    [users] 
    user1 = password1 
    user2 = password2
    
    #vim /var/svn/repository/conf/authz 权限配置文件 
    
    [groups] 设置组 
    group1 = user1 
    [/] 根目录权限设置
    user1 = rw 用户1权限是:可读写 
    user2 = r 用户2权限是:可读,不可写 
    @group1 = rw 设置组权限 
    [zzc:/123] 设置根目录下"123"文件夹的权限 
    
    启动svn服务器 
    #svnserve -d -r /var/svn 
    -d表示以daemon方式(后台运行)运行 
    -r /var/svn指定根目录是/var/svn 
    
    #ps aux | grep svnserve 查看服务,端口:3690 
    
    客户端使用的软件是TortoiseSVN 
    浏览方法: 
    打开版本库浏览器输入:svn://ip-addr/repository

    apache中的subversion配置:

    
    

    编辑 vi /usr/local/apache/conf/httpd.conf

    
    

    添加:
    LoadModule dav_svn_module modules/mod_dav_svn.so

    在/usr/local/libexec/下找到mod_authz_svn.so将它复制到apache2/modules

    注意,如果mod_dav是作为共享对象编译(而不是静态链接到httpd程序),你需要为它使用使用LoadModule语句,一定确定它在mod_dav_svn之前,即:
    LoadModule dav_module modules/mod_dav.so
    LoadModule dav_svn_module modules/mod_dav_svn.so

    LoadModule authz_svn_module modules/mod_authz_svn.so

    最后添加目录映射
    <Location /svn>
    DAV svn
    SVNPath /var/svn/repository
    </Location>

    
    

    访问http://ip/svn 即能看到svn的内容

    
    

    添加访问权限, 将Location改为:
    <Location /svn>
    DAV svn
    SVNPath /var/svn/repository
    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile /var/svn/svn-passwd
    Require valid-user
    </Location>

    
    

    接下来,您需要创建 /etc/subversion/passwd 文件,该文件包含了用户授权的详细信息。要添加用户,您可以执行下面的命令:

    sudo htpasswd -cm /var/svn/svn-passwd xieyuanpeng

    报了个小错误:

    The program 'htpasswd' is currently not installed. You can install it by typing:
    sudo apt install apache2-utils

    解决办法:

    sudo apt install apache2-utils

    
    

    它会提示您输入密码,当您输入了密码,该用户就建立了。"-c"选项表示创建新的/etc/subversion/passwd文件,所以user_name所指的用户将是文件中唯一的用户。如果要添加其他用户,则去掉"-c"选项即可:
    htpasswd /etc/subversion/passwd other_user_name

    
    

    重启apache
    访问http://ip/svn 输入用户名密码 登陆即可

    
    

    详细的设置可参考:http://www.blogjava.net/yongbing/archive/2007/03/06/102276.html

    三、安装viewVC

     1、下载viewVC

      网址:http://www.viewvc.org/downloads/

    我下载的是这个 e4a84fef6d7fb0414c27faed4ff24c1e viewvc-1.1.26.tar.gz

    2、安装

    ./viewvc-install 

    viewvc配置:

    vi /usr/local/viewvc/viewvc.conf

    修改如下:

    [general]
    #cvs_roots = cvs: /home/cvsroot
    svn_roots = repository: /var/svn/repository
    root_parents = /var/svn : svn
    default_root = svn

    Apache中ViewVC配置,

    cp /usr/local/viewvc/bin/cgi/viewvc.cgi /usr/local/apache/cgi-bin/viewvc.cgi

    在 /usr/local/apache/conf/httpd.conf 最后添加:

    ScriptAlias /viewvc /usr/local/apache2/cgi-bin/viewvc.cgi
    <Location /viewvc>
    AuthUserFile /var/svn/svn-passwd
    AuthName "ViewVC Client Access"
    AuthType Basic
    require valid-user
    </Location>

    重启apache
    访问http://ip/viewvc 输入用户名密码 登陆即可

    错误提示:
    An Exception Has Occurred
    Python Traceback

    Traceback (most recent call last):
    File "/var/lib/python-support/python2.4/viewcvs.py", line 3235, in main
    request.run_viewcvs()
    File "/var/lib/python-support/python2.4/viewcvs.py", line 268, in run_viewcvs
    import vclib.svn
    File "/var/lib/python-support/python2.4/vclib/svn/__init__.py", line 27, in ?
    from svn import fs, repos, core, delta
    ImportError: No module named svn

    错误原因是python中没有subversion模块造成的 检查/usr/local/lib/svn-python是否安装 否则重新编译subversion
    如已安装

    pip install svn

    echo /usr/local/lib/svn-python > /usr/local/lib/python2.7/site-packages/subversion.pth

    并  cp /usr/local/lib/libsvn* /usr/lib/

    重启apache
    访问http://ip/viewvc 输入用户名密码 登陆即可

    branches&tags&trunk模式下建svn库

    mkdir -p /tmp/svn-structure-template/{trunk,branches,tags}

    svn import -m "Initial repository" /tmp/svn-structure-template file:///var/www/linuxidcsvn/repo/
    Adding /tmp/svn-structure-template/branches
    Adding /tmp/svn-structure-template/tags
    Adding /tmp/svn-structure-template/trunk

    五、后话

    搞了两天,终于搞好了

  • 相关阅读:
    IDEA常用快捷指令整理
    Python dict 字典
    内联函数
    【MFC】编辑框 CEdit Ctrl控件自动换行设置
    mysql 多sql文件恢复方案
    Linux: 用64位的系统,能编译32位的程序吗?
    C++ 遍历数组
    工业现场传感器传感器为什么采用电流形式输出?
    【转】电磁阀、电磁铁的工作原理说明
    PCB板强弱电隔离距离不够导致损坏和问题检查记录
  • 原文地址:https://www.cnblogs.com/xypbk/p/10811447.html
Copyright © 2011-2022 走看看