WebサーバをApache2.4系に移行させた。

入れ替え前後はkonata.net内で色々遊んでいたので、臨時用2ch串のユーザさんなんかは
モロに影響を被ったかもしれない。
まぁ、個人でやってる鯖なので商用並みの安定運用を期待されても困るのだけれど。

そんな訳で、Apache2.4系に入れ替えるにあたって、httpd.confとか.htaccessとか、
臨時用2ch串のconfとかをあーでもないこーでもないやりながら書き換えた。

旧来のアクセス制御のお約束だった↓みたいのは、全部Requireディレクティブに置き換え。

Order deny,allow
deny from all
allow from 192.xxx.xxx.xxx/24

こんな感じに

Require expr %{REMOTE_ADDR} -ipmatch ‘192.xxx.xxx.xxx/24’

臨時用2ch串で使っていたhtml内のURL書き換えについても、
mod_ext_filterからmod_sedと<If>ディレクティブを使うように書き換え。
mod_ext_filterは使いやすくて、多機能ではあるのだけれど、
フィルタするコマンドをいちいちプロセス起こすのでむちゃくちゃ遅い。
2.4系からはApacheのモジュールで完結できるので、画面表示は随分早くなるはず。
書き込みはphpでhttpリクエスト作ってるので遅いけど。

ついでに、makeを通すだけだったmod_allowlistを、
エラーログにApache2.4からの[hogehoge:notice]みたいな[モジュール名:ログレベル]を
表示するように変更。
これについては、他の2.4のモジュールのソースを参考にした。

モジュール定義の以下を

module AP_MODULE_DECLARE_DATA hogehoge_module =

こう変える、

AP_DECLARE_MODULE(hogehoge) =

が、AP_DECLARE_MODULE は ap_hook_access_checker を通してくれず、
ap_hook_check_access_ex を使う必要があって、パラメータも増えているので、
そこは適宜直す。

本当はphpも5.4.0にバージョンアップしてしまいたかったのだけれど、
Nucleusを使おうとすると、phpモジュールの中で落ちるのでphpはそのままで。
Nucleusの4.0が出たらもう一度試したい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です