我在/ var / www文件夹中有以下index.php文件。
<html>
<?php
$output = shell_exec("/home/ak/Documents/Translation/mosesdecoder/bin/moses -f /home/ak/Documents/Translation/ourOwnHinNorm/working/binarisedModel/moses.ini -input-file /home/ak/Documents/Translation/input.txt > /home/ak/Documents/Translation/output.txt");
//$output = shell_exec("cat /home/ak/Documents/Translation/instructions.txt");
echo $output;
?>
</html>
代码试图运行moses
程序来读取input.txt
的输入并将输出写入output.txt
。我在我的Ubuntu终端上运行了上面写的moses
命令,它运行正常。
但是,当我通过浏览器运行index.php时,即使经过很长时间,output.txt仍然是空的。
注意:我已经运行chmod -R 775 /home/ak/Documents/Translation/
,因此我可以访问并执行该目录中的文件。作为测试,我取消注释了注释行(shell_exec
中的第二个index.php
),该行旨在打印放置在同一文件夹中的instructions.txt
的内容。然后,通过浏览器运行index.php,在浏览器上打印instructions.txt
的内容。
任何想法,为什么第一个shell_exec
在浏览器中运行时会失败?
答案 0 :(得分:0)
在 /home/ak/.bashrc :
中添加此行export PATH=$PATH:/home/ak/Documents/Translation/mosesdecoder/bin
打开一个新终端并输入moses
以测试它是否有效。
现在,替换:
$ output = shell_exec(“/ home / ak / Documents / Translation / mosesdecoder / bin / moses -f /home/ak/Documents/Translation/ourOwnHinNorm/working/binarisedModel/moses.ini -input-file / home / ak / Documents / Translation / input.txt&gt; /home/ak/Documents/Translation/output.txt“);
使用:
$output = shell_exec("moses -f /home/ak/Documents/Translation/ourOwnHinNorm/working/binarisedModel/moses.ini -input-file /home/ak/Documents/Translation/input.txt > /home/ak/Documents/Translation/output.txt");