从php网页运行R脚本


Running R script from php webpage

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

脚本中通常的bash运行良好(比如echo"something",复制和移动数据文件,…),但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数据,而在终端上,用户是meteo。在我看来,在php Rscript执行中需要设置一些环境变量,但我找不到这样做的方法

知道吗?提前感谢

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

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"))