我正在尝试以 php localhost 方式运行 R 代码;所以我按照这个例子(https://www.r-bloggers.com/integrating-php-and-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() 分布,但我得到相同的结果 -> 什么也没有。
我认为我的问题在于将 R 与 php 连接起来,所以我尝试安装 Rapache (http://rapache.net/manual.html http://rapache.net/manual.html)但是当我到达
“sudo apt-get install apache2-prefork-dev apache2-mpm-prefork libapreq2-dev r-base-dev”
我收到以下消息 -> 找不到软件包 apache2-prefork-dev
有什么解决办法吗?
提前致谢
George
重现您的问题,Apache 错误日志返回:
“Rscript”不被识别为内部或外部命令,
可运行的程序或批处理文件。
这表明 Apache 服务器无法识别系统环境变量。您可能在与操作系统不同的环境中运行 Apache,其中很可能您的操作系统中有 RscriptPATH
多变的。了解如何在 Apache 中设置系统环境变量,其中可能涉及调整 httpd.conf 或 .htaccess 文件。
但是,请考虑指向 Rscript 可执行文件的绝对路径的快速解决方案:
exec("path/to/R/bin/Rscript my_rscript.R $N");
对我来说,这样做产生了适当的输出:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)