2014年2月27日木曜日

apache moduleを作成(出力できる項目を確認してみる)

 pwd
/home/joji/apache_module
apxs -g -n reqinfo
Creating [DIR]  reqinfo
Creating [FILE] reqinfo/Makefile
Creating [FILE] reqinfo/mod_reqinfo.c
  vi /usr/local/apache/conf/httpd.conf
こちらを追記(locationタグを新たに作成して下さい。本来は<>でくくります。)
Location /hello
  SetHandler reqinfo
/Location
vi /home/joji/apache_module/reqinfo/mod_reqinfo.c
/*
r->header_only
HEADやOPTIONSメソッドなど、ヘッダだけを要求するリクエストの場合は
header_onlyフィールドに真がセットされる。
GETやPOSTなど、コンテンツを要求するリクエストの場合はfalseがセットされます。
*/
static int reqinfo_handler(request_rec *r)
{
    r->content_type = "text/html";
    ap_send_http_header(r);
    /*if (!r->header_only)
      return OK;*/
    ap_rputs("\n", r);
    ap_rprintf(r, "URI: %s\n", r->uri);
    ap_rprintf(r, "Query String: %s\n", r->args ? r->args : "" );
    ap_rprintf(r, "Client Host: %s\n", r->connection->remote_ip);
    ap_rputs("", r);

    return OK;
}
cd /home/joji/apache_module/reqinfo
make
make install
このURLにアクセスすると http://192.168.12.5:8080/reqinfo?helloworld このように表示されます。 URI: /reqinfo Query String: helloworld Client Host: 192.168.12.3

0 件のコメント: