Apache returns "Loader cannot find public symbol" for module MOD_XSRV.NLM

  • 3555445
  • 17-May-2007
  • 27-Apr-2012

Environment

Novell NetWare 6.5
...and either...
Novell ZENworks
...or...
Novell NetStorage

Situation

When trying to load the Apache web server using the ap2webup command on NetWare 6.5, the logger screen displays the following:

Loading module APACHE2.NLM
Apache Web Server 2.0.59
Version 2.00.59 August 2, 2006
Copyright 2006 The Apache Software Foundation. Licensed under the Apache License Version 2.0.
Auto-Loading Module APRLIB.NLM
Auto-loading module APRLIB.NLM
Apache Portability Runtime Library 0.9.12
Version 0.09.12 August 2, 2006
Copyright (c) 2000-2005 The Apache Software Foundation. All rights reserved.
Module APRLIB.NLM load status OK
Module APACHE2.NLM load status OK
SERVER-5.70-918: Loader cannot find public symbol: LLDAPSSL@ldapssl_set_verify_mode for module MOD_XSRV.NLM
SERVER-5.70-918: Loader cannot find public symbol: LLDAPSSL@ldapssl_install_routines for module MOD_XSRV.NLM
SERVER-5.70-918: Loader cannot find public symbol: LLDAPSSL@ldapssl_client_init for module MOD_XSRV.NLM

Apache does not remain loaded, and any attempts to connect to the server will fail.

Resolution

To resolve this problem, do the following:
  1. Open the SYS:\apache2\conf\httpd.conf file.
  2. Locate the XTier configuration lines:
# Include XTier configuration file
Include sys:/netstorage/xsrv.conf

Then do the following:
  1. Move these copied lines to a location in the httpd.conf file after utilldap.nlm, authldap.nlm, and mod_jk.nlm are loaded.
  2. Shutdown Apache with the ap2webdn command.
  3. Start Apache using ap2webup.
  4. Verify that there were no errors on the logger screen.
  5. Ensure that the server is responding by opening a web browser and connecting to the server.
  6. Login to NetStorage and check that all folders are appearing.

Additional Information

The reason for these errors is that the XTier configuration file is being included prematurely in Apache's httpd.conf file. This configuration file (xsrv.conf) uses parts of the utilldap.nlm and other modules to function properly. Since the utilldap.nlm module hasn't been included yet, the configuration file isn't finding the symbols (or functions) in the utilldap.nlm module that it needs, resulting in the "Loader cannot find public symbol" errors.