2

我一直在尝试在运行 OS X 10.5.8 的 Macbook Pro 上正确设置 RApache。成功安装 RApache 后(我认为),我按照手册中的建议将以下内容添加到 httpd.conf 文件中。

LoadModule R_module /apache/module/path/mod_R.so 
ROutputErrors
<Location /RApacheInfo> 
    SetHandler r-info 
</Location> 

通过这些添加,我能够成功访问http://localhost/RApacheInfo并查看状态信息。如果我添加以下附加行 REvalOnStartup "library(brew)" 我将无法再成功加载 RApacheInfo 页面。

我不知道这里有什么问题。如果没有 REvalOnStartup 调用,我会在 Apache 错误日志中看到以下内容。

[Fri Feb 26 11:36:36 2010] [notice] Apache/2.2.13 (Unix) mod_ssl/2.2.13 OpenSSL/0.9.7l DAV/2 mod_R/1.1.8 R/2.10.1 configured -- resuming normal operations
The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec().
Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__() to debug.
The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec().
Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__() to debug.

不是一个好兆头。对可能发生的事情有任何想法吗?还是要检查的东西?

克里斯

4

1 回答 1

2

我不确定为什么您在加载库时会收到此错误,但由于 Apple 的 freetype/fontconfig/cairo 库调用 CoreFoundation 调用,我们已经在 Leopard 上看到了这个问题:

http://finzi.psych.upenn.edu/R/Rhelp02/archive/118681.html

你是如何安装 R 的?

我尝试使用股票 apache2、来自 CRAN 的二进制 R 2.10.1、Xcode 3.2.1 和 rapche 1.1.8 在 Snow Leopard 上重现您的问题,但没有运气。我的设置就像一个冠军。

我无法再访问 Leopard,所以我最好的建议是使用 gdb 来中断那个非常长的系统调用。您将希望删除 REvalonStartup 指令并将其替换为执行相同操作的处理程序调用,将 apache 配置为仅生成一个子进程(因此是整个 fork 事物)并将 gdb 连接到它。然后将您的网络浏览器指向您的处理程序 url 并查看 gdb 是否在函数上中断,然后查看堆栈跟踪......我知道这很蹩脚,但这就是我现在所得到的。

于 2010-03-01T20:25:44.013 回答