こんにちは、アパッチ

ついにモジュールの開発を始めちゃいます。

まずはApacheが立ち上がる事を確認しておきます。
OS Xの場合はシステム環境設定から共有を開き、パーソナルWeb共有を開始するとApacheが起動します。なぜか一般ユーザの権限で開始できます。

Apacheが起動できたら

http://localhost/

を開いて動作を確認します。

あなたの予想に反して、このページが見えているでしょうか?

予想には反しておりません。

Apacheの動作が確認できたらモジュールの開発に取りかかります。まずはモジュールのひな形を作ります。ひな形の生成には、PHPのインストールなどでも度々お世話になるapxsコマンドを使用します。
適当なディレクトリに移動してからapxsコマンドを実行します。

$ apxs -g -n helloapache
Creating [DIR]  helloapache
Creating [FILE] helloapache/Makefile
Creating [FILE] helloapache/mod_helloapache.c

オプション-gがモジュールのひな形生成を意味し、-nでモジュールの名前を指定します。
コマンドが正常に終了すると、指定したモジュール名のディレクトリとその下に2つのファイルが生成されます。モジュール開発では主にここで生成された.cのファイルをいじっていきます。

mod_helloapache.cファイルを開くと

static int helloapache_handler(request_rec *r)
{
    r->content_type = "text/html";      
    ap_send_http_header(r);
    if (!r->header_only)
        ap_rputs("The sample page from mod_helloapache.c\n", r);
    return OK;
}

という関数が見つかるので、とりあえずap_rputs部分の内容を書き換えて

        ap_rputs("Hello, Apache!\n", r);

として保存します。

$ make
$ sudo -s
# make install

makeでビルドが、make installでモジュールの配置とhttpd.confへの設定追加が行われます。

LoadModule helloapache_module libexec/httpd/mod_helloapache.so
(略)
AddModule mod_helloapache.c

至れり尽くせりですなあ。

httpd.confに先ほどのモジュールを呼び出す設定を追加します。

<Location /helloapache>
    SetHandler helloapache
</Location>

最後にApacheを再起動してモジュールと設定を読み込ませます。Makefileに再起動するためのターゲットが設定されているので

# make restart

Apacheが再起動します。

早速ブラウザで設定したパスを開いてみます。


Hello, Apache!
こんにちは!
ヤッター!ヒトリデデキタヨー!