Apache2.4のmakeができたので、次は追加で入れているモジュールを作ろうとしたらエラーが出た。
mod_allowlist は自前のモジュールでSQLite3に登録しているIPを元にアクセス可否を行うのだけれど、
アクセス元のIPアドレスを利用している所でコケている。
という訳で、ここで初めてAPIの変更点を見てみる。
https://httpd.apache.org/docs/2.4/developer/new_api_2_4.html
プロクシを利用している場合とわけるために変数名が変わったと言うことらしい。
conn_rec->remote_ip は conn_rec->client_ip に、
conn_rec->remote_addr は conn_rec->client_addr を使うと良いようだ。
次、mod_limitipconn のエラーはこんな感じ
remote_ip はさっきと同じなのでサクッと修正。
ap_default_type は2.4で無くなっている事が判明したので、適当に”text/html”でmimeタイプを決め打ち。
ap_get_scoreboard_worker は、引数のタイプと数が変更になっていて ap_sb_handle_t のポインタを渡してやらなければならない。
が、どうも scoreboard.h の ap_sb_handle_t の定義が怪しく、 ap_sb_handle_t を使おうとすると怒られる。
さて、どうしたものか。と思いきや、 scoreboard.h に以前の使い方で動きそうなAPIを発見。
ap_get_scoreboard_worker を ap_get_scoreboard_worker_from_indexes に置き換えてmakeを通す。
subversion-1.7.3 の mod_dav_svn では、以下のエラー
これは、dav_error は無くなっていて、代わりに apr_status_t型の aprerr に項目が変わっている。
結局はintで持ってるっぽいので、単純に項目名を変えて対処。
mod_security2 は、2.6.3でconn_rec絡みの変更点が入っているので、最新版を取ってきてmakeでOK。
php-5.4.0 の libphp5.so は普通にmakeが通る。
これで、ひとまず自分の使っているモジュールは全部2.4対応となった。
ソースを弄ったのは確認してからでないと実運用は無理だけど。
コメントを残す