logo
Apache Lounge
Webmasters

 

About Forum Index Downloads Search Register Log in RSS X


Keep Server Online

If you find the Apache Lounge, the downloads and overall help useful, please express your satisfaction with a donation.

or

Bitcoin

A donation makes a contribution towards the costs, the time and effort that's going in this site and building.

Thank You! Steffen

Your donations will help to keep this site alive and well, and continuing building binaries. Apache Lounge is not sponsored.
Post new topic   Forum Index -> Building & Member Downloads View previous topic :: View next topic
Reply to topic   Topic: Building a module for older release of Apache (2.2.4)
Author
davotoula



Joined: 11 Jun 2008
Posts: 6

PostPosted: Fri 27 Jun '08 13:39    Post subject: Building a module for older release of Apache (2.2.4) Reply with quote

We have a module that builds fine against the latest Apache Lounge version of Apache 2.2.9 (including APR UTIL).

We are using Microsoft Visual C++ 2008.

Now we need to compile the module against an older version of Apache 2.2.4 which does not have APR util.

I tried building the module and it compiled OK but it did not load on Apache 2.2.4. The error was:

Code:

C:\Program Files\Apache Software Foundation\Apache2.2\bin>httpd.exe
httpd.exe: Syntax error on line 484 of C:/Program Files/Apache Software Foundation/Apache2.2/conf/httpd.conf: Cannot load C:/Program Files/Apache Software Foundation/Apache2.2/modules/<module>.so into server: The specified procedure could not be found.


I suspect this is due to a missmatch of .h and .lib files.

I have now got latest APR from SVN.

1. Do I need to build APR against our current Apache 2.2.4?

2. Which files (.h, .lib) need to be replaced in our Apache 2.2.4 once APR has been built?

3. We are using mod_security2 module that may have been compiled with another version of MVC and is using the runtime library for that older version. Will this cause conflicts with our new module that is compiled with MVC 2008 and using the latest runtime libraries?

thanks
Back to top
admin
Site Admin


Joined: 15 Oct 2005
Posts: 679

PostPosted: Mon 30 Jun '08 21:36    Post subject: Reply with quote

Just not to get in conficts with mixing APR versions in combination with 2.2.4:

Grab the 2.2.4 source at http://archive.apache.org/dist/httpd/ and build it first.

When you do not want to build it, install the 2.2.4 binary from above link and build it against it.

Further you can mix MVC versions.

Steffen
Back to top
davotoula



Joined: 11 Jun 2008
Posts: 6

PostPosted: Tue 01 Jul '08 15:59    Post subject: Reply with quote

Thanks for the input admin but I have already tried this approach.

I found the 2.2.4 installation package and installed it.

Our module requires APR-UTIL so I downloaded the latest sources, compiled them and copied the various libs and header files across to the apache lib / include folders.

I built our module against the Apache lib/include folders.

The module compiled fine but it is not deploying (see error above).

Do I have to retrieve a specific APR-UTIL version?

What version would be appropriate for Apache 2.2.4?

thank you for your input,

dk
Back to top
tdonovan
Moderator


Joined: 17 Dec 2005
Posts: 611
Location: Milford, MA, USA

PostPosted: Tue 01 Jul '08 17:39    Post subject: Reply with quote

re 'Our module requires APR-UTIL so I downloaded the latest sources, compiled them and copied the various libs and header files across to the apache lib / include folders. "

That doesn't sound like the right thing to do.

Apache 2.2.4 contains apr-util 1.2.8. If you downloaded the "latest sources", that would be apr-util 1.3.2 - which isn't the correct version for Apache 2.2.4.
You certainly don't want to copy these into your Apache 2.2.4 /lib and /include directories!

Your error message doesn't sound like it has anything to do with apr-util or with the Apache version.

If you built your module with Microsoft Visual C++ 2008 , be sure to install the Microsoft Visual C++ 2008 Redistributable Package (x86) on your production system before trying to use your module.

Does your module require any other (non-Apache) .dll files? You can check this using the Windows Dependency Walker utility.
To use it - unzip it into your Apache \bin directory; then:
Code:
> CD "C:\Program Files\Apache Software Foundation\Apache2.2\bin"
> PATH=C:\Program Files\Apache Software Foundation\Apache2.2\bin;%PATH%
> depends.exe   ..\modules\mod_{your_module}.so
This will show if your system is missing any other .dll files that your module needs.

-tom-
Back to top
davotoula



Joined: 11 Jun 2008
Posts: 6

PostPosted: Tue 01 Jul '08 17:54    Post subject: Reply with quote

I see, it is getting a bit clearer.

The apr-util 1.2.8 (bundled with Apache 2.2.4) does not contain apr_memcache which our module requires.

I guess I was hoping to upgrade the apr-util on our Apache 2.2.4 (binary distribution) to a later version, for example apr-util 1.3.2.

If this would require recompiling Apache 2.2.4 from sources then we have to do additional testing on this new binary anyway and then might as well use the Apache 2.2.9 binary distribution.

We were hoping to stay on our current Apache 2.2.4 binary to avoid any side effects (we all know of surprises that come from upgrades) Smile
Back to top
tdonovan
Moderator


Joined: 17 Dec 2005
Posts: 611
Location: Milford, MA, USA

PostPosted: Tue 01 Jul '08 18:03    Post subject: Reply with quote

That makes sense.

Apache 2.2.9 contains apr-util 1.3.1, which does contain the apr_memcache functions.

It would be much safer to use Apache 2.2.9 than to try to retro-fit any apr-util 1.3.x version into Apache 2.2.4.

-tom-
Back to top


Reply to topic   Topic: Building a module for older release of Apache (2.2.4) View previous topic :: View next topic
Post new topic   Forum Index -> Building & Member Downloads