コンテンツにスキップ

静的モジュールと動的モジュール


【Apache】静的モジュールと動的モジュール(DSOモジュール):ぱそ子のめも

http://pasoko-memo.blog.jp/archives/apache-dso-mod.html

超わかりやすい!

Apacheモジュールの概要

  • Apacheの機能はモジュールを追加することで拡張できる
  • Apacheの核となる「Core」がまずあり、そこへモジュールを追加して機能を拡張する
  • モジュール名は慣習的に「mod_XXX」と付けられる
  • モジュールは「静的リンク」または「動的リンク」により追加できる

静的モジュール概要

  • Apacheの実行ファイルそのものにモジュールを組み込む方式でApacheとモジュールはバイナリ的に一体化して動作する
  • 削除、追加には再インストールを行う必要がある
  • 本体とモジュールが一体で動作するため、モジュール組込みにかかる負荷が低くなる

動的モジュール概要

  • モジュールを別ファイルとして作成し、必要に応じてモジュールのファイルから機能を呼び出す方式
  • httpd.confのLoadModuleで有効、無効に設定し、動的にロードする
  • DSO(Dynamic Shared object)を使っている為DSOモジュールと呼ばれる ※DSO→モジュールをロード、アンロードする方式
  • 読み込む際に発生するオーバーヘッドにより、静的モジュールに比べて起動が遅くなったり、実行速度が若干低下する
  • DSOを使えるようにするにはビルド時にオプション指定する必要がある
  • DSOモジュールを組み込む方法は2通りある
    1. インストール時にconfigureで設定する方法
    2. apache拡張ツール(apxs/apache extension tool)を利用して組み込む方法

モジュールを確認する

静的モジュールを確認する

httpdコマンドのオプション-lで確認する

# /usr/local/httpd-2.2.16/bin/httpd -l

静的モジュール+DSOモジュールを確認する

httpdコマンドのオプション-Mで確認する。
※static→静的モジュール

※shared→動的(DSO)モジュール

# /usr/local/httpd-2.2.16/bin/httpd -M