用PHP连接R

时间:2016-11-20 11:05:15

标签: php r

我试图以php localhost的方式运行R的代码;所以我按照这个例子(https://www.r-bloggers.com/integrating-php-and-r/)。

<?php
// poorman.php

echo "<form action='poorman.php' method='get'>";
echo "Number values to generate: <input type='text' name='N' />";
echo "<input type='submit' />";
echo "</form>";

if(isset($_GET['N']))
{
  $N = $_GET['N'];

  // execute R script from shell
  // this will save a plot at temp.png to the filesystem
  exec("Rscript my_rscript.R $N");

  // return image tag
  $nocache = rand();
  echo("<img src='temp.png?$nocache' />");
}
?>

and the R script…

# my_rscript.R

args <- commandArgs(TRUE)

N <- args[1]
x <- rnorm(N,0,1)

png(filename="temp.png", width=500, height=500)
hist(x, col="lightblue")
dev.off()

我在/ var / www / html / R文件夹中都有这两个文件;当我运行php文件完美但但是我提交了“N”的数字,它没有显示与示例网络图像相同。

我也试图只运行以显示rnorm()分布,但我有相同的结果 - &gt;什么都没有。

我认为我的问题是用php连接R,所以我尝试安装Rapache(http://rapache.net/manual.html)但是当我到达时 “sudo apt-get install apache2-prefork-dev apache2-mpm-prefork libapreq2-dev r-base-dev” 我收到了以下消息 - &gt;找不到包apache2-prefork-dev

任何解决方案?

提前致谢

乔治

1 个答案:

答案 0 :(得分:1)

重新创建问题,返回了Apache错误日志:

  

'Rscript'未被识别为内部或外部命令,   可操作程序或批处理文件。

这表示Apache服务器无法识别系统环境变量。您可能在与您的操作系统不同的环境中运行Apache,而您的PATH变量中很可能有Rscript。了解如何在Apache中设置系统环境变量,这可能涉及调整httpd.conf或.htaccess文件。

但是,请考虑指向Rscript可执行文件的绝对路径的快速解决方案:

exec("path/to/R/bin/Rscript my_rscript.R $N");

对我来说,这样做会产生适当的输出:

RScript Plot Output