未启用JSON支持 - Modsecurity

时间:2016-02-04 13:48:49

标签: mod-security yajl

1)我使用-with-yajl使用YAJL编译了modsecurity但是在配置日志中我看到yajl库没有被选中并且在modsecurity日志中我得到了 “未启用JSON支持”

2 个答案:

答案 0 :(得分:2)

我最初的mod_security使用PHP 5.5和Apache 2.4,使用Ubuntu 12.04,但在启用JSON请求检查后,我收到了与您报告的相同的错误。

要修复它,我必须使用yajl configure选项进行yajl,重新编译mod_security,然后确保Apache使用更新的mod_security,并重新启动Apache。

mod_security然后能够成功解析json请求正文,而不再输出错误。

我转到http://lloyd.github.io/yajl/找到了yajl-2.1.0的下载包,然后引用了https://gist.github.com/rpfilomeno/1140359f4bd360137a98

例如:

tar -xvzf lloyd-yajl-2.1.0-0-ga0ecdde.tar.gz cd lloyd-yajl-66cb08c/ sudo ./configure sudo make sudo make install sudo ldconfig 那应该安装yajl。然后cd到包含mod_security文件的文件夹,然后运行

cd ../modsecurity-2.9.1/ sudo ./configure --with-yajl="/usr/local/lib /usr/local" sudo make sudo make install

然后我将其配置为使用Apache 2.4运行,并且能够使用JSON正文解析请求。

*请注意,在制作yajl时,如果有关于未安装cmake的错误,请运行以下sudo apt-get install cmake,然后再尝试重新创建。

答案 1 :(得分:0)

检查config.log是否有以下内容

checking for libyajl config script... no
checking for yajl install... no
configure: optional yajl library not found

然后创建一个指向yajl.pc的链接

# ln -s /usr/local/share/pkgconfig/yajl.pc /usr/share/pkgconfig/yajl.pc

在我的情况下,文件yajl.pc位于/ usr / local / share / pkgconfig / location中。如果你找不到它,试试" find / -name yajl.pc"找到它。

希望这会对你有所帮助。