linux - Ubuntu : "Can' t load driver file apr_dbd_oracle. 上的 Apache 2.4 所以”

标签 linux oracle apache ubuntu

我正在运行 Ubuntu 17.04。我有一个在 Wildfly 10.1.0 中运行的应用程序,我正在尝试使用 Apache 2.4 强制用户在浏览到应用程序 URL 时登录。我已经在 Windows 环境中实现了此功能,并希望它能像将我的 Apache 配置文件复制到 Ubuntu 机器一样简单,但事实并非如此。

我在 httpd.conf 中添加了下面这行

Include conf/extra/dbd.conf

conf/extra/dbd.conf 的内容:

DBDriver oracle
DBDParams user=xx;pass=yy;server=zz
DBDMin  2
DBDKeep 4
DBDMax  10
DBDExptime 300

然后我尝试使用以下命令重新启动 Apache:

sudo /usr/local/apache2/bin/apachectl restart -f /usr/local/apache2/conf/httpd.conf

我收到消息:

AH00526: Syntax error on line 1 of /usr/local/apache2/conf/extra/dbd.conf
Can't load driver file apr_dbd_oracle.so

我关注了this关于如何构建文件 apr_dbd_oracle.so 的教程。我试图通过运行以下命令来验证 apr_dbd_oracle.so 是否已正确构建:

ldd /usr/local/apr/lib/apr-util-1/apr_dbd_oracle.so

产生输出:

linux-vdso.so.1 =>  (0x00007ffc2d3f6000)
libclntsh.so.11.1 => /u01/app/oracle/product/11.2.0/xe/lib/libclntsh.so.11.1 (0x00007f92d4b0e000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f92d48d7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f92d4510000)
libnnz11.so => /u01/app/oracle/product/11.2.0/xe/lib/libnnz11.so (0x00007f92d4148000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f92d3f44000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f92d3c39000)
libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f92d3a20000)
libaio.so.1 => /lib/x86_64-linux-gnu/libaio.so.1 (0x00007f92d381e000)
/lib64/ld-linux-x86-64.so.2 (0x0000561dd2f8b000)

我不是 Linux 专家,但我怀疑如果 .so 文件已损坏,那么 ldd 将不会产生此输出。我由此得出结论,apr_dbd_oracle.so 可以工作,但 Apache 找不到它。我尝试通过复制文件和创建符号链接(symbolic link)将文件复制到不同的位置。我也尝试过谷歌搜索,Apache 在其中查找文件但没有成功。

谁能阐明 Apache 期望文件 apr_dbd_oracle.so 所在的目录?提前致谢。

最佳答案

从我们之前的谈话中:

用于 root 访问的共享库配置与登录用户不同。

尝试在没有 sudo 的情况下执行,看看是否是配置问题。

关于linux - Ubuntu : "Can' t load driver file apr_dbd_oracle. 上的 Apache 2.4 所以”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43740913/

相关文章:

java - ActiveMQ - 控制一次消耗多少消息。

linux - 如何获取运行目录中的文件夹列表并将它们分别分配给一个变量?

Oracle DBMS 调度程序在周末的频率发生变化

java - Oracle:数据库属于用户还是用户属于数据库?

regex - 如何编写表达式以获取表达式后的所有内容,然后在 htaccess 中重写

apache - 如何为 Apache 使用自动主机?

c - 如何在程序运行时更改 GTK 中的标签;从一个单独的线程

linux - 分析在 Kubernetes Linux 中运行的 dotnet 核心进程的内存转储

c++ - 用于在 linux 中获取 CPU 负载的 C API

oracle - 不使用触发器在 Oracle 中自动递增