【问题标题】:Can't connect to Wordpress SVN server to update repository无法连接到 Wordpress SVN 服务器以更新存储库
【发布时间】:2011-12-15 17:28:32
【问题描述】:

好的,今天早上由于某种原因,我无法连接到 Wordpress SVN 存储库并执行基本的 svn 命令(例如checkoutupdate)。

这是一个正在发生的事情的例子:

$ svn co http://svn.automattic.com/wordpress/tags/3.3/
# Adds a bunch of files...

svn: warning: Error handling externals definition for '3.3/wp-content/plugins/akismet':
svn: warning: PROPFIND of '/!svn/vcc/default': could not connect to server (http://plugins.svn.wordpress.org)
Checked out revision 19597.

$ cd 3.3
$ svn update
svn: OPTIONS of 'http://svn.automattic.com/wordpress/tags/3.3': could not connect to server (http://svn.automattic.com)

然而,当我在我拥有的开发服务器(Linode VPS)上执行这些相同的命令时,它工作正常。

我在谷歌上搜索了很多,发现了这样的页面:

很多这些文章都说明了一些影响,它是您的代理服务器。好吧,我不在代理服务器后面:

http://whatismyipaddress.com/proxy-check

Proxy server not detected.

IP  24.21.xxxx.xxx
rDNS    FALSE
WIMIA Test  FALSE
TOR Test    FALSE
Loc Test    FALSE
Header Test FALSE
DNSBL Test  FALSE

只是一个普通的老式康卡斯特家庭互联网连接。

另外,我可以通过浏览器浏览 wordpress SVN 存储库。

无论如何,我在这里有点死胡同,我想我想知道是否有人对如何解决问题或解决问题有任何建议?我尝试在该开发服务器上运行的 Apache 安装上设置转发代理服务器,然后更新我的 ~/.subversion/server 文件,但这不起作用或我配置错误。

好吧,如果有人有任何绝妙的想法或解释,我很想听听他们......

更新

我让一位同事在他的家庭网络上对此进行了测试——他也使用 Comcast。他和我一样得到了相同的错误。所以它似乎是一些特定于 Wordpress svn 存储库的康卡斯特相关问题。我可以通过 http(例如来自 Google Code)签出其他公共存储库。

我进行了一系列测试,但在我和存储库之间找不到任何隐藏的代理或缓存服务器。

我确实按照 Lazy Badgers 的建议运行了 traceroute,这就是我得到的:

$ traceroute svn.automattic.com
traceroute to svn.automattic.com (72.233.56.196), 64 hops max, 52 byte packets
 1  192.168.1.1 (192.168.1.1)  0.659 ms  0.292 ms  0.185 ms
 2  * * *
 3  te-5-7-ur01.hollywood.or.bverton.comcast.net (68.85.150.225)  8.792 ms  8.309 ms  9.054 ms
 4  xe-3-1-0-0-ar03.beaverton.or.bverton.comcast.net (68.87.216.33)  14.354 ms  24.859 ms  8.753 ms
 5  pos-3-8-0-0-cr01.sacramento.ca.ibone.comcast.net (68.86.95.117)  21.869 ms
    pos-3-1-0-0-cr01.sacramento.ca.ibone.comcast.net (68.86.95.113)  21.791 ms
    pos-3-0-0-0-cr01.sacramento.ca.ibone.comcast.net (68.86.95.109)  22.983 ms
 6  pos-0-7-0-0-cr01.sanjose.ca.ibone.comcast.net (68.86.85.46)  23.682 ms  25.043 ms  24.675 ms
 7  xe-10-3-0.edge1.sanjose1.level3.net (4.71.118.5)  61.048 ms  23.986 ms  24.221 ms
 8  vlan80.csw3.sanjose1.level3.net (4.69.152.190)  25.257 ms  25.648 ms
    vlan90.csw4.sanjose1.level3.net (4.69.152.254)  24.310 ms
 9  ae-82-82.ebr2.sanjose1.level3.net (4.69.153.25)  24.870 ms
    ae-92-92.ebr2.sanjose1.level3.net (4.69.153.29)  25.371 ms
    ae-91-91.ebr1.sanjose1.level3.net (4.69.153.13)  24.744 ms
10  ae-34-34.ebr4.sanjose1.level3.net (4.69.153.34)  36.011 ms  25.975 ms  36.053 ms
11  ae-5-5.ebr2.sanjose5.level3.net (4.69.148.141)  25.236 ms  25.307 ms  25.305 ms
12  ae-6-6.ebr2.losangeles1.level3.net (4.69.148.201)  31.299 ms  34.076 ms  33.401 ms
13  ae-3-3.ebr3.dallas1.level3.net (4.69.132.78)  59.012 ms  58.604 ms  60.576 ms
14  ae-83-83.csw3.dallas1.level3.net (4.69.151.157)  59.708 ms  65.724 ms
    ae-73-73.csw2.dallas1.level3.net (4.69.151.145)  60.383 ms
15  ae-42-90.car2.dallas1.level3.net (4.69.145.196)  60.636 ms
    ae-22-70.car2.dallas1.level3.net (4.69.145.68)  59.572 ms  59.758 ms
16  databank-ho.car2.dallas1.level3.net (4.71.170.2)  58.711 ms  59.994 ms  60.561 ms

我不知道这是否不寻常。我在我的开发服务器上尝试了相同的操作,结果看起来非常相似,除了带有 * * * 的第 2 行。

我成功地在我的开发服务器上配置了一个转发代理,所以我现在已经拼凑了一个解决方案,但我仍然不太明白正在发生什么......

更新 2

在回答一个问题时,以下是我如何配置事物以暂时使用我的开发服务器作为代理。

首先,我将开发服务器上的 apache 配置为作为代理运行。确保这些指令位于 Apache 配置文件链中的某个位置(httpd.conf、vhosts.d 目录等):

Listen 8080

<VirtualHost _default_:8080>
    ProxyRequests On
    ProxyVia On
    ProxyPreserveHost On

    <Proxy *>
        Order deny,allow
        Deny from all
        Allow from xxx.xxx.xxx.xxx
    </Proxy>
</VirtualHost>

这假设您在某处的开发服务器上安装了一个工作的 Apache(我绝对不会在生产服务器上使用它)并安装了 mod_proxy。端口 8080 是任意的。基本上对于不匹配的虚拟主机(即任何与您设置的其他主机不匹配的请求),它将打开代理并通过代理请求。将“xxx.xxx.xxx.xxx”改成自己的IP地址。

现在你必须在你的 subversion 配置文件中更改服务器设置。

在这个文件中:

~/.subversion/servers

找到这个部分:

[global]
# http-proxy-exceptions = *.exception.com, www.internal-site.org
# http-proxy-host = proxy1.some-domain-name.com
# http-proxy-port = 80
# http-proxy-username = defaultusername
# http-proxy-password = defaultpassword
# http-compression = no
# http-auth-types = basic;digest;negotiate
# No http-timeout, so just use the builtin default.
# No neon-debug-mask, so neon debugging is disabled.
# ssl-authority-files = /path/to/CAcert.pem;/path/to/CAcert2.pem

取消注释掉 http-proxy-hosthttp-proxy-port。对于主机,请使用您已映射到开发服务器的备用域名,或者您可能只使用您的服务器 IP。然后将端口设置为 8080 或您使用的任何端口。

这应该通过您刚刚设置的代理路由所有 subversion http 请求。它不影响 svn 或 svn+ssh 请求。

这是我的快速破解,您的里程可能会有所不同,这可能完全不安全或损坏等。

【问题讨论】:

  • ping-traceroute 到 plugins.svn.wordpress.org + svn.automattic.com 的结果?您是否尝试过手动从外部定义结帐?
  • @LazyBadger 我用 traceroute 更新了我的答案。我尝试从主存储库以及插件存储库中的各种插件签出。在我的本地机器上没有一个成功。
  • svn.automattic.com 的跟踪显示 4.71.170.2 作为端点,但它必须是另一个主机。您是否尝试过在外部定义的任何临时 URL 中结帐(if 跟踪正常)? 16 177 ms 177 ms 176 ms wordpress.org [72.233.56.196]18 178 ms 178 ms 181 ms wordpress.org [72.233.56.170] 是我的(似乎一样好)结果
  • @jsdalton 有同样的问题。有没有像你一样拼凑解决方案的提示?
  • @two7s_clash 我用我的快速破解代理解决方案更新了我的答案。这一直对我有用,而我正在等待看康卡斯特的发展......

标签: wordpress svn


【解决方案1】:

我的家庭办公室和公司办公室都有康卡斯特业务。

两者都无法连接到康卡斯特的回购协议。

但是,如果我通过 Windstream T1 或通过我们在多个主干上的实时服务器进行连接,我从来没有遇到过问题。

康卡斯特似乎在“塑造流量”和/或监控商务舱流量并破坏互联网!

康卡斯特干得好!

如果您没有备用连接,您可能需要使用代理服务,然后向 Comcast 发送一封关于他们的网络过滤的讨厌的电子邮件。

【讨论】:

  • 我们现在正在通过我们的博客文章跟踪这个问题:cybersprocket.com/2011/tips-tricks/… 事实证明,我们并不是 Comcast 上唯一遇到这个问题的人。我们已经收到来自美国多个用户的报告,他们遇到了同样的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-02
  • 1970-01-01
  • 2013-05-27
  • 1970-01-01
  • 2011-09-30
相关资源
最近更新 更多