こんにちは、アパッチ
ついにモジュールの開発を始めちゃいます。
まずはApacheが立ち上がる事を確認しておきます。
OS Xの場合はシステム環境設定
から共有
を開き、パーソナルWeb共有
を開始するとApacheが起動します。なぜか一般ユーザの権限で開始できます。
Apacheが起動できたら
を開いて動作を確認します。
あなたの予想に反して、このページが見えているでしょうか?
予想には反しておりません。
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!
ヤッター!ヒトリデデキタヨー!