【发布时间】:2012-01-18 21:18:57
【问题描述】:
目标: 从 wordpress 页面运行一个简单的 Rscript。
- 我目前正在尝试在加载页面时使用 exec() 运行 Rscript。该脚本创建一个包含 100 个从整数 1 到 10 的随机样本的直方图,将系统时间写入标题并将图形保存到 .png 文件。
设置:
- 在 Ubuntu EC2 微型实例上运行 Wordpress 安装
- R已经成功安装并通过ssh测试
- 使用Exec-PHP Wordpress插件,让PHP代码可以编写和执行(测试成功)
PHP 代码(wordpress 页面内)
<?php
echo "This is the Exec-PHP 'Hello World'\n";
echo exec("date");
?>
<?php
exec("Rscript <PATH>/test.R");
?>
<img src="<Image Location>/samplePlot.png" alt="" title="Sample R" />
Rscript - test.R
png( "<Image Location>/samplePlot.png")
hist( sample( 1:10, 100, replace = TRUE), main= Sys.time(), lwd = 5)
dev.off()
图像文件加载但未更新,表明 Rscript 从未执行。我已将其隔离为问题所在,但不确定为什么会这样。
我该如何调试呢?我真的不知道任何 PHP,但我尝试了以下方法:
<?php
exec("\usr\bin\Rscript <PATH>/test.R", $output, $result);
echo $output;
echo $result
?>
返回:
Array2
我希望得到命令行输出来检查错误。这可能吗?
【问题讨论】:
-
它在命令行中是否按预期工作? r 脚本运行需要多长时间
-
当我以普通用户身份登录时它确实有效。该脚本执行得非常快。会不会是权限问题?写不出来?我将如何检查这个?我无法从 php exec() 调用中获取任何输出。
-
我猜脚本会在 HTML 发送给用户时运行,所以他们会在更新的同时下载旧版本的情节
-
@hadley 我认为这是可能的,但我检查了,图像根本没有更新。我什至走进机器检查了时间戳。从命令行运行 Rscript 时,这一点非常清楚。
标签: php r amazon-ec2