Author |
|
Krischu
Joined: 23 Oct 2009 Posts: 25
|
Posted: Fri 23 Oct '09 12:03 Post subject: mod_proxy_html for Windows XP and apache-2.0.63 |
|
|
I had mod_proxy_html running for two years under apache-2.0.54 and due to a server crash I installed 2.0.63, since I couldn't find a 2.0.54 distribution anymore.
Now I'm having problems in getting the mod_proxy_html.c compiled under Windows.
I managed to get Perl and also I have MS VS6. I installed apxs also for that purpose.
But when compiling the module I'm getting unresolved symbols.
I also don't know whether this is the right approach. Maybe I should move apache2.2? Anyway, I'm in need of the module fitting to my apache version.
--
Christoph
Code: |
C:\src\mod_proxy_html>apxs -c -I..\libxml2-2.7.3.win32\include -I. -i mod_proxy_
html.c
cl /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG -I"C:\PROGRA~1\APACHE~
1\Apache2\include" /I"..\libxml2-2.7.3.win32\include" /I"." /c /Fomod_proxy_h
tml.lo mod_proxy_html.c
mod_proxy_html.c
link kernel32.lib /nologo /subsystem:windows /dll /machine:I386 /libpath:"c:\PRO
GRA~1\APACHE~1\Apache2\lib" /out:mod_proxy_html.so mod_proxy_html.lo
Bibliothek "mod_proxy_html.lib" und Objekt "mod_proxy_html.exp" werden erstel
lt.
mod_proxy_html.lo : error LNK2001: Nicht aufgelöstes externes Symbol "_ap_set_st
ring_slot".
mod_proxy_html.lo : error LNK2001: Nicht aufgelöstes externes Symbol "_ap_set_in
t_slot".
mod_proxy_html.lo : error LNK2001: Nicht aufgelöstes externes Symbol "_ap_set_fl
ag_slot".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_brigade_puts@16" in Funktion "_pcharacters".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_brigade_write@20" in Funktion "_pcharacters".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_filter_flush" in Funktion "_pcharacters".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_pool_cleanup_register@16" in Funktion "_preserve".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_pool_cleanup_null" in Funktion "_preserve".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_pool_cleanup_kill@12" in Funktion "_preserve".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_log_rerror" in Funktion "_dump_content".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_pstrndup@12" in Funktion "_dump_content".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_pregsub@20" in Funktion "_dump_content".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_regexec@20" in Funktion "_dump_content".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_fprintf" in Funktion "_pendElement".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"_htmlTagLookup" in Funktion "_pendElement".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_fputstrs" in Funktion "_pstartElement".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"_htmlAttrAllowed" in Funktion "_pstartElement".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_hash_get@12" in Funktion "_pstartElement".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_brigade_putc@16" in Funktion "_pstartElement".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_table_setn@12" in Funktion "_metafix".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_palloc@8" in Funktion "_metafix".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_pstrcat" in Funktion "_interpolate_vars".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_table_get@8" in Funktion "_interpolate_vars".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_pregcomp@12" in Funktion "_fixup_rules".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_pmemdup@12" in Funktion "_fixup_rules".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_table_unset@8" in Funktion "_check_filter_init".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_brigade_create@8" in Funktion "_check_filter_init".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_remove_output_filter@4" in Funktion "_check_filter_init".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_brigade_cleanup@4" in Funktion "_proxy_html_filter".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"_xmlCtxtUseOptions" in Funktion "_proxy_html_filter".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"_htmlFreeParserCtxt" in Funktion "_proxy_html_filter".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"_htmlCreatePushParserCtxt" in Funktion "_proxy_html_filter".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_set_content_type@8" in Funktion "_proxy_html_filter".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_fflush@8" in Funktion "_proxy_html_filter".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_bucket_type_flush" in Funktion "_proxy_html_filter".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_bucket_eos_create@4" in Funktion "_proxy_html_filter".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"_htmlParseChunk" in Funktion "_proxy_html_filter".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_bucket_type_eos" in Funktion "_proxy_html_filter".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_pass_brigade@8" in Funktion "_proxy_html_filter".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_pstrdup@8" in Funktion "_comp_urlmap".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_getword_conf@8" in Funktion "_set_urlmap".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_array_push@4" in Funktion "_set_events".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_array_make@12" in Funktion "_set_events".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_hash_set@16" in Funktion "_set_links".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_hash_make@4" in Funktion "_set_links".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_log_perror" in Funktion "_mod_proxy_html".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_dynamic_fn_retrieve@4" in Funktion "_mod_proxy_html".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__apr_strmatch_precompile@12" in Funktion "_mod_proxy_html".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_add_version_component@8" in Funktion "_mod_proxy_html".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_add_output_filter@16" in Funktion "_proxy_html_insert".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_hook_insert_filter@16" in Funktion "_proxy_html_hooks".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_hook_post_config@16" in Funktion "_proxy_html_hooks".
mod_proxy_html.lo : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
"__imp__ap_register_output_filter@16" in Funktion "_proxy_html_hooks".
mod_proxy_html.so : fatal error LNK1120: 53 nicht aufgelöste externe Verweise.
apxs:Error: Command failed with rc=6291456
.
C:\src\mod_proxy_html>
|
|
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7373 Location: Germany, Next to Hamburg
|
Posted: Fri 23 Oct '09 14:00 Post subject: |
|
|
Hi Christoph
there is nothing to worry about apache 2.2.x
Only if you use some modules that don't exist for 2.2.x
I compiled (with the help of Gregg) mod_proxy_html this way.
Code: |
SET APACHE=C:\Apache22
cl /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG -I"\build\libxml2-2.7.x\include" -I%APACHE%\include mod_proxy_html.c
link kernel32.lib ws2_32.lib "%APACHE%\lib\libhttpd.lib" "%APACHE%\lib\libapr-1.lib" "%APACHE%\lib\libaprutil-1.lib" /nologo /subsystem:windows /dll /machine:I386 /out:mod_proxy_html.so mod_proxy_html.obj "\build\libxml2-2.7.x\win32\int.msvc\*.obj"
|
make sure that you have compiled libxml2 before that. |
|
Back to top |
|
Krischu
Joined: 23 Oct 2009 Posts: 25
|
Posted: Fri 23 Oct '09 15:56 Post subject: |
|
|
James Blond wrote: | Hi Christoph
there is nothing to worry about apache 2.2.x
Only if you use some modules that don't exist for 2.2.x
I compiled (with the help of Gregg) mod_proxy_html this way.
Code: |
SET APACHE=C:\Apache22
cl /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG -I"\build\libxml2-2.7.x\include" -I%APACHE%\include mod_proxy_html.c
link kernel32.lib ws2_32.lib "%APACHE%\lib\libhttpd.lib" "%APACHE%\lib\libapr-1.lib" "%APACHE%\lib\libaprutil-1.lib" /nologo /subsystem:windows /dll /machine:I386 /out:mod_proxy_html.so mod_proxy_html.obj "\build\libxml2-2.7.x\win32\int.msvc\*.obj"
|
make sure that you have compiled libxml2 before that. |
Thanks, I finally managed to get the module compiled under 2.0.63:
Code: |
C:\src\mod_proxy_html>link kernel32.lib libhttpd.lib libapr.lib apr.lib libaprut
il.lib apr.lib aprutil.lib libapriconv.lib libxml2.lib /nologo /subsystem:window
s /dll /machine:I386 /libpath:"c:\PROGRA~1\APACHE~1\Apache2\lib" /out:mod_proxy_
html.so mod_proxy_html.lo
Bibliothek "mod_proxy_html.lib" und Objekt "mod_proxy_html.exp" werden erstellt.
C:\src\mod_proxy_html>dir *.so
Volume in Laufwerk C: hat keine Bezeichnung.
Volumeseriennummer: 8828-60CD
Verzeichnis von C:\src\mod_proxy_html
23.10.2009 15:53 20,480 mod_proxy_html.so
1 Datei(en) 20,480 Bytes
0 Verzeichnis(se), 19,567,566,848 Bytes frei
C:\src\mod_proxy_html>
|
It's obviously the apxs generation process leaving out important libraries in the apxs.bat/apxs.pl files.
When I added the missing libraries explicitly in the command line I got rid of all unresolved symbols and hopefully my module will work now.
--
Christoph |
|
Back to top |
|
Krischu
Joined: 23 Oct 2009 Posts: 25
|
Posted: Mon 26 Oct '09 17:27 Post subject: |
|
|
I switched to Apache2.2.14.
There were some compilation glitches (statement ordering) in mod_proxy_html.c and I also got over the incomplete link command line WRT to missing apr libraries etc. Somehow the perl Configure.pl
doesn't do the right thing when generating the apxs.bat etc.
Anyway, my major problem now is the following:
On my notebook, where I have VS 6 and apache2.2 and all the environment to build the mod_proxy_html.so I managed to build the module and run it with apache2.2.14 fine.
Then I took over the module via an USB stick to the target machine
and the funny thing is that apache says it cannot find the module, although it is definitely there (!)
I started httpd.exe manually and it says so.
When I look at the file rights/owners (NTFS, properties->security tab)
There were some different owners of the file.
Also when I look with ls -l (cygwin tools) I see it having a different ownership than the rest of the modules. I don't know if that matters but I'm just mentioning.
Any ideas?
Would I end up and have to install MS VS 6 and compile the module on my web server?
--
Christoph |
|
Back to top |
|
glsmith Moderator
Joined: 16 Oct 2007 Posts: 2268 Location: Sun Diego, USA
|
Posted: Tue 27 Oct '09 0:12 Post subject: |
|
|
Krischu wrote: |
Would I end up and have to install MS VS 6 and compile the module on my web server? |
You shouldn't have to.
Hard to tell but from your posts what is on the target machine, 2.0.54, 2.0.63 or 2.2.14?
mod built against 2.0.x will work only in 2.0.x
mod built against 2.2.x will work only in 2.2.x
There has been changes in the APR over the course of the 2.2 developement. 2.2.9 was a big change and many modules built before will not work after and vise-versa however built on same version as in use should not be a problem. |
|
Back to top |
|
Krischu
Joined: 23 Oct 2009 Posts: 25
|
Posted: Tue 27 Oct '09 10:20 Post subject: |
|
|
glsmith wrote: | Krischu wrote: |
Would I end up and have to install MS VS 6 and compile the module on my web server? |
You shouldn't have to.
Hard to tell but from your posts what is on the target machine, 2.0.54, 2.0.63 or 2.2.14?
...
|
Actually I tried all, but the oddest thing was, that I could not import the mod-proxy_html.so that I compiled on my notebook under 2.2.14 into the 2.2.14 on my webserver.
Apache 2.2.14 on my webserver said it could not find the module, although it was definitely there. Is some libxml2.dll still necessary?
I'd think mod_proxy_html.so 3.1.1 is linked against libxml2.lib.
I looked at the permissions and ownerships and they were a bit different.
The tried to match them to the perms of the other modules that were already on the webservers modules directory.
Could it be a strange windows security policy issue, since I was copying the module from an USB-stick?
Last edited by Krischu on Tue 27 Oct '09 14:25; edited 1 time in total |
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7373 Location: Germany, Next to Hamburg
|
Posted: Tue 27 Oct '09 13:47 Post subject: |
|
|
Yes, the mod_proxy_html needs the libxml2.dll . YOu can simple put it into the apache\bin folder or load it
LoadFile "C:/builds/libxml2/release/libxml2.dll"
on a USB stick where you don't know the drive letter you can using the path without the drive letter.
LoadFile "/path/on/usb_stick/to/libxml2.dll" |
|
Back to top |
|
Krischu
Joined: 23 Oct 2009 Posts: 25
|
Posted: Tue 27 Oct '09 14:03 Post subject: |
|
|
James Blond wrote: | Yes, the mod_proxy_html needs the libxml2.dll . YOu can simple put it into the apache\bin folder or load it
LoadFile "C:/builds/libxml2/release/libxml2.dll"
on a USB stick where you don't know the drive letter you can using the path without the drive letter.
LoadFile "/path/on/usb_stick/to/libxml2.dll" |
Thanks. Maybe the missing libxml2.dll was the problem that apache2.2.14 could not load the module.
Maybe I misexpressed myself: I copied the file over from an USB-stick. It's not that I wanted it to run from the mounted USB-stick.
--
Christoph |
|
Back to top |
|