首先,我不是 Linux 用户,但作为一名 Web 开发人员,有时我必须假装自己是 Linux 用户。
所以,我们有一个 Red Hat 服务器,并且我在 crontab 中使用 wget 来运行一些 PHP 脚本。
我们已经这样做有一段时间了并且效果很好。
我尝试使用 wget 添加另一个脚本,以在 HTTP 身份验证后运行 PHP 脚本。然而,尽管 URL 工作正常且用户名和密码正确,我们每次都会收到连接超时错误。
什么原因可能导致 wget 对未经身份验证的 URL 起作用,但对经过身份验证的 URL 不起作用?
我已经在 URL 中尝试了 --user=/--password=、--http-user=/--http-password 和 Username:Password@,但三个都以相同的方式失败。
以下是相关命令:
[blahblah user]# wget -t 5 -O /dev/null 'http://Username:[email protected]/sub/dir/file-name.php'
--2010-07-07 10:11:55-- http://Username:*password*@test.example.com/sub/dir/file-name.php
Resolving test.example.com... 000.000.000.000
Connecting to test.example.com|000.000.000.000|:80... failed: Connection timed out.
Retrying.
[不断重复]
有什么想法吗?同样,wget 可以工作,带有身份验证的文件也可以工作,但是 wget 调用带有身份验证的文件却不起作用。
更新:实际上,如果我访问未经身份验证的经过身份验证的 URL,也会遇到相同的超时。这是否意味着 Apache 完全拒绝 wget 的身份验证请求?(我在这里真的陷入了猜测的境地。我对 Apache 配置几乎一无所知。)
答案1
您说您尝试过--user=
并且--http-user=
,您的测试是否包括--password=
和--http-password-
?(如果您的问题中隐含了这一点,请原谅我,但如果不是,这会有所不同)
试试怎么样--ask-password
?
答案2
啊哈!问题原来出在服务器前面的防火墙上。我们的托管公司说 DNS 修复应该可以解决这个问题。
谢谢大家的帮助。