我正在尝试在我们的 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
的路径SVNParentPath
AuthUserFile
请注意,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)
按照文章中的其余步骤进行操作。