Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从wordpress安装运行exec()Rscript_Php_R_Amazon Ec2 - Fatal编程技术网

Php 从wordpress安装运行exec()Rscript

Php 从wordpress安装运行exec()Rscript,php,r,amazon-ec2,Php,R,Amazon Ec2,目标: 从wordpress页面运行一个简单的Rscript 我当前正在尝试在加载页面时使用exec()运行Rscript。该脚本从整数1到10创建100个随机样本的直方图,将系统时间写入标题,并将图形保存到.png文件 设置: 在Ubuntu EC2微实例上运行Wordpress安装 R已通过ssh成功安装和测试 使用Exec PHP Wordpress插件,以便编写和执行PHP代码(测试成功) PHP代码(在wordpress页面中) 我希望得到命令行输出以检查错误。这可能吗?我认为

目标: 从wordpress页面运行一个简单的Rscript

  • 我当前正在尝试在加载页面时使用exec()运行Rscript。该脚本从整数1到10创建100个随机样本的直方图,将系统时间写入标题,并将图形保存到.png文件
设置

  • 在Ubuntu EC2微实例上运行Wordpress安装
  • R已通过ssh成功安装和测试
  • 使用Exec PHP Wordpress插件,以便编写和执行PHP代码(测试成功)
PHP代码(在wordpress页面中)


我希望得到命令行输出以检查错误。这可能吗?

我认为问题在于您没有指定
Rscript
的完整路径,而运行PHP/Apache的用户不知道在哪里搜索它

更新
exec
命令(在Linux上):

exec(“/usr/bin/Rscript/test.R”);

无论如何,我建议稍后为任务安装,并(基于此)运行
r
,而不是
Rscript
,以便让事情运行得更快-如果安装例如不是一个选项。

要了解问题,请尝试:

$e = exec("\usr\bin\Rscript <PATH>/test.R 2>&1");
var_dump($e);
$e=exec(“\usr\bin\Rscript/test.R 2>&1”);
var_dump($e);
如果您得到类似于:dyn.load(文件,DLLpath=DLLpath,…)中的错误。。。 您可能需要更新服务器动态库(尝试搜索libfreetype.dylib),或者如果您正在运行MAMP(就像我一样),则需要注释(#)以下两行未注释的行:/Applications/MAMP/Library/bin/envvars


我知道你发这个问题已经很久了,但我花了很多时间处理类似的问题——希望有人能节省一些时间;)

它是否按照命令行的预期工作?当我以普通用户的身份使用ssh时,r脚本运行它需要多长时间。脚本执行得非常快。这可能是权限问题吗?不会写字吗?我怎么检查这个?我很难从php exec()调用中获得任何输出。我猜脚本是在HTML发送给用户时运行的,因此他们会在打印时下载旧版本的绘图updated@hadley我认为这是可能的,但我检查了一下,图像从未更新过。我甚至走进机器检查了时间戳。从命令行运行Rscript时,这一点非常清楚。我最初使用了完整路径,得到了相同的结果。同时我会调查littler。您是否安装/配置了apparmor或类似产品?试着从命令行以Web服务器用户的名义运行
rccript
。虽然与最初的问题不太相关(它指的是在Ubuntu中运行,而不是在Mac OS X中运行),但我得说,这结束了我长达数小时的沮丧搜索。即使在修改了库文件所有权之后,我也无法让MAMP正确地包含核心库(比如stats),尽管它可以很好地加载RJSONIO。奇怪的无论如何,注释这些行可以让MAMP执行的R脚本找到以前找不到的DYLIB,这可能是stats之类的包的依赖项。谢谢分享!
    png( "<Image Location>/samplePlot.png")
    hist( sample( 1:10, 100, replace = TRUE), main= Sys.time(), lwd = 5)
    dev.off()
    <?php
    exec("\usr\bin\Rscript <PATH>/test.R", $output, $result);
    echo $output;
    echo $result
    ?>
Array2
exec("/usr/bin/Rscript <PATH>/test.R");
$e = exec("\usr\bin\Rscript <PATH>/test.R 2>&1");
var_dump($e);