Net :: SFTP在apache环境中挂起

时间:2011-08-29 18:14:39

标签: perl apache sftp mod-perl net-sftp

我发现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构造函数,只需要调试。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

如果您有某种网络侦听程序,我会尝试听取该连接并转储您正在获取的数据。如果您在握手的某个部分超时,那么解决方案会有所不同,而不是Net :: SFTP正在进食并且没有报告时出现某种错误。我建议使用tcpdump尝试找出它,因为我假设你使用的是Linux / BSD系统。

答案 1 :(得分:0)

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

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