From d654bce272190d5c8ee0851353ebbd93fd91491a Mon Sep 17 00:00:00 2001
From: Yoshiki Hayashi Apache HTTP $B%5!<%P$O%b%8%e!<%k2=$5$l$?%W%m%0%i%`$G!"(B
- $B4IM} Apache HTTP $B%5!<%P(B $B%P!<%8%g%s(B 2.0 Apache HTTP $B%5!<%P$O%b%8%e!<%k2=$5$l$?%W%m(B$B%0%i%`$G!"(B
+ $B4IM} $B$3$NJ8=q$O(B DSO $B%b%8%e!<%k$N;H$$J}$H!"$=$NO@M}$K$D$$$F(B
+ $B$3$NJ8=q$O(B DSO $B%b%8%e!<%k$N;H$$J}$H!";EAH$_$K(B$B$D$$$F(B
$B@bL@$7$^$9!#(B $B8D!9$N(B Apache $B%b%8%e!<%k$r%m!<%I$9$k$?$a$N(B DSO $B%5%]!<%H$O(B
- Apache $B%b%8%e!<%kMQ$N(B ($BFC$K%5!<%I%Q!<%F%#%b%8%e!<%k$N(B) DSO $B%U%!%$%k$N(B
$B:n@.$r4JC1$K$9$k$?$a$K!"(Bapxs
(APache eXtenSion) $B$H$$$&?7$7$$%5%]!<%H%W%m%0%i%`$,$"$j$^$9!#(B
- Apache $B$N%=!<%9%D%j!<$N(B$B30$G(B DSO $B%b%8%e!<%k$r%S%k%I$9$k$?$a$K(B
+ Apache $B$N%=!<%9%D%j!<$N(B$B30(B$B$G(B DSO $B%b%8%e!<%k$r%S%k%I$9$k$?$a$K(B
$B;H$&$3$H$,$G$-$^$9!#H/A[$OC1=c$G$9(B: Apache $B$N%$%s%9%H!<%k;~$N(B
Apache 2.0 $B$N(B DSO $B5!G=$N35N,$rCN$k$3$H$,$G$-$k$?$a$N!"(B
$BC;$/4J7i$J35MW$G$9(B:$BF0E*6&M-%*%V%8%'%/%H(B (DSO) $B%5%]!<%H(B
-
- $BF0E*6&M-%*%V%8%'%/%H(B (DSO) $B%5%]!<%H(B
+ httpd
$B%P%$%J%j$H$O(B
$BJL$KB8:_$9$kF0E*6&M-%*%V%8%'%/%H(B ($BLuCm(B: Dynamic Shared Object)
- (DSO) $B$H$7$F%3%s%Q%$%k$9$k$3$H$b(B
+ (DSO) $B$H$7$F%3%s%Q%$%k$9$k$3(B$B$H$b(B
$B$G$-$^$9!#(BDSO $B%b%8%e!<%k$O%5!<%P$,%S%k%I$5$l$k$H$-$K%3%s%Q%$%k$7$?$j!"(B
Apache $B3HD%%D!<%k(B (apxs) $B$r(B
$B;H$C$F8e$G%3%s%Q%$%k$7$FDI2C$7$?$j$G$-$^$9!#(B$B
-
-
-
-
-
-
-
-
-
- $B4XO"%b%8%e!<%k(B
-
-
-
- mod_so
- $B4XO"%G%#%l%/%F%#%V(B
-
-
- LoadModule
- $B
+$B4XO"%b%8%e!<%k(B $B4XO"%G%#(B$B%l%/%F%#%V(B mod_so.c
$B$H$$$&%b%8%e!<%k$N(B
- $B5!G=$K4p$E$$$F$$$^$9!#$3$N%b%8%e!<%k(B $B$O(B Apache $B$N%3%"$K@EE*$KAH$_9~$^$l$F$$$k(B
- $BI,MW$,$"$j$^$9!#$=$l$O(B core.c
$B0J30$G$O(B DSO $B$K$G$-$J$$M#0l$N(B
+ mod_so.c
$B$H$$$&%b%8%e!<%k$N5!G=$K4p$E$$$F$$$^$9!#(B
+ $B$3(B$B$N%b%8%e!<%k(B $B$O(B Apache $B$N%3%"$K@EE*$KAH$_9~$^$l$F$$$kI,MW$,$"$j$^$9!#(B
+ $B$=$l$O(B core.c
$B0J30$G$O(B DSO $B$K$G$-$J$$M#0l$N(B
$B%b%8%e!<%k$G$9!#;ve!"B>$N$9$Y$F$N(B Apache $B$N%b%8%e!<%k$O!"(B
$B%$%s%9%H!<%k$NJ8=q(B$B$G@bL@$5$l$F$$$k$h$&$K!"(B
configure
$B$N(B
- --enable-module=shared
$B%*%W%7%g%s$G$=$l$>$l$r(B
+ --enable-module=shared
$B%*%W%7%g%s$G$=$l$>$l$r(B
DSO $B%S%k%I$K$9$k$3$H$K$h$j!"(BDSO $B%b%8%e!<%k$K$9$k$3$H$,$G$-$^$9!#(B
mod_foo.so
$B$N$h$&$J(B DSO $B$K%b%8%e!<%k$,%3%s%Q%$%k$5$l$l$P!"(B
- httpd.conf
$B%U%!%$%kCf$G(B
- mod_so
$B$N(B
- LoadModule
+ httpd.conf
$B%U%!%$%kCf$G(B mod_so
$B$N(B
+ LoadModule
$B%G%#%l%/%F%#%V$r;H$&$3$H$G%5!<%P$N5/F0$d:F5/F0;~$K$3$N%b%8%e!<%k$r(B
$B%m!<%I$9$k$h$&$K$G$-$^$9!#(Bconfigure
$B!"(Bmake install
$B$N$H$-$K(B Apache $B$N(B
C $B%X%C%@$r%$%s%9%H!<%k$7!"(BDSO $B%S%k%IMQ$N%W%i%C%H%U%)!<%`0MB8$N(B
@@ -85,8 +48,7 @@
DSO $B%5%]!<%H$N$?$a$N%W%i%C%H%U%)!<%`0MB8$N%3%s%Q%$%i$d%j%s%+$N(B
$B%U%i%0$r$$$8$k$3$H$J$/(B Apache $B$N%b%8%e!<%k$N%=!<%9$r%3%s%Q%$%k(B
$B$G$-$k$h$&$K$J$j$^$9!#(B$B;HMQK!$N35MW(B
+$B;HMQK!$N35MW(B
mod_foo.c
$B$H$7$F!"$=$l$r(B DSO mod_foo.so
$B$K%S%k%I!"%$%s%9%H!<%k(B:
-
-
+
-
-
-
-
-$ ./configure --prefix=/path/to/install
- --enable-foo=shared
+
+$ ./configure --prefix=/path/to/install --enable-foo=shared
$ make install
-
- mod_foo.c
$B$H$7$F!"$=$l$r(B DSO mod_foo.so
$B$K%S%k%I!"%$%s%9%H!<%k(B:
-
-
+
-
-
-
-
-$ ./configure --add-module=module_type:/path/to/3rdparty/mod_foo.c
- --enable-foo=shared
+
+$ ./configure --add-module=module_type:/path/to/3rdparty/mod_foo.c --enable-foo=shared
$ make install
-
-
-
+
-
-
-
-
-$ ./configure --enable-so
+
+$ ./configure --enable-so
$ make install
-
-
-
+
-
-
-
-
-$ cd /path/to/3rdparty
-$ apxs -c mod_foo.c
+
+$ cd /path/to/3rdparty
+$ apxs -c mod_foo.c
$ apxs -i -a -n foo mod_foo.la
-
-
$B$I$N>l9g$K$*$$$F$b!"6&M-%b%8%e!<%k$r%3%s%Q%$%k$7$?8e$G!"(B
- httpd.conf
$B$G(B LoadModule
+ httpd.conf
$B$G(B
+ LoadModule
$B%G%#%l%/%F%#%V$r;H$C$F(B Apache $B$,%b%8%e!<%k$r;HMQ$9$k$h$&$K(B
$B$7$J$1$l$P$J$j$^$;$s!#(B
$B:G6a$N(B Unix $B7O$N(B OS $B$K$O(B $BF0E*6&M-%*%V%8%'%/%H(B (DSO)
$B$NF0E*%j%s%/(B/$B%m!<%I$H$$$&5$$N$-$$$?5!9=$,(B
@@ -226,7 +161,7 @@ $ apxs -i -a -n foo mod_foo.la
dlsym()
$B$r;H$C$F$$$/$D$+$N%7%s%\%k$r2r7h$7$^$9!#(B
$B$9$J$o$A(B: $B
$B>e5-$N(B DSO $B$K4p$E$$$?5!G=$O0J2<$NMxE@$,$"$j$^$9(B:
LoadModule
+ $BLoadModule
$B$r;H$&$3$H$,$G$-$^$9$N$G!"%5!<%P%Q%C%1!<%8$N=@Fp@-$,9b$^$j$^$7$?!#(B
$B$?$H$($P!"0l$D$N(B Apache $B$N%$%s%9%H!<%k$+$i(B
$B0c$&9=@.$N%5!<%P(B ($BI8=`HG$H(B SSL $BHG!":G>.9=@.$H3HD%HG(B [mod_perl, PHP3]
@@ -297,7 +231,7 @@ $ apxs -i -a -n foo mod_foo.la
dlopen ()
$B$r;H$C$F%3!<%I$r<+J,<+?H$G%m!<%I$9$k$+$N(B
$B$I$A$i$+$7$+$"$j$^$;$s!#(B
- $B4XO"%b%8%e!<%k(B - - mod_actions - mod_asis - mod_cgi - mod_imap - mod_info - mod_mime - mod_negotiation - mod_status - |
-
- $B4XO"%G%#%l%/%F%#%V(B - - Action - AddHandler - RemoveHandler - SetHandler - |
-
Apache HTTP $B%5!<%P(B $B%P!<%8%g%s(B 2.0
Apache $B$N%O%s%I%i$N;HMQ$K4X$7$F5-=R$7$F$$$^$9!#(B
+$B4XO"%b%8%e!<%k(B | $B4XO"%G%#(B$B%l%/%F%#%V(B |
---|---|
$B!V%O%s%I%i!W$H$O!"%U%!%$%k$,8F$P$l$?$H$-$K
$B%O%s%I%i$O%5!<%P$KAH$_9~$s$@$j!"%b%8%e!<%k$H$7$F4^$a$?$j!"(B
- Action
+ Action
$B%G%#%l%/%F%#%V$H$7$FDI2C$7$?$j$9$k$3$H$,$G$-$^$9!#(B
$B0J2<$OI8=`G[I[$KAH$_9~$^$l$F$$$k%O%s%I%i$G$9!#(B
default_handelr()
$B$r;H$C$F%U%!%$%k$rAw$j$^$9!#(B
$B@EE*$J%3%s%F%s%D$r07$&$H$-$K%G%U%)%k%H$G;HMQ$5$l$k%O%s%I%i$G$9!#(B
- (core)core
)
+
mod_asis
)mod_cgi
)
+
mod_imap
)
mod_info
)
mod_status
)
mod_negotiation
)
- $B0J2<$N%G%#%l%/%F%#%V$K$h$C$F!"3HD%;R$,(B html
- $B$G$"$k%U%!%$%k$O(B footer.pl
- CGI $B%9%/%j%W%H$r5/F0$9$k$h$&$K$J$j$^$9!#(B
- Action add-footer /cgi-bin/footer.pl - AddHandler add-footer .html -- -
CGI $B%9%/%j%W%H$OK>$^$7$$=$@5$dDI2C$r9T$J$C$F!"85!9MW5a$5$l$?J8=q(B
- ($B4D6-JQ?t(B PATH_TRANSLATED
- $B$G;X$5$l$F$$$^$9(B) $B$rAw$k@UG$$,$"$j$^$9!#(B
-
$B0J2<$N%G%#%l%/%F%#%V$O(B send-as-is
- $B%O%s%I%i$r;HMQ$9$k$h$&$K;X<($7$^$9!#$3$N%O%s%I%i$O<+J,<+?H$N(B HTTP
- $B%X%C%@$r;}$C$F$$$k%U%!%$%k$K;HMQ$5$l$^$9!#$3$3$G$O!"3HD%;R$K4X$o$i$:!"(B
- /web/htdocs/asis
$B%G%#%l%/%H%j$K$"$kA4$F$N%U%!%$%k$O(B
- send-as-is
$B%O%s%I%i$K$h$C$F07$o$l$^$9!#(B
-
- <Directory /web/htdocs/asis> - SetHandler send-as-is - </Directory> --
$B%O%s%I%i$N5!G=$r $B0J2<$N%G%#%l%/%F%#%V$K$h$C$F!"3HD%;R$,(B CGI $B%9%/%j%W%H$O4uK>$N=$@5$dDI2C$r9T$J$C$F!"85!9MW5a$5$l$?J8=q(B
+ ($B4D6-JQ?t(B $B0J2<$N%G%#%l%/%F%#%V$O(B $B%O%s%I%i$N5!G=$r $B$b$7%b%8%e!<%k$,%O%s%I%i$K4X$o$j$?$$>l9g!"(B
$B$d$i$J$1$l$P$J$i$J$$$3$H$O!"%j%/%(%9%H$,(B $BNc(B
+
+
+ CGI $B%9%/%j%W%H$rMQ$$$F@EE*$J%3%s%F%s%D$rJQ99$9$k(B
+
+
+ html
+ $B$G$"$k%U%!%$%k$O(B footer.pl
+ CGI $B%9%/%j%W%H$r5/F0$9$k$h$&$K$J$j$^$9!#(B
+ Action add-footer /cgi-bin/footer.pl
+ AddHandler add-footer .html
+ PATH_TRANSLATED
+ $B$G;X$5$l$F$$$^$9(B) $B$rAw$k@UG$$,$"$j$^$9!#(B
+ HTTP $B%X%C%@$N$"$k%U%!%$%k(B
+
+
+ send-as-is
+ $B%O%s%I%i$r;HMQ$9$k$h$&$K;X<($7$^$9!#$3$N%O%s%I%i$O<+J,<+?H$N(B HTTP
+ $B%X%C%@$r;}$C$F$$$k%U%!%$%k$K;HMQ$5$l$^$9!#$3$3$G$O!"3HD%;R$K4X$o$i$:!"(B
+ /web/htdocs/asis
$B%G%#%l%/%H%j$K$"$kA4$F$N%U%!%$%k$O(B
+ send-as-is
$B%O%s%I%i$K$h$C$F07$o$l$^$9!#(B
+ <Directory /web/htdocs/asis>
+ SetHandler send-as-is
+ </Directory>
+ $B%W%m%0%i%^8~$1$N%a%b(B
+
+
+ request_rec
$B9=B$BN$K?7$7$$%l%3!<%I$,DI2C$5$l$?$H$$$&$3$H$G$9!#(B
- char *handler
-
+
+
+ char *handler
+
invoke_handler
@@ -154,6 +115,4 @@
$BI,$:MW5a$5$l$F$$$k$o$1$G$O$"$j$^$;$s$,!"%a%G%#%"%?%$%W(B
$B$NL>A06u4V$r?/$5$J$$$h$&$K!"%O%s%I%i$NL>A0$K$O%9%i%C%7%e$r4^$^$J$$!"(B
$B%@%C%7%e(B ($BLuCm(B: "-") $B$GJ,N%$5$l$?L>A0$rIU$1$k=,47$K$J$C$F$$$^$9!#(B
Apache HTTP Server Version 2.0