项目

通用

个人资料

操作

重要警告

在应用 https://github.com/lighttpd/lighttpd1.4/pull/38 之前(目前目标版本 lighttpd 1.4.40),此方案不适用于当前版本的 svn

欲了解更多信息,请参阅工单 #631

Apache+Subversion 配置指南

本指南展示了如何使用 Apache 2.2、mod_dav_svn 和 lighttpd 1.4.11 设置一个 Subversion 仓库示例。

我们将创建一个托管在示例地址 `http://projects.example.com/svn/test/` 的 Subversion 仓库。

在继续之前,请确保您已安装:

#!ShellExample
# groupadd svn
# useradd svn

创建测试仓库

创建 Subversion 仓库,并将其所有者和组设置为 svn

#!ShellExample
# mkdir -pm700 /var/svn/projects.example.com
# svnadmin create /var/svn/projects.example.com/test
# chown -R svn:svn /var/svn/projects.example.com

注意:这意味着您也以该用户:组的身份运行 Apache。

设置 Apache

projects.example.com 域的公共文件创建目录

#!ShellExample
# mkdir -p /var/www/projects.example.com/httpdocs

httpd.conf 中设置虚拟主机

<VirtualHost *:8080>
    ServerName projects.example.com
    DocumentRoot /var/www/projects.example.com/httpdocs

    <Location /svn/test>
        DAV svn
        SVNPath /var/svn/projects.example.com/test
        AuthType Basic
        AuthName "Test Subversion repository" 
        AuthUserFile /var/svn/projects.example.com/test/conf/users
        Require valid-user
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

example 用户创建用户数据库

#!ShellExample
# htpasswd -cm /var/svn/projects.example.com/test/conf/users example

将 Apache 用户和组变量从

User apache
Group apache

改为

User svn
Group svn

欲了解更多信息,请参阅《使用 Subversion 进行版本控制》一书中的 httpd,Apache HTTP 服务器章节。

注意:如果 Lighttpd 使用 SSL,请将 ServerName 更改为 `https://projects.example.com`,否则某些 Subversion 命令可能无法工作。

设置 Lighttpd

设置 Lighttpd 使用 mod_proxy 将请求代理到 Apache 的 8080 端口

$HTTP["host"] == "projects.example.com" {
    server.document-root = "/var/www/projects.example.com/httpdocs" 
    proxy.server = (
        "/svn/test" => (("host" => "127.0.0.1", "port" => 8080))
    )
}

测试设置

重启 Apache 和 Lighttpd。

执行初始项目导入,检出测试仓库,并提交一些内容

#!ShellExample
$ svn import /var/www/projects.example.com/httpdocs file:///var/svn/projects.example.com/test -m "Initial import" 
$ svn checkout --username example http://projects.example.com/svn/test
$ cd test
$ svn mkdir testbranches tags trunk
$ svn commit

然后您应该可以正常运行了!

如果您有任何问题,请通过我们的论坛联系我们!

gstrauss 9 年多前更新 · 16 次修订