操作
重要警告¶
在应用 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 仓库。
在继续之前,请确保您已安装:
- Apache(运行在 8080 端口)
- Subversion(包括 mod_dav_svn)
- Lighttpd 1.4.11
- 一个用户 ID 和组 ID 为
svn
的守护进程系统账户
#!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
然后您应该可以正常运行了!
如果您有任何问题,请通过我们的论坛联系我们!