php - 无法从 PHP 运行 R 命令。路径问题?

标签 php linux r

我正在尝试使用 exec 从 PHP 运行 R 命令。我知道使用 RServer 或套接字连接更有意义,但这些选项目前对我不可用。

代码如下所示:

$cmd = '/var/www/r.sh';
exec($cmd, $out, $return_var);

r.sh 包含以下内容

#!/bin/bash
source /home/ubuntu/.bashrc
cd /home/ubuntu
R CMD BATCH RFile.R

当我从 shell 执行命令时,它工作得非常好。当我从 PHP 运行命令时,出现以下错误:

> test( read.csv("OutData.csv",header=T,stringsAsFactors=FALSE,encoding="UTF-8"))
Error in library(randomForest) :
  there is no package called 'randomForest'
Calls: test -> library
Execution halted

我最初的想法是这可能与权限有关。我已授予 www-data 读取所有内容的执行权限,但无济于事。我还以 www-data 用户身份从 shell 运行了该命令,并且运行良好。仅当从 PHP 调用时才会失败。

所以,我现在认为这是一个路径问题。 randomForest 是一个 R 库,并且已正确安装在盒子上:

ubuntu@<removed>:/var/www$ sudo find / -name randomForest
/home/ubuntu/R/x86_64-unknown-linux-gnu-library/3.0/randomForest
/home/ubuntu/R/x86_64-unknown-linux-gnu-library/3.0/randomForest/R/randomForest

我找不到任何设置路径的 shell 环境变量,所以我不明白为什么该命令可以在 shell 中运行,但不能在 PHP 中运行。

有什么想法吗?

最佳答案

相关的环境变量是R_LIBSR_LIBS_USERR Installation and Administration Manual是相关引用。如果您想查看如何在 R session 中设置这些变量,请尝试

ss <- Sys.getenv()
ss[grep("^R_LIB",names(ss))]

关于php - 无法从 PHP 运行 R 命令。路径问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19897652/

相关文章:

php - Metabox Wordpress 插件 Thickbox jQuery 错误 - Uncaught TypeError : Cannot read property 'replace' of undefined

linux - 如何强制(或解决方法)logrotate 将旧日志移动到不同物理磁盘上的 olddir?

r - 如何在 r 中绘制多个图,每个图对应一个需要与另一个向量创建坐标的向量?

r - 使用标称变量删除 r 中的异常值

r - 如何从 ggplot2 包中仅绘制 geom_point 中的一系列值?

php - Composer 类映射和加载具有非标准扩展名的文件

php - MySQL 查询有限制吗?

javascript - php 值在 javascript 中不会改变

linux - 开放固件设备树概述/引用手册

Linux eclipse : run a shell command as the pre-build command