将 SVN 服务器反映到 /var/www/ 目录及其他 2 个问题

将 SVN 服务器反映到 /var/www/ 目录及其他 2 个问题

问题 1:

我正在为开发设置一个 SVN 服务器,我该如何从/var/www/我的网站的根目录中提供文件,我想通过 SVN 管理这些文件,以反映/var/www/我提交给我的服务器的更改的根目录。

目前我的开发文件已经存在,/var/www/但是按照教程位于/home/svn/,我该如何将其更改为网站根目录 ( /var/www/) 而不是/home/svn/

问题2:

此外,当我运行此命令时,我还有另外两个相关问题:

svnserve -d --foreground -r /home/svn

我可以连接到我的 SVN 服务器,但是命令似乎没有完成,运行命令时似乎正在等待响应,因此我通过执行ctrl& c(^C) (Mac) 来停止它,这会停止连接,使我不再连接到服务器。那么,当我不使用终端进行开发时,如何保持它处于活动状态?

问题 3:

还有一个问题,当我使用浏览器浏览到:

http://我的域名:3690

我得到这个输出:

( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops partial-replay ) ) ) 

这是否是一种安全风险?如果是,我应该怎么做才能避免这种风险?

这是我要问的三个问题。

答案1

首先,您似乎混淆了 Subversion 和 Web 服务器。

  1. 您可能希望使用 在磁盘上的某个位置(例如 /data/svn)创建一个 Subversion 存储库svnadmin。接下来,检出所述存储库并将 Web 根目录中的所有文件添加到其中。最后,使用 将存储库检出到 /var/www svn co
  2. 不要运行svnserve---foreground该选项会按照您的预期运行!如果您只是运行,svnserve -d那么它将作为后台守护程序运行。
  3. 您将 svnserve 与 Web 服务器混淆了。端口 3690 是 svnserve 端口,需要svn客户端使用其本机协议与其通信。如果您想通过 HTTP 进行通信,则需要添加类似mod_dav_svnApache 中的一些内容。

答案2

  1. 使用存储库作为站点源是不可能的 - 存储库是数据库,而不是物理文件
  2. 您可以使用工作副本存储库作为站点(svn co|的结果svn up),但它存在(一些可能的)安全漏洞
  3. svnserve 启动守护进程,处理 svn:// 访问协议到存储库,运行它 a) 始终 b) 在后台
  4. svnserve 不是 http,您没有在 3690 端口上使用 svnserve 的基于 http 的 repo。在这种情况下,您必须使用 svn://mydomain:3690 访问 repo(无法详细讲述 svnserve 配置,从未使用过)

相关内容