环境:Ubuntu 14.04
一、准备各种库文件
1、安装apache
apt-get install apache2
apt-get install apache2-dev
2、安装libapr和libapr-util
官网http://apr.apache.org/下载libapr和libapr-util压缩包
先安装libapr
./configure
make
sudo make install
再安装libapr-util,安装libapr-util需要带上apr的路径
./configure --with-apr=/usr/local/apr
make
sudo make install
3、安装libxml2
apt-get install libxml2
apt-get install libxml2-dev
4、安装lua
先安装libreadline-dev: sudo apt-get install libreadline-dev
make Linux 编译lua
make test 检验是否编译成功
5、安装libcurl
官网下载http://curl.haxx.se/libcurl/
编译安装
二、安装ModSecurity
Git clone git://github.com/SpiderLabs/ModSecurity.git
cd ModSecurity
./autogen.sh
./configure
报错:
configure: looking for Apache module support via DSO through APXS
configure: error: couldn't find APXS
解决:apt-get install apache2-dev
make
报错:
/usr/local/lib/liblua.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [mod_security2.la] Error 1
make[2]: Leaving directory `/home/hzwanghuiqi/Documents/ModSecurity/apache2'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/hzwanghuiqi/Documents/ModSecurity/apache2'
make: *** [all-recursive] Error 1
发现报错是因为lua库的问题,最终没解决,直接make uninstall将lua卸载了。
然后重新./autogen.sh ./configure make通过
sudo make install
cp /usr/local/modsecurity/lib/mod_security2.so /usr/lib/apache2/modules/
整个流程主要是参考https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual,但是实际操作过程中发现有些不一样。
在make阶段出现lua问题,应该是没有动态库导致的。在安装说明中讲到:ModSecurity需要的是动态库,而采用源代码编译时默认得不到这些,所以最好采用二进制发布版本。然而lua官网提供的二进制下载网址我无法打开,所以干脆直接卸载了lua。