1) Я скомпилировал modsecurity, используя YAJL, используя --with-yajl, но в журнале конфигурации я вижу, что библиотека yajl не выбрана, а в журнале modsecurity я получаю «Поддержка JSON не была включена»
Поддержка JSON не была включена-Modsecurity
Ответы (2)
Первоначально у меня mod_security работал с PHP 5.5 и Apache 2.4, с Ubuntu 12.04, но после включения проверки запросов JSON я получил ту же ошибку, о которой вы сообщили.
Чтобы исправить это, мне пришлось сделать yajl, перекомпилировать mod_security с параметром конфигурации yajl, а затем убедиться, что 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
, а затем повторите попытку.
Проверьте свой 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", чтобы найти его.
Надеюсь, это поможет вам.