首页 文章

如何在GNU / Linux上设置Subversion(SVN)服务器 - Ubuntu [关闭]

提问于
浏览
95

我有一台运行Ubuntu的笔记本电脑,我想充当Subversion服务器 . 两者都是为了我自己承诺在本地,而对于其他人远程 . 这项工作需要哪些步骤?请包括以下步骤:

  • 获取并配置Apache和必要的模块(我知道有其他方法可以创建SVN服务器,但我希望它特定于Apache)

  • 配置访问服务器的安全方式(SSH / HTTPS)

  • 配置一组授权用户(如同,他们必须授权提交,但可以自由浏览)

  • 使用初始提交验证设置("Hello world" of of sort)

这些步骤可能涉及命令行或GUI应用程序指令的任何混合 . 如果可以,请注意特定分发或版本的说明,以及用户可以选择使用特定工具的位置(例如,nano而不是vi) .

6 回答

  • 143

    我采取的步骤使我的笔记本电脑成为Subversion服务器 . 信用证必须转至AlephZarro作为他的指示here . 我现在有一个工作的SVN服务器(目前只在本地测试) .

    具体设置:Kubuntu 8.04 Hardy Heron

    遵循本指南的要求:

    • apt-get包管理器程序

    • 文本编辑器(我用kate)

    • sudo访问权限

    1:安装Apache HTTP服务器和所需模块:

    sudo apt-get install libapache2-svn apache2
    

    将安装以下额外包:

    apache2-mpm-worker apache2-utils apache2.2-common
    

    2:启用SSL

    sudo a2enmod ssl
    sudo kate /etc/apache2/ports.conf
    

    添加或检查文件中是否包含以下内容:

    <IfModule mod_ssl.c>
        Listen 443
    </IfModule>
    

    3:生成SSL证书:

    sudo apt-get install ssl-cert
    sudo mkdir /etc/apache2/ssl
    sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
    

    4:创建虚拟主机

    sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/svnserver
    sudo kate /etc/apache2/sites-available/svnserver
    

    更改(在ports.conf中):

    "NameVirtualHost *" to "NameVirtualHost *:443"
    

    和(在svnserver中)

    <VirtualHost *> to <VirtualHost *:443>
    

    在ServerAdmin下添加(也在文件svnserver中):

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.pem
    SSLProtocol all
    SSLCipherSuite HIGH:MEDIUM
    

    5:启用站点:

    sudo a2ensite svnserver
    sudo /etc/init.d/apache2 restart
    

    克服警告:

    sudo kate /etc/apache2/apache2.conf
    

    加:

    "ServerName $your_server_name"
    

    6:添加存储库:以下设置假定我们要托管多个存储库 . 运行此命令以创建第一个存储库:

    sudo mkdir /var/svn
    
    REPOS=myFirstRepo
    sudo svnadmin create /var/svn/$REPOS
    sudo chown -R www-data:www-data /var/svn/$REPOS
    sudo chmod -R g+ws /var/svn/$REPOS
    

    6.A中对于更多存储库:再次执行步骤6(更改REPOS的值),跳过步骤 mkdir /var/svn

    7:添加经过身份验证的用户

    sudo htpasswd -c -m /etc/apache2/dav_svn.passwd $user_name
    

    8:启用和配置WebDAV和SVN:

    sudo kate /etc/apache2/mods-available/dav_svn.conf
    

    添加或取消注释:

    <Location /svn>
    DAV svn
    
    # for multiple repositories - see comments in file
    SVNParentPath /var/svn
    
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /etc/apache2/dav_svn.passwd
    Require valid-user
    SSLRequireSSL
    </Location>
    

    9:重启apache服务器:

    sudo /etc/init.d/apache2 restart
    

    10:验证:

    解雇浏览器:

    http://localhost/svn/$REPOS
    https://localhost/svn/$REPOS
    

    两者都需要用户名和密码 . 我认为没有注释:

    <LimitExcept GET PROPFIND OPTIONS REPORT>
    
    </LimitExcept>
    

    /etc/apache2/mods-available/dav_svn.conf ,将允许匿名浏览 .

    浏览器显示“修订版0:/”

    承诺:

    svn import --username $user_name anyfile.txt https://localhost/svn/$REPOS/anyfile.txt -m “Testing”
    

    接受证书并输入密码 . 看看你刚刚提交的内容:

    svn co --username $user_name https://localhost/svn/$REPOS
    

    按照这些步骤(假设我没有进行任何错误复制/粘贴),我的笔记本电脑上有一个可用的SVN存储库 .

  • 1

    之后,我需要执行(在上面引用的示例的上下文中)

    $ sudo chmod g w /var/svn/$REPOS/db/rep-cache.db

    $ sudo chown www-data:www-data /var/svn/$REPOS/db/rep-cache.db

    否则我在进行本地修改时会收到409错误(尽管承诺是服务器端有效的,我需要跟进本地更新)

  • 2

    This article似乎给出了整个过程的一个很好的概述 . 我建议按照说明进行操作,然后发布一些关于您遇到的任何问题的更具体的问题,这些问题在我和其他人在这些回复中链接的文章中没有涉及 .

  • 1

    如果在访问Web服务器时遇到403禁用,可能是因为您使用的主机名不是您在配置文件中指定的主机名(即localhost或127.0.0.1) . 尝试点击https://whateveryousetasyourhostname而不是......

  • -2

    请在终端上写一个命令 .

    要打开终端,请按Ctrl Alt T,然后键入以下命令:

    $sudo apt-get install subversion
    
  • -2

    对于Apache:

    sudo apt-get -yq install apache2
    

    对于SSH:

    sudo apt-get -yq install openssh-server
    

    对于Subversion:

    sudo apt-get -yq install subversion subversion-tools
    

    如果您愿意,可以将这些组合成一个命令,如:

    sudo apt-get -yq install apache2 openssh-server subversion subversion-tools
    

    我无法帮助其余的......

相关问题