【发布时间】:2012-10-23 11:16:52
【问题描述】:
我正在尝试制作一个网页,人们可以在其中运行 moss 并检查源代码文件中的相似性。
为此,我通过 php 上传文件并使用 php 中的“exec”将这些文件作为参数调用moss script,并将输出转储到单独的文本文件中。该代码有时可以正常工作,但有时会在上传文件后停止。
以下是脚本中的 sn-p
$server = 'moss.stanford.edu';
$port = '7690';
.
.
$sock = new IO::Socket::INET (
PeerAddr => $server,
PeerPort => $port,
Proto => 'tcp',
);
die "Could not connect to server $server: $!\n" unless $sock;
$sock->autoflush(1);
.
.
它无法创建连接,并且在此 sn-p 的第四行之后不会继续 - 'die "Could not connect to server $server: $!\n" unless $sock; em>'
这不会一直发生,但有时它工作得很好,有时却不行。
但是,当我通过 ssh 登录到我的网络主机(顺便说一句,godaddy)并在终端中使用相同的参数执行脚本时,它总是有效!
有人可以帮我解决这个问题,服务器上出了什么问题,有时脚本在通过浏览器执行时会死掉?
【问题讨论】:
-
是的,我做错了,感谢您指出。 :)
-
它会死吗?
$!是什么?$@说什么?实现的一个怪癖(与跨平台超时支持有关,IIRC)意味着 IO::Socket::INET 在$@而不是$!中传达错误。这是不明显的记录(tm),在我看来很遗憾,但确实如此。