Newbie Needs Help With Apache for Windows. (Compiling and Mods)

I've been a programmer for quite a while (windows), and recently, I've been playng around with Apache and the Mono project for Windows. I have been able to successfully create some tests with .NET to run with GTK (windows apps) and the mono server (web apps) for Windows. I have also gotten Apache to be working successfully on my Windows server. But when it comes to compiling some of these mods available for Apache, I have no idea what to do.

So starting from the ground up, where do I go and what do I need to do? I need instructions for doing this in Windows.
What compiler(s) do I need?
What is needed for something to be compiled from source code? (Makefile.win32?)
Also, is there a working mod for mono on Apache yet? From the stuff I found recently, it was a no, but a new release has been made, but the other documentation has not yet been updated.

I'd appreciate the help. Thanks in advance.
LVL 1
jeremypettitAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

jeremypettitAuthor Commented:
Of the things I've been able to compile has been source code with a "MakeFile.win32" file by running my Visual Studio command line utility and using the nmake command.

Example: nmake -f makefile.win32

This then creates a bin directory with my compiled assemblies.
0
TomDavidsonCommented:
There is a mono module called mod_mono (http://www.go-mono.com/asp-net.html#mod_mono) however it does not work on windows.

This might help you compile apache on windows:
http://bugzilla.esteelauder.co.uk/manual/win_compiling.html

From (http://httpd.apache.org/docs/mod/mod_so.html):

When a module does work, it can be added to the server in one of two ways. As with Unix, it can be compiled into the server. Because Apache for Windows does not have the Configure program of Apache for Unix, the module's source file must be added to the ApacheCore project file, and its symbols must be added to the os\win32\modules.c file.

The second way is to compile the module as a DLL, a shared library that can be loaded into the server at runtime, using the LoadModule directive. These module DLLs can be distributed and run on any Apache for Windows installation, without recompilation of the server.

To create a module DLL, a small change is necessary to the module's source file: The module record must be exported from the DLL (which will be created later; see below). To do this, add the MODULE_VAR_EXPORT (defined in the Apache header files) to your module's module record definition. For example, if your module has:

    module foo_module;

Replace the above with:

    module MODULE_VAR_EXPORT foo_module;

Note that this will only be activated on Windows, so the module can continue to be used, unchanged, with Unix if needed. Also, if you are familiar with .DEF files, you can export the module record with that method instead.

Now, create a DLL containing your module. You will need to link this against the ApacheCore.lib export library that is created when the ApacheCore.dll shared library is compiled. You may also have to change the compiler settings to ensure that the Apache header files are correctly located.

This should create a DLL version of your module. Now simply place it in the modules directory of your server root, and use the LoadModule directive to load it.



Not really a windows programmer myself but it looks like it might help, good luck
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
jeremypettitAuthor Commented:
Thanks, for your reply, and sorry I haven't responded right away. I've been pretty busy, but I should be able to dig into this later this coming weekend. Thanks again.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Apache Web Server

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.