【发布时间】:2017-05-02 14:48:21
【问题描述】:
我正在运行 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 找不到它。我尝试通过复制文件和创建符号链接将文件复制到各个位置。我也试过用谷歌搜索 Apache 在哪里寻找文件但没有运气。
谁能澄清 Apache 期望文件 apr_dbd_oracle.so 所在的目录?提前致谢。
【问题讨论】:
-
我自己解决了问题。无需输入 sudo 即可重新启动,即:/usr/local/apache2/bin/apachectl restart -f /usr/local/apache2/conf/httpd.conf
标签: linux oracle apache ubuntu