无法使用PHP在Shell中执行R脚本

时间:2018-07-22 11:20:43

标签: php r

我正在尝试构建一个接口,该接口允许输入要传递给R脚本(位于同一文件夹中)的查询,该脚本进行一些计算并输出输出:

<?php

$author=$_POST['data'];

echo $author."<br>";

$output = shell_exec("Rscript --vanilla h-index.R '$author' ");

echo "<pre>$output</pre>";


?>

但是由于某种原因,该脚本无法启动。.我为它提供了exec权限,并通过命令行对其进行了测试,并且可以正常工作。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

好吧,我感谢rickdenhaan,shell无法识别'Rscript'命令,并使用了有效的绝对路径@font-face { font-family: 'latoregular'; src: url('fonts/lato-regular.eot'); src: url('fonts/lato-regular.eot?#iefix') format('embedded-opentype'), url('fonts/lato-regular.woff2') format('woff2'), url('fonts/lato-regular.woff') format('woff'), url('fonts/lato-regular.ttf') format('truetype'), url('fonts/lato-regular.svg#latoregular') format('svg'); font-weight: normal; font-style: normal;

答案 1 :(得分:0)

运行php的进程很可能在其.ini文件中具有指令disabled_functions="shell_exec"以及其他指令。

这样做是出于安全原因。请与您的托管服务提供商联系。 请注意,他们极有可能不愿意更改此设置。

命令行版本的php与.web文件或php的进程管理器具有不同的.ini文件。这很可能是您从命令行调用时可以使用shell_exec的原因。

请注意:您应该对$_POST变量中接受的参数进行至少一些消毒。