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 に答える