首页 > 解决方案 > 从 PHP 运行 RMarkdown

问题描述

我正在尝试使用exec()命令从 PHP 运行 RMarkdown。尝试编织我的 .Rmd 文件时,我收到以下错误:

Execution haltedArray ( 
[0] => Error in with_pandoc_safe_environment(system(paste(shQuote(path), "--version"), : 
[1] => The 'HOME' environment variable must be set before running Pandoc. 
[2] => Calls: <Anonymous> ... FUN -> get_pandoc_version -> with_pandoc_safe_environment 
[3] => Execution halted )

该命令Rscript -e "rmarkdown::render('path/to/file.Rmd')"在命令行上运行良好。

标签: phpcommand-liner-markdownpandoc

解决方案


它在那里说出了什么问题:它需要HOME设置一个环境变量。不确定您的环境是什么,但您可以在命令按预期工作的 shell 中找到它的值:

echo $HOME

然后将该值添加到您的exec()调用中:

exec("HOME=/the/path/you/got/before $theRMarkdownCommandYouNeed")

或者您可能需要另一个路径,特定于您运行 PHP 的用户。


推荐阅读