首先感谢抽时间阅读!
我尝试通过浏览器登陆本地服务器运行我的PHP文件,无法正常运行。我安装的是Appserver安装包2.6.0版本(Appserver网站),包内包含的软件版本为:Apache 2.2.8、PHP 6.0.0-dev。为了找出错误原因,我进行了如下步骤:
1、从命令行运行PHP文件,文件名为julia.php。运行成功。运行过程如下:
php文件代码为:
exec(" julia 12.jl");
echo "finished!";
?>
命令行运行:
同时,php文件中还有一行指令"exec('julia 12.jl')"也执行成功了。这行代码意思是运用julia语言(一种新的编程语言)的REPL环境运行12.jl这个julia文件,12.jl运行成功的话,会在桌面输出一个txt文件。在此处txt文件也成功出现在桌面上了。
但是,当我使用浏览器,从服务器访问julia.php的时候,结果如下:
虽然最后一行代码echo "finished!"顺利执行了,但是"exec('julia 12.jl')"并没有执行成功,因为桌面上没有生成txt文件。
2、我百度谷歌了很久看到一个貌似是查看错误的方法,我也不是很清楚是怎么回事,抱着试试看的态度操作了一下:
php文件代码如下:
function my_exec($cmd, $input='')
{$proc=proc_open($cmd, array(0=>array('pipe', 'r'), 1=>array('pipe', 'w'), 2=>array('pipe', 'w')), $pipes);
fwrite($pipes[0], $input);fclose($pipes[0]);
$stdout=stream_get_contents($pipes[1]);fclose($pipes[1]);
$stderr=stream_get_contents($pipes[2]);fclose($pipes[2]);
$rtn=proc_close($proc);
return array('stdout'=>$stdout,
'stderr'=>$stderr,
'return'=>$rtn
);
}
$str = " julia 12.jl"; //此处为我要检测是否执行成功的指令" julia 12.jl"
var_export(my_exec($str));
echo "finished!";
?>
命令行运行该php文件结果:
浏览器访问结果:
百度谷歌了其中的
"ERROR:key not found: "HOMEDRIVE"
并没有找到满意的答案。
请问我这是遇到什么问题了?有什么办法能让我顺利执行该文件中的exec(" julia 12.jl")指令么?
另外,我把其中的调用julia软件运行脚本的命令换成调用MATLAB软件的命令后,无论是在命令行还是在浏览器访问的情况下,均成功运行了MATLAB的m文件。我的php.ini文件也关闭了安全模式。
万分期待你的解答,谢谢!