我有一台运行 Apache 的 NetWare 服务器,该服务器具有调用其他 NetWare 服务器的目录别名。我即将使用 OES2 将其中一个 NetWare 服务器迁移到 SLES10SP3。当我使用调用 SLES 服务器的新别名测试 Apache 配置时,我可以获得截断为 8 个字符的文件目录列表。我无法下载上述文件,只能获取它们的列表。我确实在 SLES 服务器的 NSS 卷上设置了长命名空间,而且确实,如果我在那里启动 Apache2 并将同一目录调用为别名,它就可以正常工作。
因此,唯一不起作用的事情是通过 NetWare 机器上的 Apache 调用它。
任何想法,都值得赞赏。
汤姆
答案1
您的问题是您在 NetWare 服务器上运行的是 Apache 1.3。Apache 1.3 和 Apache 2(以及 2.2)链接到不同的基础库。Apache 1.3 链接到 CLIB,该库源自 NetWare 2.x。Apache 2.0 链接到 LIBC,它是在 NetWare 5.x 左右引入的 CLIB 替代品。因此,当访问远程服务器时,CLIB 链接的应用程序必须想尽各种办法才能获得不在 DOS 命名空间中的名称。LIBC 具有用于访问 LONG 或 UNIX 命名空间的本机方法,因此不存在这些问题。
这取决于两个库所使用的 NCP 语义。
当您尝试访问 OES-Linux 服务器时,就会出现问题。当 Novell 将 NCP 堆栈移植到非 NetWare 平台时(他们将 eDirectory 移植到 Windows/Linux/Solaris/AIX 时就是这样做的),他们选择不去考虑老式语义,而只是使用较新的现代语义。然后 OES 出现了,他们只是扩展了他们已经为 eDir 使用的 NCP 堆栈。他们没有加入旧的语义。
为了访问 OES-linux 服务器上的资源,您需要在 NetWare 服务器上使用 Apache 2.0(或 2.2)。Apache 1.3 根本无法满足您的需要。