Apache HTTP Server Version 2.4

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/apache2.conf]
      $ apache2ctl restart
      /path/to/apache/sbin/apache2ctl 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/apache2ctl 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 µµ±¸´Â
      ¼Ò½º³ª (¸¶Áö¸· ½Ãµµ·Î) ÆÄÀϸíÀ» °¡Áö°í À̸§À» ÃßÃøÇÑ´Ù.-qapxsÀÇ ¼³Á¤°ªÀ» ¾Ë¾Æ³½´Ù. 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 dsofilemod_unknown.so¸¦ À̸§À¸·Î
      »ç¿ëÇÑ´Ù.-D name=value-I incdir-L libdir-l libname-Wc,compiler-flagslibtool --mode=compile ¸í·É¾î·Î Àü´ÞÇÑ´Ù.
      ÄÄÆÄÀÏ·¯ ƯÀ¯ÀÇ ¿É¼ÇÀ» Ãß°¡ÇÒ¶§ »ç¿ëÇÑ´Ù.-Wl,linker-flagslibtool --mode=link ¸í·É¾î·Î Àü´ÞÇÑ´Ù. ¸µÄ¿
      ƯÀ¯ÀÇ ¿É¼ÇÀ» Ãß°¡ÇÒ¶§ »ç¿ëÇÑ´Ù.-i-aapache2.conf ¼³Á¤ÆÄÀÏ¿¡ ÀûÀýÇÑ
      LoadModule ÁÙÀ»
      Ãß°¡Çϰųª ÀÌ¹Ì ÀÖ´Ù¸é Ȱ¼ºÈÇÏ¿© ¸ðµâÀ» »ç¿ëÇϵµ·Ï
      ¸¸µç´Ù.-A-a¿Í ºñ½ÁÇÏÁö¸¸, LoadModule Áö½Ã¾î ¾Õ¿¡
      ¿ì¹°Á¤ÀÚ(#)¸¦ ºÙÀδÙ. Áï, ÇöÀç´Â
      »ç¿ëÇÏÁö¾ÊÁö¸¸ ³ªÁß¿¡ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¸ðµâÀ» ÁغñÇÑ´Ù.-e-a ȤÀº -A
      ¿É¼Ç°ú °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, -i ¸í·É°ú
      ºñ½ÁÇÏÁö¸¸ ¸ðµâÀ» ¼³Ä¡ÇÏÁö¾Ê°í ¾ÆÆÄÄ¡
      apache2.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" µð·ºÅ丮¿¡ ¼³Ä¡Çϰí apache2.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/apache2.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/apache2.conf¿¡¼ `foo' ¸ðµâÀ» Ȱ¼ºÈÇÑ´Ù]
      apache2ctl restart
      /path/to/apache/sbin/apache2ctl 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/apache2ctl restart: httpd started
      $ _