【发布时间】:2011-02-23 21:30:05
【问题描述】:
我的 html 网页调用 php 脚本将文件从本地计算机上传到服务器,如下所示。
<form enctype="multipart/form-data" action="upload.php" method="POST">
<p><b><h3> <font color="#003366"> (1) Upload your reading text file. </font>
</h3> </b> </p>
<INPUT type="file" name="uploaded" size="50" >
<br/>
<input type="submit" name="files" value="upload">
</form>
为了处理上传的文件,我的 php 脚本调用了一个 shell 脚本
$output=system('/bin/sh connector_0.sh');
而我的shell脚本是由一系列python/perl脚本组成的。
#!/bin/sh
python main_senselearner_final_0.py
senseLearner.pl -i Uploaded_Files/slinput_0.txt -o Uploaded_Files/presloutput_0
.txt -model modelNNCollocations -model modelJJCollocations -model modelVBColloc
ations -pos
python smutngslout_0.py
python genhtml_0.py
现在,问题如下:shell 脚本中的所有 python 脚本都可以通过 php 正常工作。但是 perl 脚本不起作用。
当我自己在服务器上运行 shell 脚本时,shell 中的所有四个脚本都运行良好。但是,当我从 php 运行 shell 脚本时,只有 perl 脚本不起作用。
你能给我一些解决这个问题的建议吗?
非常感谢!!!
【问题讨论】:
-
我更正了您的格式 - 使用代码格式工具栏按钮,或将代码缩进四个空格。
-
捕获shell脚本的输出和标准错误。在 shell 脚本的每一行之后检查
$?。 -
“不起作用”没有帮助。具体会发生什么(错误消息、日志条目、损坏的输出、溢出的牛奶、小猫沙发上的毛皮)? @mobrule:
set -x也可能有用。 -
Paul、mobrule、Dennis,感谢您的帮助和建议! :) @丹尼斯,什么也没发生。该脚本没有输出任何内容。