System Administration IBM HTTP Server documentation
Pertains to UNIX users Pertains to Windows users

Building dynamic shared object modules or dynamic link libraries with the IBM HTTP Server

This section provides information on building dynamic shared object (DSO) modules and dynamic link libraries (DLL). This information includes identifying compilers, locating build components and understanding build options. Links to related information appear at the end of this section.

Build Apache modules and third-party modules as dynamic shared object modules (DSOs), or dynamic link libraries (DLLs), for execution with the IBM HTTP Server. Apache modules that statically link with Apache during Apache build and installation, cannot statically link with the IBM HTTP Server. The IBM HTTP Server ships as an installation image with executables that you cannot rebuild, since the source does not ship with the installation image. The IBM HTTP Server does ship the header files necessary to compile and build a DSO, or DLL that executes as an IBM HTTP Server module.

The product executable, when compared to Apache, contains source code changes. The majority of these changes exist as hooks to accommodate the Fast Response Cache Accelerator (FRCA) and Secure Sockets Layer (SSL).

To assist in building DSOs and DLLs, review the general information provided below:

Pertains to AIX users
Pertains to HP-UX users
Pertains to Linux users
Pertains to Solaris users
Pertains to Windows users

Identifying viable compilers

Apache modules and third-party module testing incorporated the compilers and compiler levels listed below. Other compilers can work, but testing was limited to these environments:

  • AIX - C for AIX V5.0.2.3 or VisualAge C++ Professional V5.0.2.3
  • HP - HP_UX aC++ Compiler (A.03.xx)
  • Linux for Intel - gcc-2.95.x
  • Linux for PowerPC - gcc 3.2.2
  • Linux for S/390 - gcc 3.2.2
  • Solaris - SunWorkShop V5.0
  • Windows - Microsoft Visual C++ 6.0

Applies to UNIX platform

Locating build components for the UNIX platform

Locations of the key components for building DSOs and DLLs on the UNIX platform follow:

  • Locate the header files in the include directory.
  • Locate the APXS script in the bin directory.

Pertains to Windows users

Locating build components for the Windows operating systems

Use the library files and the header files with the IBM HTTP Server on Windows operating systems.

  • Locate the library files in the src/include directory.
  • Locate the header files in the src/os/win32 directory.
Pertains to UNIX users Pertains to Windows users

Understanding build method options

You have several options available to you for building dynamic modules:

  • Configuration Scripts: Some Apache modules include configuration scripts with the module source. These configuration scripts make compiling and installing modules easy and the module writer usually supports them.

    Sometimes on the UNIX platform, these configuration scripts have a WITH_APXS option. If you use this option, ensure you point to the APXS script installed with the IBM HTTP Server, in the bin directory.

    Check the configuration script parameters if you experience problems building or running your DSO-built module.

  • The example_module directory:
    • UNIX platform: The IBM HTTP Server ships a sample module (mod_example.c) in the example_module directory. See Apache APXS for more information.
    • Windows operating systems - The IBM HTTP Server ships a sample module and project file for building a DLL on Windows operating systems. The configured project file finds header files in the src\include directory and resolves references to the src\Corer\ApacheCore.lib file. See Building dynamic modules on Windows operating systems for more information.
  • APXS Script (UNIX platform only):

    The installation process places APXS, a Perl script, in the IBM HTTP Server bin directory. This script builds dynamically shared objects on AIX, HP, Linux, and Solaris operating systems.

    To use the APXS script, ensure that you have Perl script V5.003 or later, installed. Ensure the path to the Perl executable on the first line of the APXS script is correct, for example, /usr/bin/local/perl. See Apache APXS for information on using the APXS script on specific platforms. You may have to change this line to accommodate your Perl installation directory.

Building third-party modules to run as dynamic shared object modules or dynamic link libraries

If you already have an existing Apache or IBM HTTP Server version installed in the default directory, /usr/lib/apache or /usr/IBMIHS, third-party module configuration scripts can look for and use parameters based on this existing Apache or IBM HTTP Server directory and these executables. To help avoid this problem, do one of the following:

  • Delete your Apache directory.
  • Ensure you use third-party configuration script options, prefix=<installation root>
    where: prefix represents the installation root for the IBM HTTP Server.

Finding related information

     (Back to the top)