1

我发现 apache 环境缺少bash 必须发出 ssh 请求的东西。问题是,有什么办法可以把它带进来,还是我必须从 shell 运行 SSH/SFTP 请求?

我正在使用 Net:::SFTP 使用用户名和密码运行 sftp 登录。调试日志与 shell 和 apache 相同。唯一的区别是

a) 来自 Apache 的运行速度要慢一个数量级(我想知道为什么?) b) 最重要的是,它挂在

sftp: Sending SSH2_FXP_INIT

我已尽我所能使环境相似,但不知道要寻找什么,还没有找到解决方案。

我正在运行 apache 2.2.3、mod_perl 2.0.4、perl 5.8.8、Net::SFTP 0.10、OpenSSL 0.9.8。没有有趣的参数发送到 Net::SFTP 构造函数,只是调试。

谢谢你的帮助!

4

2 回答 2

0

如果您有某种网络监听程序,我会尝试监听该连接并转储您获得的数据。如果您在握手的某个部分超时,解决方案会有所不同,而不是发生 Net::SFTP 正在吃掉而不报告的某种错误。我建议使用 tcpdump 来尝试找出答案,因为我假设您使用的是 Linux/BSD 系统。

于 2011-08-29T23:56:45.910 回答
0

我最终发现这是 STDIN 的结果,STDOUT 被绑定到文件句柄对象而不是 modperl 中的实际文件句柄。这是根本问题的原因。

指向 /dev/null 修复它。我仍然需要找出比 /dev/null 更好的解决方案,但这些知识足以理解所讨论的问题。

于 2011-10-22T17:21:51.733 回答