从php网页运行R脚本

时间:2015-02-12 14:40:14

标签: php r bash

我正在尝试构建一个允许用户运行R脚本的php文件,这样他们就不需要在服务器中打开会话,只是为了打开浏览器。

脚本中的常用bash运行正常(比如echo"某些",复制和移动数据文件,...)但是R脚本没有运行。 R用Rscript

调用
Rscript --no-save --no-restore --verbose ./RAMS-mapa-onades-zones-manual.R > outputFile.Rout 2>&1

R输出提供此错误

running
  '/usr/lib/R/bin/R --slave --no-restore --no-save --no-restore'

Error in library("rgdal") : there is no package called 'rgdal'
Execution halted

嗯,库(rgdal)是R脚本的第一行。 Rgdal存在于R安装中,脚本在命令行中运行正常(Rscript myscript.R)。

从php开始,运行R的用户是www-data,而在终端上用户是meteo。在我看来,需要在php Rscript执行中设置一些环境变量,但我无法找到实现它的方法。

有什么想法吗?提前致谢

1 个答案:

答案 0 :(得分:2)

似乎我们在评论中找到了根本原因。库路径不匹配,但您可以通过lib.loc参数将它们匹配到library()。像这样:

library(rgdal, lib.loc = c("/home/meteo/R/i686-pc-linux-gnu-library/3.1", "/usr/local/lib/R/site-library", "/usr/lib/R/library"))