1

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

4

2 回答 2

2

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

要修复它,我必须制作 yajl,使用 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,然后再尝试制作。

于 2016-06-29T07:03:31.913 回答
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/ 位置。如果在那里找不到它,请尝试“find / -name yajl.pc”来定位它。

希望这对您有所帮助。

于 2016-03-01T09:31:04.043 回答