1)我使用-with-yajl使用YAJL编译了modsecurity但是在配置日志中我看到yajl库没有被选中并且在modsecurity日志中我得到了 “未启用JSON支持”
答案 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"找到它。
希望这会对你有所帮助。