我发现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构造函数,只需要调试。
感谢您的帮助!
答案 0 :(得分:0)
如果您有某种网络侦听程序,我会尝试听取该连接并转储您正在获取的数据。如果您在握手的某个部分超时,那么解决方案会有所不同,而不是Net :: SFTP正在进食并且没有报告时出现某种错误。我建议使用tcpdump尝试找出它,因为我假设你使用的是Linux / BSD系统。
答案 1 :(得分:0)
我最终发现这是STDIN的结果,STDOUT被绑定到文件句柄对象而不是modperl中的实际文件句柄。这是潜在问题的原因。
同时指向/ dev / null修复它。我仍然需要挖掘出比/ dev / null更好的解决方案,但是这些知识足以理解所讨论的问题。