Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在GNU/Linux-Ubuntu上设置Subversion(SVN)服务器_Linux_Svn_Ubuntu_Debian - Fatal编程技术网

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

如何在GNU/Linux-Ubuntu上设置Subversion(SVN)服务器,linux,svn,ubuntu,debian,Linux,Svn,Ubuntu,Debian,我有一台运行Ubuntu的笔记本电脑,我想充当Subversion服务器。无论是对我自己在本地的承诺,还是对其他人的远程承诺。要使其正常工作,需要采取哪些步骤?请包括以下步骤: 获取并配置Apache以及必要的模块(我知道有其他方法可以创建SVN服务器,但我希望它是特定于Apache的) 配置访问服务器的安全方式(SSH/HTTPS) 配置一组授权用户(如中所示,他们必须获得提交授权,但可以自由浏览) 通过初始提交(类似于“Hello world”)验证设置 这些步骤可能涉及命令行或GUI应

我有一台运行Ubuntu的笔记本电脑,我想充当Subversion服务器。无论是对我自己在本地的承诺,还是对其他人的远程承诺。要使其正常工作,需要采取哪些步骤?请包括以下步骤:

  • 获取并配置Apache以及必要的模块(我知道有其他方法可以创建SVN服务器,但我希望它是特定于Apache的)
  • 配置访问服务器的安全方式(SSH/HTTPS)
  • 配置一组授权用户(如中所示,他们必须获得提交授权,但可以自由浏览)
  • 通过初始提交(类似于“Hello world”)验证设置
这些步骤可能涉及命令行或GUI应用程序指令的任意混合。如果可以,请注意特定发行版或版本的说明,以及用户对特定工具的选择可以替代(例如,替代)。

对于Apache:

sudo apt-get -yq install apache2
对于SSH:

sudo apt-get -yq install openssh-server
对于颠覆:

sudo apt-get -yq install subversion subversion-tools
如果愿意,可以将这些命令组合为一个命令,如:

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

剩下的我帮不上忙了……

我已经采取了一些步骤,让我的笔记本电脑成为Subversion服务器。他的指示值得称赞。我现在有一个工作的SVN服务器(目前只在本地测试过)

具体设置: Kubuntu 8.04哈代苍鹭

遵循本指南的要求:

  • 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>
4:创建虚拟主机

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/svnserver
sudo kate /etc/apache2/sites-available/svnserver
更改(在ports.conf中):

和(在SVN服务器中)

5:启用站点:

sudo a2ensite svnserver
sudo /etc/init.d/apache2 restart
要克服警告:

sudo kate /etc/apache2/apache2.conf
加:

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>
10:验证:

启动浏览器:

http://localhost/svn/$REPOS
https://localhost/svn/$REPOS
两者都需要用户名和密码。我认为不加注释:

<LimitExcept GET PROPFIND OPTIONS REPORT>

</LimitExcept>
接受证书并输入密码。 查看您刚刚承诺的内容:

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

按照这些步骤(假设我没有在复制/粘贴时出错),我的笔记本电脑上有一个正常工作的SVN存储库。

如果在访问Web服务器时禁用403,可能是因为您使用的主机名与配置文件(即localhost或127.0.0.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错误
(虽然承诺在服务器端有效,但我需要跟进本地更新)

请在终端上编写一个命令

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

$sudo apt-get install subversion

指示在Jaunty身上也非常有效。谢谢似乎工作得很好,但我在尝试访问它时得到了403禁止,并且没有提示输入密码。有什么可能出错的提示吗?@korona:以什么方式访问它:运行SVN命令或浏览它?
“NameVirtualHost*”到“NameVirtualHost*:443”
在ports.conf中,而
在svnserver设置中。应该提到这一点。我很困惑,因为我在svn服务器设置中搜索了NameVirtualHost,但没有找到它。在Debian Stretch中,似乎需要安装
libapache2 mod svn
,而不是
libapache2 svn
(因为后者不再可用)。另一个403原因:将svn路径设置为符号链接。如果你的svn路径是一个符号链接,你必须允许以下符号链接。我可以在Ubuntu上使用Subversion服务器,在任何平台上使用客户端吗?像是windows上的Tortoise SVN客户端?
<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>
sudo /etc/init.d/apache2 restart
http://localhost/svn/$REPOS
https://localhost/svn/$REPOS
<LimitExcept GET PROPFIND OPTIONS REPORT>

</LimitExcept>
svn import --username $user_name anyfile.txt https://localhost/svn/$REPOS/anyfile.txt -m “Testing”
svn co --username $user_name https://localhost/svn/$REPOS
$sudo apt-get install subversion