尝试通过 init.d 脚本启动 apache 时收到以下错误:
apache2:/etc/apache2/apache2.conf 第 186 行语法错误:/etc/apache2/mods-enabled/auth_sm.conf 第 4 行语法错误:无法将 /apps/netegrity/webagent/bin/libmod_sm22.so 加载到服务器:libsmerrlog.so:无法打开共享对象文件:没有此文件或目录
SiteMinder 不正式支持 Ubuntu,因此我很难找到任何配置文档来帮助我解决此问题。
我成功安装了 SiteMinder 二进制文件并在服务器上注册了受信任的主机,但在让 apache mod 正确加载时遇到了问题。
我已将以下几行添加到 /etc/apache2/mods-available 中的新 auth_sm.conf 文件中,并在 /etc/apache2/mods-enabled 中对其进行符号链接:
SetEnv LD_LIBRARY_PATH /apps/netegrity/webagent/bin
SetEnv PATH ${PATH}:${LD_LIBRARY_PATH}
LoadModule sm_module /apps/netegrity/webagent/bin/libmod_sm22.so
SmInitFile "/etc/apache2/WebAgent.conf"
Alias /siteminderagent/pwcgi/ "/apps/netegrity/webagent/pw/"
<Directory "/apps/netegrity/webagent/pw/">
Options Indexes MultiViews ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
更新:ldd libmod_sm22.so 的输出:
ldd /apps/netegrity/webagent/bin/libmod_sm22.so linux-gate.so.1 => (0xb8075000) libsmerrlog.so => /apps/netegrity/webagent/bin/libsmerrlog.so (0xb7ec0000) libsmeventlog.so => /apps/netegrity/webagent/bin/libsmeventlog.so (0xb7ebb000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7e9a000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7e96000) librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7e8d000) libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0xb7dd3000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7dad000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7d9e000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7c3a000) libsmcommonutil.so => /apps/netegrity/webagent/bin/libsmcommonutil.so (0xb7c37000) /lib/ld-linux.so.2 (0xb8076000)
更新:
在 Ubuntu 中为 Apache 运行用户设置环境变量的最简单方法是编辑 /etc/apache2/envvars 文件并为您可能需要的任何库路径添加导出语句
答案1
看起来 libmod_sm22 正在尝试加载链接库,但未在预期的位置找到它。尝试:
ldd /apps/netegrity/webagent/bin/libmod_sm22.so
看看是否可以将它正在寻找的库移动到它期望的路径。
答案2
我正在运行 Ubuntu 14.4,下面是我为使其运行所做的事情:
(附注:我将它安装在了/opt/CA/
,如果你将它安装在其他地方,只需替换/opt/CA/
为你的安装目录即可。)
- 运行
ca-wa-config.sh
脚本。 - 当它要求输入 Apache 服务器根目录时,使用
/etc/apache2
- 它会说它失败,并发出有关无法更新
httpd.conf
和其他配置文件的警告。 /etc/apache2
它正在和中写入所需的配置文件/opt/CA/webagent/config
。- 将 的所有者更改
/opt/CA/webagent/config/SmHost.conf
为 Apache 运行时所使用的同一用户。这通常是www-data
。您可以通过运行来查找用户ps aux | grep apache2
完成配置向导后,您仍然需要创建/编辑一些配置文件:
/etc/apache2/环境变量
在末尾/etc/apache2/envvars
添加以下几行:
CAPKIHOME=/opt/CA/webagent/CAPKI
LD_LIBRARY_PATH=/opt/CA/webagent/bin
PATH=${PATH}:${LD_LIBRARY_PATH}
export CAPKIHOME
export LD_LIBRARY_PATH
export PATH
/etc/apache2/mods-available/auth_sm.load
通过运行来检查您正在使用的 apache 版本apache2 -v
。
- 如果是 2.2(Ubuntu 12.x 中发布),你需要加载
libmod_sm22.so
- 如果是 2.4(Ubuntu 14.x 中发布),你需要加载
libmod_sm24.so
创建文件/etc/apache2/mods-available/auth_sm.load
并添加以下行:
LoadModule sm_module /opt/CA/webagent/bin/libmod_sm24.so
SmInitFile "/etc/apache2/WebAgent.conf"
然后你需要正确链接它,以便 Apache 可以通过运行以下命令来加载此配置/etc/apache2
ln -s ../mods-available/auth_sm.load mods-enabled/auth_sm.load
/etc/apache2/conf-available/auth_sm.conf
您还需要配置 webagent 的别名。创建文件/etc/apache2/conf-available/auth_sm.conf
并添加以下行:
Alias /siteminderagent/pwcgi/ "/opt/CA/webagent/pw/"
<Directory "/opt/CA/webagent/pw/">
Options Indexes MultiViews ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
然后你需要正确链接它,以便 Apache 可以通过运行以下命令来加载此配置/etc/apache2
ln -s ../conf-available/auth_sm.conf conf-enabled/auth_sm.conf
答案3
在 envvars 中添加以下条目后对我有用
NETE_WA_PATH="/webagent/bin"
export NETE_WA_PATH
NETE_WA_ROOT="/webagent"
export NETE_WA_ROOT
PATH="/webagent/bin:$PATH"
export PATH
LD_LIBRARY_PATH="/local/apache22/0/lib:/webagent/bin:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH