Update the dependencies in README for Windows based on refactory of 2.9.2 release.

This commit is contained in:
Yang Luo 2018-08-23 09:56:16 +08:00 committed by Victor Hora
parent b76f961aae
commit e0a087b540

View File

@ -8,13 +8,13 @@ by Tom Donovam, 4/2/2011
Dependency | Tested with | Note Dependency | Tested with | Note
----|------|---- ----|------|----
Microsoft Visual Studio C++ | Visual Studio 2008 (aka VC9) | Microsoft Visual Studio C++ | Visual Studio 2013 (aka VC12) |
[CMake build system](http://www.cmake.org/) | CMake v2.8.0 | [CMake build system](http://www.cmake.org/) | CMake v3.8.2 |
[Apache 2.2.x](http://httpd.apache.org/) | Apache 2.2.17 | Apache must be built from source using the same Visual Studio compiler as mod_security. [Apache 2.4.x](http://httpd.apache.org/) | Apache 2.4.27 | Apache must be built from source using the same Visual Studio compiler as mod_security.
[PCRE, Perl Compatible Regular Expression library](http://www.pcre.org/) | PCRE v8.12 [PCRE, Perl Compatible Regular Expression library](http://www.pcre.org/) | PCRE v8.40
[LibXML2](http://xmlsoft.org/) | LibXML2 v2.7.7 | Note that LibXML2 v2.7.8 does not build correctly for Windows [LibXML2](http://xmlsoft.org/) | LibXML2 v2.9.4 |
[Lua Scripting Language](http://www.lua.org/) | Lua v5.1.4 [Lua Scripting Language](http://www.lua.org/) | Lua v5.3.4
[cURL multiprotocol file transfer library](http://curl.haxx.se/) | cURL v7.21.4 [cURL multiprotocol file transfer library](http://curl.haxx.se/) | cURL v7.54.0
## Before building ## Before building
@ -22,23 +22,23 @@ Microsoft Visual Studio C++ | Visual Studio 2008 (aka VC9) |
The directory where you build software from source ( ``C:\work`` in this exmaple) The directory where you build software from source ( ``C:\work`` in this exmaple)
must contain the Apache source you used to build the Apache web serverand the mod_security source must contain the Apache source you used to build the Apache web serverand the mod_security source
Apache source is in C:\work\httpd-2.2.17 in this example. Apache source is in C:\work\httpd-2.4.27 in this example.
Apache has been installed to C:\Apache2217 in this example. Apache has been installed to C:\Apache2427 in this example.
Mod_security source is in C:\work\mod_security in this example. Mod_security source is in C:\work\mod_security in this example.
## Download and untar the prerequisite library sources: ## Download and untar the prerequisite library sources:
Download pcre-8.12.tar.gz from ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ Download pcre-8.40.tar.gz from ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
untar it into C:\work\ creating C:\work\pcre-8.12 untar it into C:\work\ creating C:\work\pcre-8.40
Download libxml2-2.7.7.tar.gz from ftp://xmlsoft.org/libxml2/ Download libxml2-2.9.4.tar.gz from ftp://xmlsoft.org/libxml2/
untar it into C:\work\ creating C:\work\libxml2-2.7.7 untar it into C:\work\ creating C:\work\libxml2-2.9.4
Download lua-5.1.4.tar.gz from http://www.lua.org/ftp/ Download lua-5.3.4.tar.gz from http://www.lua.org/ftp/
untar it into C:\work\ creating C:\work\lua-5.1.4 untar it into C:\work\ creating C:\work\lua-5.3.4
Download curl-7.21.4.tar.gz from http://curl.haxx.se/download.html Download curl-7.54.0.tar.gz from http://curl.haxx.se/download.html
untar it into C:\work\ creating C:\work\curl-7.21.4 untar it into C:\work\ creating C:\work\curl-7.54.0
## Setup your build environment: ## Setup your build environment:
@ -49,12 +49,12 @@ must contain the Apache source you used to build the Apache web serverand the mo
3. Set an environment variable to the Apache source code directory: 3. Set an environment variable to the Apache source code directory:
``` ```
SET HTTPD_BUILD=C:\work\httpd-2.2.17 SET HTTPD_BUILD=C:\work\httpd-2.4.27
``` ```
### Optional: ### Optional:
If OpenSSL and zlib support were included when you built Apache 2.2, and you want them available to LibXML2 and cURL If OpenSSL and zlib support were included when you built Apache 2.4, and you want them available to LibXML2 and cURL
1. Ensure that cURL and LibXML2 can find the OpenSSL and zlib includes and libraries that Apache was built with. 1. Ensure that cURL and LibXML2 can find the OpenSSL and zlib includes and libraries that Apache was built with.
@ -71,56 +71,54 @@ If OpenSSL and zlib support were included when you built Apache 2.2, and you wan
## Build ## Build
### PCRE-8.12 ### PCRE-8.40
CD C:\work\pcre-8.12 CD C:\work\pcre-8.40
CMAKE -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=True CMAKE -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=True
NMAKE NMAKE
### LibXML2-2.7.7 ### LibXML2-2.9.4
Note: the more recent version: 2.7.8 does not build correctly on Windows) CD C:\work\libxml2-2.9.4\win32
CD C:\work\libxml2-2.7.7\win32
CSCRIPT configure.js iconv=no vcmanifest=yes zlib=yes CSCRIPT configure.js iconv=no vcmanifest=yes zlib=yes
NMAKE -f Makefile.msvc NMAKE -f Makefile.msvc
### Lua-5.1.4 ### Lua-5.3.4
CD C:\work\lua-5.1.4\src CD C:\work\lua-5.3.4\src
CL /Ox /arch:SSE2 /GF /GL /Gy /FD /EHsc /MD /Zi /TC /wd4005 /D "_MBCS" /D "LUA_CORE" /D "LUA_BUILD_AS_DLL" /D "_CRT_SECURE_NO_WARNINGS" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WIN32" /D "_WINDLL" /c *.c CL /Ox /arch:SSE2 /GF /GL /Gy /FD /EHsc /MD /Zi /TC /wd4005 /D "_MBCS" /D "LUA_CORE" /D "LUA_BUILD_AS_DLL" /D "_CRT_SECURE_NO_WARNINGS" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WIN32" /D "_WINDLL" /c *.c
DEL lua.obj luac.obj DEL lua.obj luac.obj
LINK /DLL /LTCG /DEBUG /OUT:lua5.1.dll *.obj LINK /DLL /LTCG /DEBUG /OUT:lua5.1.dll *.obj
IF EXIST lua5.1.dll.manifest MT -manifest lua5.1.dll.manifest -outputresource:lua5.1.dll;2 IF EXIST lua5.1.dll.manifest MT -manifest lua5.1.dll.manifest -outputresource:lua5.1.dll;2
### cURL-7.21.4 ### cURL-7.54.0
CD C:\work\curl-7.21.4 CD C:\work\curl-7.54.0
CMAKE -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=True -DCURL_ZLIB=True CMAKE -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=True -DCURL_ZLIB=True
NMAKE NMAKE
### ModSecurity-2.6 ### ModSecurity-2.9.x
CD C:\work\mod_security\apache2 CD C:\work\mod_security\apache2
NMAKE -f Makefile.win APACHE=C:\Apache2217 PCRE=C:\work\pcre-8.12 LIBXML2=C:\work\libxml2-2.7.7 LUA=C:\work\lua-5.1.4\src NMAKE -f Makefile.win APACHE=C:\Apache2427 PCRE=C:\work\pcre-8.40 LIBXML2=C:\work\libxml2-2.9.4 LUA=C:\work\lua-5.3.4\src
## Install ModSecurity and run Apache ## Install ModSecurity and run Apache
Copy these five files to ``C:\Apache2217\bin``: Copy these five files to ``C:\Apache2427\bin``:
C:\work\pcre-8.12\pcre.dll C:\Apache2217\bin\ C:\work\pcre-8.40\pcre.dll C:\Apache2427\bin\
C:\work\lua-5.1.4\src\lua5.1.dll C:\Apache2217\bin\ C:\work\lua-5.3.4\src\lua5.1.dll C:\Apache2427\bin\
C:\work\libxml2-2.7.7\win32\bin.msvc\libxml2.dll C:\Apache2217\bin\ C:\work\libxml2-2.9.4\win32\bin.msvc\libxml2.dll C:\Apache2427\bin\
C:\work\curl-7.21.4\libcurl.dll C:\Apache2217\bin\ C:\work\curl-7.54.0\libcurl.dll C:\Apache2427\bin\
C:\work\mod_security\apache2\mlogc-src\mlogc.exe C:\work\mod_security\apache2\mlogc-src\mlogc.exe
Copy this one file to ``C:\Apache2217\modules``: Copy this one file to ``C:\Apache2427\modules``:
C:\work\mod_security\apache2\mod_security2.so C:\work\mod_security\apache2\mod_security2.so
You may also copy ``C:\work\curl-7.21.4\curl.exe`` to ``C:\Apache2217\bin``, if you want to use the cURL command-line program. You may also copy ``C:\work\curl-7.54.0\curl.exe`` to ``C:\Apache2427\bin``, if you want to use the cURL command-line program.
Download the core rules from http://sourceforge.net/projects/mod-security/files/modsecurity-crs/0-CURRENT/ and unzip them into ``C:\Apache2217\conf\modsecurity_crs`` Download the core rules from http://sourceforge.net/projects/mod-security/files/modsecurity-crs/0-CURRENT/ and unzip them into ``C:\Apache2427\conf\modsecurity_crs``
Add configuration directives to your Apache conf\httpd.conf: Add configuration directives to your Apache conf\httpd.conf:
@ -146,11 +144,11 @@ Add configuration directives to your Apache conf\httpd.conf:
Edit the top of ``C:\work\mod_security\apache2\mlogc-src\Makefile.win`` and set your local paths Edit the top of ``C:\work\mod_security\apache2\mlogc-src\Makefile.win`` and set your local paths
# Path to Apache httpd installation # Path to Apache httpd installation
BASE = C:\Apache2217 BASE = C:\Apache2427
# Paths to required libraries # Paths to required libraries
PCRE = C:\work\pcre-8.12 PCRE = C:\work\pcre-8.40
CURL = C:\work\curl-7.21.4 CURL = C:\work\curl-7.54.0
# Linking libraries # Linking libraries
LIBS = $(BASE)\lib\libapr-1.lib \ LIBS = $(BASE)\lib\libapr-1.lib \
@ -164,16 +162,16 @@ Build the ``mlogc.exe`` program:
CD C:\work\mod_security_trunk\mlogc CD C:\work\mod_security_trunk\mlogc
NMAKE -f Makefile.win NMAKE -f Makefile.win
Copy ``mlocg.exe`` to ``C:\Apache2217\bin\`` Copy ``mlocg.exe`` to ``C:\Apache2427\bin\``
Create a new command file ``C:\Apache2217\bin\mlogc.bat`` with one line: Create a new command file ``C:\Apache2427\bin\mlogc.bat`` with one line:
C:\Apache2217\bin\mlogc.exe C:\Apache2217\conf\mlogc.conf C:\Apache2427\bin\mlogc.exe C:\Apache2427\conf\mlogc.conf
Create a new configuration file ``C:\Apache2217\conf\mlogc.conf`` to control the piped-logging program ``mlogc.exe``. Create a new configuration file ``C:\Apache2427\conf\mlogc.conf`` to control the piped-logging program ``mlogc.exe``.
Here is an example ``conf\mlogc.conf``: Here is an example ``conf\mlogc.conf``:
CollectorRoot "C:/Apache2217/logs" CollectorRoot "C:/Apache2427/logs"
ConsoleURI "https://localhost:8888/rpc/auditLogReceiver" ConsoleURI "https://localhost:8888/rpc/auditLogReceiver"
SensorUsername "test" SensorUsername "test"
SensorPassword "testtest" SensorPassword "testtest"
@ -193,4 +191,4 @@ Here is an example ``conf\mlogc.conf``:
Change the SecAuditLog directive in ``conf\httpd.conf`` to pipe the log data to mlogc instead of writing them to a file: Change the SecAuditLog directive in ``conf\httpd.conf`` to pipe the log data to mlogc instead of writing them to a file:
SecAuditLog |C:/Apache2217/bin/mlogc.bat SecAuditLog |C:/Apache2427/bin/mlogc.bat