Äîêóìåíò âçÿò èç êýøà ïîèñêîâîé ìàøèíû. Àäðåñ
îðèãèíàëüíîãî äîêóìåíòà
: http://www.arcetri.astro.it/manual/ko/programs/apxs.html
Äàòà èçìåíåíèÿ: Mon Jan 21 19:44:30 2013 Äàòà èíäåêñèðîâàíèÿ: Fri Feb 28 05:57:14 2014 Êîäèðîâêà: ISO8859-5 Ïîèñêîâûå ñëîâà: ï ï ï ï ï ï ï ï ï ï ï ï ï |
Apache HTTP Server Version 2.2
apxs
ÄÒ ÎÖÖÔÔÅ ×ßÐÜÖëÕèÍÊÖ? Ð?Ìë ×ÑÇÞÕôÔí
(HTTP) Ì-É?Ð× Ø?ÐõÈ?ÅòÐË ÔÔÖÔÐß×ßÀý ÌÃÔÅ×ßÄÒ ÅÅÁÈÐÜÄé. ÐÜ
ÅÅÁÈÄÒ Ï?Ç? ÌâÍÊÏÝ ÏÐÊúÑ?Ö?ÖÔÐßÐË ÀÅÑ?Àý,
mod_so
Ð× LoadModule
Ñ?ÍÓÎþÇÞ Í××ðÑïÏÅ
ÎÖÖÔÔÅ Ì-É?ÇÞ ÐàÎþÅùÐß Ì? ÐæÄÒ ÅÏÐ?À?Ð?ÀÄÓÌ(DSO)È? ÈÈÅ÷Äé.
ÁçÇÅÌ- ÐÜÇÁ Ø?ÐõÉöÍÔÐË Ë÷Ïû×ßÇÑÈù ×ÓÇÅÖ?ÐÜ DSO ÁòÄÙÐË
Ñ?Ï?×ßÀý ÎÖÖÔÔÅ httpd
Í××ðÖÔÐßÐË
mod_so
È?ÅòÀ? ÀÀÐÜ ÔÔÖÔÐß×èÎï ×áÄé.
apxs
ÅÅÁÈÄÒ ÐÜ ÑÆÀ×ÐÜ ÈÈÑÇ×ßÑ?ÎÚÐÈÈù Í××ð×ßÑ?
ÎÚÄÒÄé. Ñ?Ñ? ÈýÇÙÎþÈ? Í××ð×ßÏ? ÑÆÀ×ÐÜ ÈÈÑÇ×ßÄÒÑ? ÎÛÎÖÊÌ
Ì? ÐæÄé
$ httpd -l
ÈåÇßÏÅ mod_so
È?ÅòÐÜ Ã?ÏÝÎï ×áÄé. ÑÆÀ×ÐË
ÈÈÑÇ×ßÈù apxs
ÅÅÁÈÇÞ DSO È?ÅòÐË ÌÃÔÅ×ßÏ?
ÎÖÖÔÔÅÌ-É?Ð× ÁòÄÙÐË ÍÁÀä Ø?Ðõ×â Ì? ÐæÄé:
$ apxs -i -a -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
cp mod_foo.so /path/to/apache/modules/mod_foo.so
chmod 755 /path/to/apache/modules/mod_foo.so
[activating module `foo' in /path/to/apache/etc/httpd.conf]
$ apachectl restart
/path/to/apache/sbin/apachectl restart: httpd not running, trying to start
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
/path/to/apache/sbin/apachectl restart: httpd started
$ _
ÎÖÁäÈåÖ? filesÏÅÄÒ C ÌâÍÊÖÔÐß (.c) ÐÜÃ?
ÏÐÊúÑ?Ö?ÖÔÐß (.o), Æ?ÐÜÊúÇ?È?È?ÐÍ (.a)ÐË Ë÷Ïû×â Ì? ÐæÄé.
apxs
ÅÅÁÈÄÒ Ø?ÐõÐêÈ? ÊÈÀý ÐêÅÏÐÈÇÞ C ÌâÍÊÖÔÐßÐÊ
ÔÔÖÔÐß×ßÀý, ÏÐÊúÑ?Ö?ÏÝ È?ÐÍÖÔÐßÐÊ ÈÅÕ?ÏÅÈÈ Ë÷Ïû×áÄé. ÁçÇ?Ã?
ÔÔÖÔÐß×á ÏÐÊúÑ?Ö?È? Ë÷Ïû×ßÇÑÈù ÅÏÐ?ÐÈÇÞ ÐàÎþÅùÐß Ì? ÐæÄÒ
À?Ð?ÀÄÓÌÇÞ Ë÷Ïû×ßÁòÐ?×è ÉíÅõÍÓ ÏÐÊúÑ?Ö?È? Ð?ÔÅÅÆÈÃÔêÅõ(PIC,
position independent code)ÇÞ ÔÔÖÔÐß×èÎï ×áÄé. GCCÐ× ÀöÏü
-fpic
ÐË Ë÷Ïû×ßÈù ÅØÄé. ÄéÈ? C ÔÔÖÔÐßÇ?ÄÒ ÌÃÈýÌ-È?
Ò?Àý×ßÀÕÃ? apxs
ÀÅ ÏÐÊúÑ?Ö?ÖÔÐßÐË ÔÔÖÔÐß×âÆ?
Ë÷Ïû×ßÄÒ ÏÙÌ×ÐË Ò?Àý×ßÆ?.
ÎÖÖÔÔÅÐ× DSO Ñ?Ï?ÏÅ Äû×á Ä? ÐêÌÌ×á ÃËÏûÐÊ
mod_so
É?Ì-È? Ò?Àý×ßÀÕÃ?
src/modules/standard/mod_so.c
ÌâÍÊÖÔÐßÐË ÐàÎþÊÑÆ?.
apxs -g
[ -S name=value ]
-n modname
apxs -q
[ -S name=value ]
query ...
apxs -c
[ -S name=value ]
[ -o dsofile ]
[ -I incdir ]
[ -D name=value ]
[ -L libdir ]
[ -l libname ]
[ -Wc,compiler-flags ]
[ -Wl,linker-flags ]
files ...
apxs -i
[ -S name=value ]
[ -n modname ]
[ -a ]
[ -A ]
dso-file ...
apxs -e
[ -S name=value ]
[ -n modname ]
[ -a ]
[ -A ]
dso-file ...
-n modname
-i
(install)À? -g
(template
generation) ÏÙÌ×ÐË Ë÷Ïû×âÆ? Ñ?Ñ? È?ÅòÈýÐË Ñ?Ñ?×áÄé. ÐÜ
ÏÙÌ×ÐË Ë÷Ïû×ßÏ? È?ÅòÈýÐË Ñ?Ñ? Ñ?Ñ?×áÄé. -g
ÏÙÌ×ÐË Ë÷Ïû×áÄéÈù ÐÜ ÏÙÌ×ÐË ÉíÅõÍÓ Ë÷Ïû×èÎï×ßÀý,
-i
ÏÙÌ×ÐË Ë÷Ïû×áÄéÈù apxs
ÅÅÁÈÄÒ
ÌâÍÊÃ? (ÈÆÑ?ÈÇ ÍÓÅÅÇÞ) ÖÔÐßÈýÐË ÀÅÑ?Àý ÐÜÈ?ÐË ÓïÓ?×áÄé.-q
apxs
Ð× ÌÃÑ?À?ÐË ÎÛÎÖÃÍÄé. queryÏÅÄÒ
ÄéÐÍÐË Ë÷Ïû×â Ì? ÐæÄé: CC
, CFLAGS
,
CFLAGS_SHLIB
, INCLUDEDIR
,
LD_SHLIB
, LDFLAGS_SHLIB
,
LIBEXECDIR
, LIBS_SHLIB
,
SBINDIR
, SYSCONFDIR
, TARGET
.
ÌÃÑ?ÐË Ñ?Ñ? ÎÛÎÖÃÎÆ? Ë÷Ïû×áÄé.
INC=-I`apxs -q INCLUDEDIR`
ÏÉÈ? ÅùÎþ, ÎÖÖÔÔÅ C ×üÄ?ÖÔÐßÐË Ñ?Ñ? Ñ?Áé×áÄéÈù MakefileÏÅÌ- Ð?ÏÝ ÀÀÐÜ Ë÷Ïû×áÄé.
-S name=value
-g
-n
ÏÙÌ× Ò?Àý) ÁçÀ?ÏÅ ÖÔÐß ÅÞÀÃÈ? ÈÈÅ÷Äé: ×á ÖÔÐßÐÊ
mod_name.c
Æ?ÄÒ ÀïÊË È?ÅòÌâÍÊÖÔÐßÇÞ,
ÐêÍÕÐ× È?ÅòÐË ÈÈÅùÆ? ÀïÊËÐÈÇÞ Ë÷Ïû×ßÀÕÃ? apxs ÁòÄÙÐË
ÍÓ×ø×èÊÌÆ? Ë÷Ïû×áÄé. ÄéÈ? ÖÔÐßÐÊ ÐÜ È?ÅòÐË ÍÁÀä ÔÔÖÔÐß×ßÀý
ÌÃÔÅ×ßÁòÐ?×á Makefile
ÐÜÄé.-c
-o
ÏÙÌ×ÐË Ë÷Ïû×ßÑ?ÎÚÐÈÈù filesÐ×
ÓÉÉ?ÒÀ ÖÔÐßÈýÏÅÌ- ÐÜÈ?ÐË ÓïÓ?×ßÏ? ÊÈÕû
mod_name.so
È? Ë÷Ïû×áÄé.-o dsofile
mod_unknown.so
È? ÐÜÈ?ÐÈÇÞ
Ë÷Ïû×áÄé.-D name=value
-I incdir
-L libdir
-l libname
-Wc,compiler-flags
libtool --mode=compile
ÈýÇÙÎþÇÞ Ð?Äî×áÄé.
ÔÔÖÔÐßÇ? Ö?Ð?Ð× ÏÙÌ×ÐË ÓïÀÅ×âÆ? Ë÷Ïû×áÄé.-Wl,linker-flags
libtool --mode=link
ÈýÇÙÎþÇÞ Ð?Äî×áÄé. ÈÅÔÏ
Ö?Ð?Ð× ÏÙÌ×ÐË ÓïÀÅ×âÆ? Ë÷Ïû×áÄé.-i
-a
httpd.conf
ÌÃÑ?ÖÔÐßÏÅ Ð?Ð×á
LoadModule
ÑéÐË
ÓïÀÅ×ßÀÕÃ? ÐÜÉÜ ÐæÄéÈù ØÀÌÊØ-×ßÏ? È?ÅòÐË Ë÷Ïû×ßÅÅÇß
ÈÈÅ÷Äé.-A
-a
ÏÝ ÊåÍÑ×ßÑ?ÈÈ, LoadModule
Ñ?ÍÓÎþ ÎåÏÅ
ÏüÉÀÑ?Ðê(#
)È? ÊéÐÞÄé. Ñÿ, ×?Ð÷ÄÒ
Ë÷Ïû×ßÑ?ÎÚÑ?ÈÈ Ã?ÑïÏÅ Ë÷Ïû×â Ì? ÐæÅÅÇß È?ÅòÐË ÑèÊå×áÄé.-e
-a
Ø?ÐÊ -A
ÏÙÌ×À? ÀÀÐÜ Ë÷Ïû×â Ì? ÐæÐÈÈ÷, -i
ÈýÇÙÀ?
ÊåÍÑ×ßÑ?ÈÈ È?ÅòÐË ÌÃÔÅ×ßÑ?ÎÚÀý ÎÖÖÔÔÅ
httpd.conf
ÌÃÑ?ÖÔÐßÈÈ ÖýÑ×áÄé.ÎÖÖÔÔÅÌ-É?Ð× ÁòÄÙÐË Ø?Ðõ×ßÄÒ mod_foo.c
Æ?ÄÒ
ÎÖÖÔÔÅ È?ÅòÐÜ ÐæÄéÀý ÀÅÑ?×ßÐê. ÈåÐ? ÄéÐÍ ÈýÇÙÎþÈ? Ë÷Ïû×ßÏ?
C ÌâÍÊÈ? ÎÖÖÔÔÅ Ì-É?ÀÅ ÐàÎþÅùÐß À?Ð?ÀÄÓÌÇÞ ÔÔÖÔÐß×áÄé:
$ apxs -c mod_foo.c
/path/to/libtool --mode=compile gcc ... -c mod_foo.c
/path/to/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo
$ _
ÁçÈ?Àý ÐÜ À?Ð?ÀÄÓÌÈ? ÐàÎþÅùÐÜÄÒ LoadModule
Ñ?ÍÓÎþÈ? ÎÖÖÔÔÅ
ÌÃÑ?ÏÅ ÓïÀÅ×áÄé. apxs
ÄÒ ÐêÅÏÐÈÇÞ À?Ð?ÀÄÓÌÈ?
"modules" Å?ÇÊÕôÈ?ÏÅ ÌÃÔÅ×ßÀý httpd.conf
ÖÔÐßÐË
ÎÛÈÒÀä Ì?Ñ?×ßÏ? À?ÄìØ? ÐëÎ?ÐË ÈÆÔ?Äé. ÄéÐÍ ÀÀÐÜ Í××ð×áÄé:
$ apxs -i -a mod_foo.la
/path/to/instdso.sh mod_foo.la /path/to/apache/modules
/path/to/libtool --mode=install cp mod_foo.la /path/to/apache/modules
...
chmod 755 /path/to/apache/modules/mod_foo.so
[/path/to/apache/conf/httpd.confÏÅÌ- `foo' È?ÅòÐË ØÀÌÊØ-×áÄé]
$ _
ÁçÇ?Èù ÄéÐÍÀ? ÀÀÐÊ ÑéÐË
LoadModule foo_module modules/mod_foo.so
ÌÃÑ?ÖÔÐßÏÅ Î?ÄéÈù ÓïÀÅ×áÄé. ÐÜ ÌÃÑ?ÐË ÁòÊËÐ?ÐÈÇÞ Ë÷Ïû×ßÑ?
ÎÚÄÒÄéÈù -A
ÏÙÌ×ÐË Ë÷Ïû×áÄé. Ñÿ
$ apxs -i -A mod_foo.c
apxsÈ? ÍÁÀä Ë÷Ïû×ßÇÑÀý ÄéÐÍÀ? ÀÀÐÜ ÎÖÖÔÔÅ È?Åò ÀïÊËÀ? MakefileÐË ÈÈÅù Ì? ÐæÄé:
$ apxs -g -n foo
Creating [DIR] foo
Creating [FILE] foo/Makefile
Creating [FILE] foo/modules.mk
Creating [FILE] foo/mod_foo.c
Creating [FILE] foo/.deps
$ _
ÁçÇÁØÔ ÉéÇÞ ÀïÊË È?ÅòÐË À?Ð?ÀÄÓÌÇÞ ÔÔÖÔÐß×ßÏ? ÎÖÖÔÔÅ Ì-É?ÀÅ ÐàÅÅÇß×áÄé:
$ cd foo
$ make all reload
apxs -c mod_foo.c
/path/to/libtool --mode=compile gcc ... -c mod_foo.c
/path/to/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo
apxs -i -a -n "foo" mod_foo.la
/path/to/instdso.sh mod_foo.la /path/to/apache/modules
/path/to/libtool --mode=install cp mod_foo.la /path/to/apache/modules
...
chmod 755 /path/to/apache/modules/mod_foo.so
[/path/to/apache/conf/httpd.confÏÅÌ- `foo' È?ÅòÐË ØÀÌÊØ-×áÄé]
apachectl restart
/path/to/apache/sbin/apachectl restart: httpd not running, trying to start
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
/path/to/apache/sbin/apachectl restart: httpd started
$ _