【发布时间】:2018-09-18 06:38:22
【问题描述】:
我正在尝试从 PHP 中运行 R 代码。我正在使用 RHEL 7.4。
但是,由于 Apache 以不同于安装 R 包的用户身份运行,它无法加载包:
我的 PHP 代码有这一行:
echo shell_exec("(Rscript -e 'library(lme4, lib.loc = \"/var/www/R/lib\")')2>&1");
在浏览器中产生此错误:
Error: package or namespace load failed for 'lme4' in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '/var/www/R/lib/Rcpp/libs/Rcpp.so':
/var/www/R/lib/Rcpp/libs/Rcpp.so: failed to map segment from shared object: Permission denied
Execution halted
文件/var/www/R/lib/Rcpp/libs/Rcpp.so 的权限为775,所以我认为权限实际上不是问题。
我如何告诉 Apache / PHP 在哪里寻找共享库?
服务器不是面向公众的,所以我会采取任何解决方案,从正确访问共享库到授予用户 apache sudo 访问权限和 NOPASSWD 以我的用户身份运行(或类似鲁莽的事情,因为那没有'实际上不起作用...)。
谢谢!
【问题讨论】: