Apache HTTP Server Introduction
Compiling and Installing Apache
1) ÄÄÆÄÀÏ Çϱâ
2) ¾ÆÆÄÄ¡ Configuration ¼³Á¤°ú ÀÛµ¿Çϱâ
3) ¾ÆÆÄÄ¡ À¥ ¼­¹öÀÇ ½ÃÀÛ

Apache HTTP Server Introduction

¾ÆÆÄÄ¡´Â 1995 ³â ±× ´ç½Ã¿¡ °¡Àå Àαâ ÀÖ¾ú´ø À¥ ¼­¹öÁßÀÇ ÇϳªÀÎ
NCSA HTTPD 1.3 ¹öÁ¯À» ±â¹ÝÀ¸·Î ź»ýÇÏ¿´´Ù. ±× ÈÄ ±âÁ¸ÀÇ NCSA À¥
¼­¹ö¿¡ ´õ¿í Çâ»óµÈ ±â´ÉµéÀ» žÀçÇÏ¿© Apache À¥ ¼­¹ö¸¦ ¹ßÇ¥ÇÏ¿´´Ù.
ÇöÀç´Â ÀÎÅÍ³Ý À¥ ¼­¹ö Áß¿¡¼­ ÃÖ°íÀÇ Àα⸦ ±¸°¡ÇÏ°í ÀÖ´Â À̸¥¹Ù 
'Àß ³ª°¡´Â' ¼ÒÇÁÆ®¿þ¾î ÁßÀÇ ÇϳªÀÌ´Ù. ±× ÀÌÀ¯¸¦ µéÀÚ¸é Áö¼ÓÀûÀ¸·Î 
ÆÐÄ¡ÆÄÀÏÀ» Á¦°øÇÏ°í ÃÖ°íÀÇ ÆÛÆ÷¸Õ½º¸¦ ³»°í Àֱ⠶§¹®ÀÌ´Ù. 
¹°·Ð ¹«·á·Î Á¦°øµÈ´Ù´Â Á¡°ú ¸¹Àº  ¸¶ÄϽ¦¾îÀÇ Á¡À¯·Î ÀÎÇÏ¿© ¾ÈÁ¤¼ºÀ» 
ÀÎÁ¤¹Þ¾Ò´Ù´Â  Á¡µµ ÇÑ ÀÌÀ¯°¡ µÈ´Ù. ±×¸®°í Windows NT 4.0  °ú 
95 ¿ëÀ¸·Îµµ Beta ÆÇÀÌ  ³ª¿ÍÀÖÀ¸¹Ç·Î Unix ȯ°æÀÌ °®Ãß¾î ÁöÁö ¾ÊÀº 
ºÐµéÀº Çѹø »ç¿ëÇØ º¸±â ¹Ù¶õ´Ù. 

¾ÆÆÄÄ¡´Â ÇöÀç±îÁö 1.3b3 ±îÁö ³ª¿ÍÀÖÀ¸¸ç, 1.2 ½Ã¸®Áî´Â Å×½ºÆ® ¹öÁ¯ÀÌ ¾Æ´Ñ ¾ÈÁ¤µÈ ¹öÁ¯ÀÌ´Ù. ¸¸¾à ¿©·¯ºÐµéÀÌ 1.2 º£Å¸³ª ±¸¹öÁ¯ÀÇ ¾ÆÆÄÄ¡ À¥ ¼­¹ö¸¦ »ç¿ëÇÏ°í ÀÖ´Ù¸é ¾ÈÁ¤¼ºÀ̳ª ½ÃÅ¥¸®Æ¼ ¸é¿¡¼­ ºü¸¥ ½ÃÀϾȿ¡ ¿©·¯ºÐµéÀÇ À¥ ¼­¹ö¸¦ ¾÷±×·¹ÀÌµå ¶Ç´Â ÆÐÄ¡Çϱ⸦ ±ÇÇÏ´Â ¹ÙÀÌ´Ù.

Note: Why the name 'Apache' ?
¾ÆÆÄÄ¡´Â ±âÁ¸ NCSA httpd 1.3 ¿¡ ÆÐÄ¡ÆÄÀϵéÀ» Á¦°øÇß´ø ÀÏ·ÃÀÇ »ç¶÷µéÀÌ ¸ð¿© ±¸¼ºÇÑ ¾ÆÆÄÄ¡ ±×·ì¿¡¼­ "A PAtCH server" ÀÇ Á¶ÇÕÀ¸·Î ¾ÆÆÄÄ¡¶ó´Â À̸§À» »ý°¢ÇØ ³»¾ú´Ù.

Compiling and Installing Apache

¾ÆÆÄÄ¡¸¦ ¼³Ä¡Çϱ⿡ ¾Õ¼­ ¾ÆÆÄÄ¡ À¥ ¼­¹öÇÁ·Î±×·¥ÀÌ ÇÊ¿äÇÏ´Ù. ÃֽŹöÁ¯Àº ¾ÆÆÄÄ¡ À¥ ¼­¹ö ȨÆäÀÌÁö¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù.

ftp://ftp.apache.org (Apache Primary Site)

1) ÄÄÆÄÀÏ Çϱ⠾ÆÆÄÄ¡ ¼­¹ö¸¦ ´Ù¿î·Îµå ¹Þ¾ÒÀ¸¸é, ¹ÞÀº ÆÄÀϵéÀÇ ¾ÐÃàÀ» Ç®¾îº¸ÀÚ.

muhan#> gzip -d apache_1.3b3.tar.gz
muhan#> tar -xvf apache_1.3b3.tar.gz
muhan#> cd src
muhan#> vi Configuration /* ÇÊ¿äÇÑ ¸ðµâµîÀ» ¼±ÅÃÇØ ÁÖ¼®¹®À» Á¦°Å */
muhan#> ./Configure /* Configure ½ºÅ©¸³Æ®¸¦ ¼öÇàÇÏÀÚ */

Using config file: Configuration
Creating Makefile
+ configured for Solaris 251 platform
+ setting C compiler to gcc
+ Adding selected modules
+ doing sanity check on compiler and options
Creating Makefile in support
Creating Makefile in main
Creating Makefile in ap
Creating Makefile in regex
Creating Makefile in os/unix
Creating Makefile in modules/standard
/* ¿©·¯ºÐµéÀÇ ½Ã½ºÅÛ¿¡ ¸Â°Ô Makefile ÀÌ ¸¸µé¾î Á³À¸¸é ÄÄÆÄÀÏÀ» ½ÃÀÛÇÏÀÚ */
muhan#> make

2) ¾ÆÆÄÄ¡ Configuration ¼³Á¤°ú ÀÛµ¿Çϱ⠾ÆÆÄÄ¡¸¦ ½ÃÀÛÇϱâ À§Çؼ­´Â ¸ÕÀú Apache Web Server ÀÇ È¯°æ¼³Á¤ºÎÅÍ ¸ÕÀú ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ¼³Á¤ÇÒ ÆÄÀϵéÀº 'httpd.conf' , 'access.conf' , 'srm.conf' ÀÌ´Ù. httpd.conf ¡¡:¡¡À¥¼­¹ö ¼³Á¤ °ü·Ã ÆÄÀÏ srm.conf ¡¡:¡¡À¥¼­¹ö ÀÚ¿ø °ü·Ã ÆÄÀÏ access.conf ¡¡:¡¡À¥¼­¹ö º¸¾È Á¢±ÙÁ¦¾î °ü·Ã ÆÄÀÏ ÀÌ ÆÄÀϵéÀº conf/ µð·ºÅ丮 ¾È¿¡ µé¾î°¡ º¸¸é *.conf-dist ÆÄÀÏÀÌ µé¾îÀÖÀ¸´Ï ÀÌ ÆÄÀϵéÀÇ À̸§À» ¼³Á¤ ÇÒ ÆÄÀϵé À̸§À¸·Î º¯°æÇÏ°í ¿©·¯ºÐµé ȯ°æ¿¡ ¸Â°Ô Àç¼³Á¤À» ÇÏÀÚ. httpd.conf # ServerType: ¾î¶°ÇÑ ¹æ¹ýÀ¸·Î ¼­¹ö°¡ ½ÃÀ۵ǴÂÁö ¼³Á¤ÇÑ´Ù. # ½´ÆÛµ¥¸óÀÎ inetd ¿Í µ¥¸ó¸ðµå·Î ÀÛµ¿ÇÏ´Â ¹æ¹ýÀÌ Àִµ¥ ÁÖ·Î ÀÀ´ä ¼Óµµ°¡ ºü¸¥ # standalone ¹æ½ÄÀ» »ç¿ëÇÑ´Ù. ServerType standalone # Port: À¥¼­¹öÀÇ Æ÷Æ® ¹øÈ£¸¦ ¼³Á¤ÇÑ´Ù. Port 80 # HostnameLookups: On À¸·Î ¼³Á¤µÉ °æ¿ì ·Î±×ÆÄÀÏ¿¡ DNS Lookup ÇÏ¿© È£½ºÆ® ³×ÀÓÀ¸·Î ±â·ÏÇÑ´Ù. # ¿¹) www.mhs.co.kr (on) 210.109.239.1 (off) # ºü¸¥ ó¸® ¼Óµµ°¡ ¿ä±¸µÉ °æ¿ì Off HostnameLookups on # User/Group: ´Ù¸¥ »ç¿ëÀÚ³ª ±×·ìÀ¸·Î ¾ÆÆÄÄ¡ À¥ ¼­¹ö¸¦ ¿î¿µÇÏ°íÀÚ ÇÏ´Â °æ¿ì¿¡ »ç¿ëÇÑ´Ù. # User,Group Àº Àý´ë root ·Î ¼³Á¤ÇÏÁö ¾Êµµ·Ï ÁÖÀÇÇÑ´Ù. User nobody Group #-1 # ServerAdmin: À¥¼­¹ö °ü¸®ÀÚ E-Mail ÁÖ¼Ò ±âÀÔ ServerAdmin you@your.address # ServerRoot: À¥¼­¹ö°¡ À§Ä¡ÇÑ °÷ ServerRoot /usr/local/etc/httpd # ErrorLog: Error ·Î±×°¡ ±â·ÏµÉ ÆÄÀÏÀÇ °æ·Î ErrorLog logs/error_log # TransferLog: À¥¼­¹ö Á¢±Ù¿¡ ´ëÇÑ ¸ðµç ±â·ÏÀ» ³²±æ °æ·Î TransferLog logs/access_log # PidFile: ¼­¹öÀÇ Process ID ¸¦ ±â·ÏÇÒ ÆÄÀÏ PidFile logs/httpd.pid # Timeout: Ŭ¶óÀ̾ðÆ® ¿äû¿¡ ¼­¹ö°¡ ±â´Ù·Á¾ß ÇÒ ½Ã°£ (ÃÊ´ÜÀ§) # µðÆúÆ® ŸÀӾƿôÀº 1200ÃÊ ÀÌ´Ù. Timeout 300 # MinSpareServers: °¢ Ŭ¶óÀ̾ðÆ®ÀÇ Á¢¼Ó¿¡ ´ëÇØ »õ·ÎÀÌ »ý¼ºµÇ´Â ¼­¹öÀÇ ¼ö MinSpareServers 5 MaxSpareServers 10 # StartServers: ¼­¹ö ½ÃÀ۽ÿ¡ µ¿ÀÛÇÒ ¼­¹öÀÇ °³¼ö¸¦ ³ªÅ¸³½´Ù. StartServers 5 # MaxClients: À¥ ¼­¹ö¿¡ Á¢±ÙÇÒ¼ö Àִ Ŭ¶óÀ̾ðÆ® °³¼ö¸¦ Á¦ÇÑ MaxClients 150 # °¡»óÈ£½ºÆ® ¼³Á¤ (Virtual Host) # ÇϳªÀÇ ¼­¹ö¿¡ ¿©·¯°³ÀÇ IP ÁÖ¼Ò¸¦ »ç¿ëÇÒ °æ¿ì # °¡»óÈ£½ºÆ®´Â °¢°¢ ¼³Á¤µÈ ¿äû¿¡ ¸Â´Â ´Ù¸¥ 󸮸¦ ½ÇÇàÇÑ´Ù. # #ServerAdmin webmaster@host.some_domain.com #DocumentRoot /www/docs/host.some_domain.com #ServerName host.some_domain.com #ErrorLog logs/host.some_domain.com-error_log #TransferLog logs/host.some_domain.com-access_log # access.conf # This should be changed to whatever you set DocumentRoot to. # ¼­¹öÀÇ ¹®¼­°¡ À§Ä¡ÇÒ °÷ # »öÀοäû ¹× ½Éº¼¸¯ ¸µÅ© Çã¿ë Options Indexes FollowSymLinks order allow,deny # À¥ ¼­¹öÀÇ Á¢±Ù Á¦¾î allow from all # ÇØ´ç µð·ºÅ丮ÀÇ ¸ðµç Á¢±Ù Çã¿ë AllowOverride None Options None srm.conf # DocumentRoot: ¼­¹öÀÇ È¨ÆäÀÌÁö°¡ À§Ä¡ÇÒ °æ·Î¸¦ ÁöÁ¤ DocumentRoot /usr/local/etc/httpd/htdocs # UserDir: ¼­¹ö¿¡ °èÁ¤À» °¡Áö°í ÀÖ´Â »ç¿ëÀÚµéÀÌ »ç¿ëÇÒ È¨ÆäÀÌÁö µð·ºÅ丮 UserDir public_html # DirectoryIndex: µð·ºÅ丮¿¡¼­ µðÆúÆ®·Î »ç¿ëÇÒ ¹®¼­ À̸§ DirectoryIndex index.html # AddIcon tells the server which icon to show for different files or filename extensions # ¾ÆÀÌÄÜ ¼³Á¤ AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/* AddIcon /icons/binary.gif .bin .exe AddIcon /icons/binhex.gif .hqx AddIcon /icons/tar.gif .tar AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip AddIcon /icons/a.gif .ps .ai .eps AddIcon /icons/layout.gif .html .shtml .htm .pdf AddIcon /icons/text.gif .txt AddIcon /icons/c.gif .c AddIcon /icons/p.gif .pl .py AddIcon /icons/f.gif .for AddIcon /icons/dvi.gif .dvi AddIcon /icons/uuencoded.gif .uu AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl AddIcon /icons/tex.gif .tex AddIcon /icons/bomb.gif core AddIcon /icons/back.gif .. AddIcon /icons/hand.right.gif README # ^^DIRECTORY^^: µð·ºÅ丮¸¦ ³ªÅ¸³½´Ù. AddIcon /icons/folder.gif ^^DIRECTORY^^ # ^^BLANKICON^^: Blank Line À» °¡¸£Å²´Ù. AddIcon /icons/blank.gif ^^BLANKICON^^ # DefaultIcon: µðÆúÆ® ¾ÆÀÌÄÜ¿¡ ´ëÇÑ °æ·Î DefaultIcon /icons/unknown.gif # AccessFileName: µð·ºÅ丮º°·Î Á¢±ÙÀ» Á¦¾îÇϱâ À§ÇÑ Á¤º¸¸¦ ´ã°í ÀÖ´Â ÆÄÀÏ AccessFileName .htaccess 3) ¾ÆÆÄÄ¡ À¥ ¼­¹öÀÇ ½ÃÀÛ ¾ÆÆÄÄ¡ À¥ ¼­¹ö¸¦ ½ÃÀÛÇÏ·Á¸é °£´ÜÈ÷ httpd ¶ó°í Ä¡¸é ³¡ÀÌ´Ù. httpd´Â ¿ì¼± httpd.conf ÆÄÀÏÀ» ã¾Æ¼­ ½ÇÇàÇÏ°Ô µÇ´Âµ¥ µðÆúÆ®·Î ¼³Á¤µÇ¾î ÀÖ´Â °÷Àº " /usr/local/etc/httpd/conf/httpd.conf " ÀÌ´Ù. ¸¸¾à httpd.conf ÆÄÀÏÀÌ ´Ù¸¥ °÷¿¡ À§Ä¡ÇÏ¿´´Ù¸é '-f' Àμö¸¦ »ç¿ëÇÏ¿© ÀÛµ¿½Ãų¼öµµ Àִµ¥ »ç¿ë¹æ¹ýÀº ´ÙÀ½°ú °°´Ù. muhan#> /usr/local/httpd/httpd -f /usr/local/httpd/conf/httpd.conf ¸¸¾à ÇÁ·ÒÇÁÆ®°¡ Áï½Ã ¶³¾îÁø´Ù¸é ¾Æ¹« ¿¡·¯°¡ ¾øÀÌ ½ÇÇàÀÌ µÇ¾ú´Ù´Â °ÍÀÌ´Ù. À¥ ¼­¹ö¸¦ ÃʱâÈ­ ÇÏ´Ù ½ÇÆÐÇϸé È­¸é¿¡ ¿¡·¯¸¦ Ãâ·ÂÇÏ°í ¼­¹ö´Â ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù. ¼­¹ö°¡ ¿Ã¹Ù¸£°Ô ÀÛµ¿µÇ¾úÀ¸¸é À¥ ºê¶ó¿ì Àú¸¦ ¶ç¾î URL ÀÔ·Ââ¿¡ " http://localhost " ¸¦ ÀÔ·ÂÇÏ°í Àá½Ã±â´Ù¸®¸é , ¾ÆÆÄÄ¡ ¼³Ä¡¸¦ ¼º°ø¸®¿¡ ³¡ ¸¶ÃÆ´Ù´Â ¸Þ¼¼Áö°¡ ¶á´Ù. ¼­¹ö°¡ ÀÛµ¿ÇÏÁö ¾Ê¾Ò´Ù¸é , ¿¡·¯¸Þ½ÃÁö¸¦ º¼¼ö ÀÖÀ» °ÍÀÌ´Ù. ´õ ÀÚ¼¼ÇÑ ¿øÀÎ À» ¾Ë°í ½Í´Ù¸é logs/error_log ÆÄÀÏÀ» ÂüÁ¶ÇÏ¿© ¹®Á¦¸¦ ÇØ°áÇϱ⠹ٶõ´Ù. Âü°í·Î ¾ÆÆÄÄ¡ À¥ ¼­¹öÀÇ ÀÛµ¿À» ÁßÁöÇÏ°í ½ÍÀ¸¸é ¾ÆÆÄÄ¡ ºÎ¸ðÇÁ·Î¼¼½º¿¡°Ô TERM ½Ã±×³ÎÀ» ÁÖ¾î Á× Àϼöµµ ÀÖ´Ù. ÀÌ ÇÁ·Î¼¼½ºÀÇ PID ´Â logs µð·ºÅ丮¾È¿¡ httpd.pid ÆÄÀÏ¿¡ ¾²¿©Áö¸ç ÀÛµ¿À» ÁßÁöÇÏ·Á¸é ´ÙÀ½°ú °°Àº ¸í·ÉÀ» »ç¿ëÇÑ´Ù. kill -TERM `cat /usr/local/etc/httpd/logs/httpd.pid`