1) --with-yajl を使用して YAJL を使用して modsecurity をコンパイルしましたが、構成ログで yajl ライブラリが選択されていないことがわかり、modsecurity ログで「JSON サポートが有効になっていませんでした」と表示されます。
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
てから再度作成してください。
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 」を実行して見つけてください。
これがお役に立てば幸いです。