在 Bluehost VPS 服务器上通过 Apache 配置 Subversion(SVN)存储库

在 Bluehost VPS 服务器上通过 Apache 配置 Subversion(SVN)存储库

我正在尝试在我们的 Bluehost VPS 服务器上配置 Subversion (SVN)CentOS v6.5到目前为止,按照本指南安装一切顺利 ->http://wiki.centos.org/HowTos/Subversion

然而现在我被困在了4.2 步骤[Subversion 的 Apache 配置]

好的,故事是这样的。

网络上大多数关于在 bluehost 上安装 Subversion (svn) 的指南都是针对共享服务器的,对于这些服务器,CentOS 官方 wiki 页面上的步骤如下颠覆(我们称之为A)不起作用,因此他们遵循这个指导(我们称之为)。

mod_dav_svn 模块允许 subverion 通过 Apache 提供服务,因为它的安装不允许在共享服务器上这就是我所学到的。因此许多人都相信指南,这可以通过在 ssh(svn+ssh)上建立 svn 连接来实现,但是我正在尝试弯曲勺子以查看是否可以通过 apache 建立 svn 连接。

跟随指南A

我有一个svn.domain.com指向/home/username/public_html/svn.domain.com/其中我已设置名为的存储库的URLrepos1

/etc/httpd/conf.d/subversion.conf并按照下列步骤设置 subversion.conf 文件

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

<Location /repos1>
        DAV svn
        SVNPath /home/username/public_html/svn.domain.com/repos1
        AuthType Basic
        AuthName "Subversion repos"
        AuthUserFile /etc/svn-auth-conf
        Require valid-user
</Location>

和开幕http://svn.domain.com/repos1它显示位于的目录的纯内容/home/username/public_html/svn.domain.com/repos1

我认为应该询问密码并显示修订版 0或者至少树干分支标签文件夹。

任何帮助或指导都将不胜感激。

  • 1:通过命令创建repos1文件夹svnadmin create repos1
  • 2:此设置在不同的服务器上为我们工作,但它们的空间非常有限。

答案1

尝试这个

<Location "/"> AuthType Basic AuthName "Subversion repos" AuthUserFile /etc/svn-auth-conf Require valid-user </Location> <Location /repos1> DAV svn SVNPath /home/username/public_html/svn.domain.com/repos1 </Location>

不要忘记重新加载 Apache。

答案2

在 BlueHost VPS 服务器(CentOS)上安装和配置 Subversion(SVN)

我的所有步骤都只是遵循这篇漂亮的维基文章http://wiki.centos.org/HowTos/Subversion。本文共有 8 个步骤,但对于在 BlueHost VPS 上安装,需要扩展步骤 3 和步骤 4.2

步骤3- 安装时yum install mod_dav_svn subversion会出现错误

Error: Missing Dependency: httpd-mmn = 20051115 is needed by package mod_dav_svn

要解决此问题,请执行以下步骤

[$] find / -name "yum.conf"                 --- Note the path
[$] vim /path/yum.conf                          --- Edit the file

httpd*从以下行中删除

exclude=apache* bind-chroot courier* dovecot* exim* filesystem httpd* mod_ssl* mydns* mysql* nsd* perl* php* proftpd* pure-ftpd* ruby* spamassassin* squirrelmail*

保存并退出文件:wq!

[$] yum install mod_dav_svn subversion      --- If Success, then you can revert back yum.conf file to its original.

步骤4- 在继续此步骤之前,请先创建一个域或子域(svn.domain.com),并将其分配给任何文件夹(大多数是 /home/username/public_html/svn.domain.com)

/home/username/public_html/svn.domain.com     --- will be main folder under which I will have many repositories (not just one, but many)

步骤 4.1- 跳过本文中的这一步,因为 BlueHost 会自行处理

步骤 4.2- 默认情况下,Subversion 将创建一个名为 .conf 文件,如下subversion.conf所示/etc/httpd/conf.d/subversion.conf

对于 BlueHost,此路径中的任何文件都是无效的(我花了四个小时才弄清楚),因为它使用 C-Panel,而 C-Panel 有自己的要求要遵循 ->http://docs.cpanel.net/twiki/bin/view/EasyApache3/InsideVHost

/etc/httpd/conf/httpd.conf因此,在您最喜欢的编辑中编辑文件

[$] vim /etc/httpd/conf/httpd.conf`         --- Edit the main Apache config file
[Editor] /svn.domain.com                        --- Hit Enter and search for your domain configurations, scroll through up or down keys or n for next hit

在 svn.domain.com 的上方,你会看到类似下面的内容

# To customize this VirtualHost use an include file at the following location
#Include "/usr/local/apache/conf/userdata/std/2/username/svn.domain.com/*.conf"

通过删除开头的井号 (#) 来取消注释 Include,并复制 Include 之间的路径直到 *.conf(删除 *.conf),然后按如下mkdir命令粘贴

[$] mkdir -p /usr/local/apache/conf/userdata/std/2/username/svn.domain.com/             --- Creates all parents directory as well if they don't exist
[$] vim /usr/local/apache/conf/userdata/std/2/username/svn.domain.com/subversion.conf   --- Create subversion configuration file

在文件中编辑模式(按 i)粘贴以下内容,并根据需要更改和subversion.conf的路径SVNParentPathAuthUserFile

请注意,VirtualHost 配置中的 DocumentRoot 和 subversion.conf 中的 SVNParentPath 不能具有相同的目录路径。SVNParentPath 必须取代或位于完全不同的目录中,不能位于 DocumentRoot 路径下。

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

<Location />
    DAV svn
    SVNParentPath /home/username/public_html/svn.domain.com/
    SVNListParentPath ON
    AuthType Basic
    AuthName "DFR Visualization Images Repository"
    AuthUserFile /home/username/public_html/svn.domain.com/svn-auth-conf
    Require valid-user
</Location>`

现在:wq!保存并退出文件。

AuthUserFile现在执行以下命令在 subversion.conf 文件中变量提到的路径中创建身份验证文件

在 htpasswd 命令中,首次创建用户时使用 -cm 参数,后续用户只需使用 -m,否则先前用户的数据将丢失

[$] htpasswd -cm /home/username/public_html/svn.domain.com/svn-auth-conf username       --- Press enter and input password

还有最后一步。 默认情况下,Subversion 会在适当的目录中安装 SVN 正常工作所需的模块,但由于 BlueHost 使用 C-Panel,因此它具有用于相同目的的不同目录,而 Subversion 无法意识到这一点。

因此我们需要手动将安装在默认模块目录中的 Subversion 模块复制到 C-Panel 的模块目录中。

首先找到 Subversion 安装了我们在 subversion.conf 文件中指定的以下两个模块的位置

[$] find / -name "mod_dav_svn.so"           --- Find and note subversion installation path
[$] find / -name "mod_authz_svn.so"         --- Find and note subversion installation path

将它们复制到 C-Panel 模块文件夹(通常/usr/local/apache/modules/),请在复制前验证路径。

[$] cp /subversion_modules_path/mod_dav_svn.so /usr/local/apache/modules/
[$] cp /subversion_modules_path/mod_authz_svn.so /usr/local/apache/modules/

现在登录到 bluehost 的 C 面板并重新启动位于的 Apache 服务 C-Panel -> WHM -> Restart Services -> HTTP Server (Apache)

按照文章中的其余步骤进行操作。

相关内容