我已经搜索并发现了几个与我非常相似的问题,但这些答案中没有任何东西对我有用。
我有一个接受文件上传的 perl CGI 脚本。它查看文件并确定应如何处理它,然后调用第二个非 CGI 脚本进行实际处理。至少,它应该是这样工作的。
这是在带有 Apache 2.0.59 和 ActiveState Perl 5.8.8 的 Windows 上运行的。文件上传部分工作正常,但我似乎无法让upload.cgi
脚本运行执行实际处理的第二个脚本。第二个脚本不以任何方式与发送文件的用户进行通信(除了在完成时发送电子邮件)。我希望 CGI 脚本运行第二个脚本(在单独的进程中),然后“离开”。
到目前为止,我已经尝试过exec
,system(传递 1 作为第一个参数),system(不使用 1 作为第一个参数并调用' start
')和 Win32::Process. 使用带有 1 作为第一个参数的 system 在 Apache 日志中出现错误:
'1' 未被识别为内部或外部命令,\r,引用者:http: //my.server.com/cgi-bin/upload.cgi
没有其他任何东西给我任何错误,但它们似乎不起作用。第二个脚本将一条消息记录到 Windows 事件日志中,这是它首先要做的事情之一。没有创建日志条目。
它在 Omni webserver 下的本地机器上运行良好,但在运行 Apache 的实际服务器机器上却不行。是否有可能影响此的 Apache 配置?该upload.cgi
脚本位于d:\wwwroot\test\cgi-bin
dir 中,但另一个脚本位于同一台机器上的其他位置 ( d:\wwwroot\scripts
)。