我已成功在 Debian 11 服务器上安装了 RApache。以下 R 脚本通过 URL/Apache 执行时可完美运行:
y = rnorm(100)
print(y)
遗憾的是,另一个嵌入了 rJava/RJDBC 的脚本导致内部服务器错误:
Sys.setenv(LD_LIBRARY_PATH = "/usr/lib/jvm/default-java/bin/java")
options(java.parameters = c("-Djdk.tls.client.protocols=TLSv1.2"))
library(RJDBC)
# Verbindungsinformationen
server <- "172.20.10.84\\SESQL"
database <- "SEMESS"
username <- " "
password <- " "
# JDBC-Treiber laden
jdbc_driver <- "/etc/mssql-jdbc-12.2.0.jre11.jar"
drv <- JDBC(driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver", classPath = jdbc_driver)
# Verbindung aufbauen
conn <- dbConnect(drv, sprintf("jdbc:sqlserver://%s;databaseName=%s;encrypt=true;trustServerCertificate=true", server, database), username, password)
dbDisconnect(conn)
脚本在执行时运行顺利Rscript 测试.R。
当制作sudo tail -f /var/log/apache2/error.log表明:
libjvm.so:无法打开共享对象文件:没有此文件或目录错误:无法加载包“rJava”
有什么提示可以帮我解决这个问题吗?我已经尝试将 SetEnv LD_LIBRARY_PATH 和 Java 库路径添加到我的 Apache 000-default.conf。
非常感谢您的帮助。
答案1
事实证明,添加
dyn.load(“/usr/lib/jvm/java-11-openjdk-amd64/lib/server/libjvm.so”)
最顶部的 R 脚本解决了该问题。