7장. UNIX WWW Server 만드는 법
 
 7.1 서버프로그램의 획득 
 7.2 Web Server Daemon Setup 
 7.3 Compiling 
 7.4 환경설정 
 7.5 httpd.conf 
 7.6 srm.conf 
      

     World Wide Web(줄여서 WWW)서비스는 인터넷 망에서 데이터를 요청하는 클라이언트와 요청된 데이터를 제공하는 서버로 구성된다. 클라이언트는 넷스케이프나 익스플로러, 모자익과  같은 프로그램들이고, 서버는 NCSA, CERN, Netsite 등 damon 프로그램으로써 다양한 것들이  있다. 서버 프로그램들은 주로 UNIX 시스템에 설치되며, NT 시스템에도 설치된다. 최근에는 사용자수들이 늘고 있어 일반 PC에서 사용할 수 있게 Windows 95시스템에서도 damon을 사용 할 수 있다. 이에 대한 프로그램은 WWW상에서 검색해보면 쉽게 찾을 수 있다.   
     서버프로그램은 맨 처음 NCSA에서 발표하였으며, CERN, Netsite순으로 발표되었다. NCSA와  CERN 서버는 공개프로그램으로 전세계적으로 많이 사용되고 있으며, Netsite는 Netscape사  에서 발표한 서버 프로그램으로 운영, 관리, 보안 측면이 보강된 제품이다. 전세계적으로   
    NCSA 서버가 가장 많이 쓰이고 있으며, 그 다음으로 CERN서버, 그리고 주요 상용서비스 시스템이나, 금융거래와 관련된 시스템에서 Netsite가 많이 쓰인다.   
     NCSA는 다양한 기능과 성능이 좋아 애용되고 있으며, CERN은 proxy라는 기능이 제공되어 이용된다. proxy을 이용하면 인터넷과 내부네트워크를 분리하여 보안을 유지하면서도 인터넷을 사용할 수 있는 장점이 있다  

    7.1 서버 프로그램 획득  

     NCSA와 CERN 서버는 인터넷을 이용하여 NCSA 웹사이트나 CERN 웹사이트에 접속해 공개버젼 을 다운로드할 수 있고, Netsite는 국내 (주)다우기술에 접촉하여 구입하면 된다. Netsite 를 구입하기 전에 시험해 보고자하면, Netscape 웹사이트에 접속해 다운로드 받으면 된다.  

    7.1.1 NCSA Server  

     NCSA 서버가 있는 웹사이트는 http://hoohoo.ncsa.uiuc.edu/ 이다. 혹시 NCSA 서버 웹사이트가 변경될 수 있으므로 http://www.ncsa.uiuc.edu/도 함께 알아두면 좋다. NCSA 서버프로 그램이 2가지 형태로 있는데, 하나는 프로그램 소스이고 다른 하나는 실행 가능한 파일이다.   
     실행파일과 소스파일은 http://hoohoo.ncsa.uiuc.edu/docs/Overview.html에 접속해 보면 얻을 수 있는데 다음의 URL을 따라가면   http://hoohoo.ncsa.uiuc.edu/docs/setup/PreCompiled.html 에서 미리 컴파일된 프로그램을 구할 수 있다. 
     
         IRIX 4.0.5 - SGI Indigo  
         IRIX 5.3 - SGI Indy  
         SunOS 4.1.3 / Solaris 1.x - SPARCserver 690MP  
         SunOS 5.4 / Solaris 2.4 x86 - Pentium 90  
         SunOS 5.4 / Solaris 2.4 SPARC - SPARCstation 20  
         SunOS 5.3 / Solaris 2.3 SPARC - SPARCstation 20  
         AIX 3.2.5 - IBM RS/6000 Model 550  
         HP-UX 9.05 - HP 9000 model 715  
         OSF/1 3.0 - Dec Alpha  
         Ultrix 4.0 - Dec Mips 3100  
         Linux 1.2.13, libc 5.0.9 ELF - Pentium 120  

     위에서와 같이 실행 파일목록에 서버시스템에 맞는 것이 있으면 해당 실행파일을 가져오 고, 없다면 프로그램 소스를 가져와 컴파일하면 된다. 소스파일은 http://hoohoo.ncsa.uiuc.edu/docs/setup/Compilation.html 에서 가져오면 된다.   
    컴파일하는 방법은 http://hoohoo.ncsa.uiuc.edu/docs/setup/Compilation.html에 접속해 보면 알수있다.   
    http://hoohoo.ncsa.uiuc.edu/docs/setup/PreCompiled.html에서 가져오면 소스파일도 함께 있으므로 그것을 가져올 것을 권하고 싶다.   
     만약 시스템이 SunOS 5.4 / Solaris 2.4 SPARC - SPARCstation 20 일경우 해당파일을 가져 오면 httpd_1.5.1-export_solaris2.4_sparc.tar.Z 일 것이다.  

    7.1.2 CERN Server  

     CERN Server는 요즘 W3C Server라고 불리어지기도 한다. CERN Server는  http://www.w3.org/pub/WWW/Daemon/에서 구할 수 있다. 실행파일은 없고 소스 프로그램만  제공되므로 설치안내 사이트인 http://www.w3.org/pub/WWW/Daemon/User/Installation/Installation.html   
    를 꼭 참조하기 바란다. 이곳을 살펴보면 설치정보와 설명서같은 유용한 정보들이 많이 있다. 그러므로 웹 브라우저 윈도우를 몇 개 띄워 놓고서 참조하면서 수정하고 확인하는 것이 바람직하다.   

    7.2 Web Server Daemon[HTTPd] Setup  

     앞에서 httpd_1.5.1-export_solaris2.4_sparc.tar.Z를 가져왔다면 이것을 /usr/local/etc/  에 가져다 놓기 바란다. 그리고 다음과 같이 하여 압축을 푼다.  
    root#uncompress httpd_1.5.1-export_solaris2.4_sparc.tar.Z  
    root#tar -xvf httpd_1.5.1-export_solaris2.4_sparc.tar  

     ...............  

         root#  

    물론 최신버젼도 쉽게 구할 수 있으나 이에 관해서는 당신의 재량에 달렸다.   
    위와 같이 작업을 하게 되면 디렉토리 /usr/local/etc/httpd_1.5.1-export/이 생기고, 그 밑에  서브디렉토리와 파일들이 생성된다.   
     소스파일은 디렉토리 /usr/local/etc/httpd_1.5.1-export/src/에 있다.   
    그리고 실행파일은 /usr/local/etc/httpd_1.5.1-export/httpd 이다.   
    만약 시스템이 SunOS 5.4 / Solaris 2.4 SPARC - SPARCstation 20 이라면 소스파일을 컴파 일할 필요없이 configuration file만 조정한뒤 /usr/local/etc/httpd_1.5.1-export/httpd를  실행하면 된다.   
    그런데 위에서 보면 서버프로그램이 있는 디렉토리는 /usr/local/etc/httpd_1.5.1-export/  인데, 이 디렉토리 이름을/usr/local/etc/httpd/로 바꾸어 놓으면 편하다. 이유는 실행과  관련된 configuration file에 서버프로그램 디렉토리가 /usr/local/etc/httpd/로 되어 있기 때문이  다.   
    그렇지만 여기에서는 /usr/local/etc/httpd_1.5.1-export/를 그대로 유지하고 실행과 관련  된 configuration file을 수정하는 방법을 설명하겠다.  

    7.3 Compiling  

     러나 가령 다른시스템 환경을 가지고 있다면  /usr/local/etc/httpd_1.5.1-export/src/Makefile을 수정하고 새로 compile해야 한다.   
     compiling시 이용되는 컴파일러는 default로 gcc인데 cc만 있다면 Makefile에 들어가서  gcc부분을 comment (# 표시)하고 cc 부분을 uncomment 하면 된다.   
     또한 시스템이 Solaris 2.x가 아니고 HP-UX라면 해당부분을 찾아 Solaris 2.x부분을  comment 처리하고 HP-UX부분을 uncomment 하면 된다. 그리고 make를 실행시킨다. 그러면 파일이 생성되는데 이것을 기존의 httpd 에 덮어쓰면 된다.  

    7.4 환경설정  

     위에서 표기한대로  NCSA HTTPd_1.5.2버젼을 가지고서 이 글을 전개해 나갈 것이며 이에  대한 설명문서는 다음의 위치에 있다. ( http://hoohoo.ncsa.uiuc.edu/docs/  
     일단은 HTTP daemon을 구해야 하는데, 자료는 frp://comsys.sunchon.ac.kr/pub 에 있으니  찾아가길 바란다. 여기서 구한 httpd_1.5.2a-export.tar.Z를 gunzip으로 압축을 풀어야  하며 푸는 방법은 다음과 같다. 그리고 이 파일 안에 있는 환경파일들은 경로설정을 어떤  곳으로 고정을 시키면 수정이 간편한데 그 위치는 /usr/local/etc/ 이다.   

     # uncompress x httpd_1.5.2a-export.tar.Z ./   

    위와 같이 입력하면 현재 디렉토리에 httpd_1.5.2a-export.tar 가 생성된다. 이것을 다시 tar를 이용해 압축을 풀어야 하는데 방법은 다음과 같다.   
     # tar xvf *.tar ./   

    위와 같이 입력하면 현재 디렉토리 밑에 httpd_1.5.2a-export 디렉토리가 생성되며 그 외의 파일들도 각자의 위치에서 풀리게 된다.   
     웹서버를 실행하는데 필요한 환경조정은 크게 서버프로그램 환경조정, Resource 환경조정,  그리고 액세스 권한제어로 구분된다. 이것에 관련된 자세한 부분은 다음을 참고하면 된다.  

    Configuration 
    http://hoohoo.ncsa.uiuc.edu/docs/setup/Configure.html  

    Server Configuration :  
    http://hoohoo.ncsa.uiuc.edu/docs/setup/httpd/Overview.html  

    Resource Configuration :  
    http://hoohoo.ncsa.uiuc.edu/docs/setup/srm/Overview.html  

    Access Control :  
    http://hoohoo.ncsa.uiuc.edu/docs/setup/access/Overview.html  

    Configuration 파일들은 디렉토리 /usr/local/etc/httpd_1.5.1-export/conf/에 모여있다. 해당파일들은 다음과 같다.   
     httpd.conf-dist   

    서버프로그램이 실행되는데 있어 필요한 환경을 조정하는 파일이다. 자세한 내용은 조금 뒤에 다루기로 한다.   

    httpd.conf-dist를 httpd.conf로 복사하고, httpd.conf를 조정한다.   
      
    srm.conf-dist   

    문서의 위치와 CGI 프로그램 위치 등을 지정한다. 자세한 내용은 조금 뒤에 다룬다.   
       
    srm.conf-dist를 srm.conf로 복사하고, srm.conf를 조정한다.   
    access.conf-dist        디렉토리 접근에 대한 권한제어.   
    access.conf-dist를 access.conf로 복사하고, access.conf를 조정한다.   

     mime.types   

    서버가 문서를 전달할 때 문서확장자같은 mime-types를 지정한다.   
    여기에서는 httpd.conf와 srm.conf 를 조정하는 것만 다루며, access control은  http://hoohoo.ncsa.uiuc.edu/docs/setup/access/Overview.html를 참고하기 바란다.  

    7.5 httpd.conf  

     이 파일을 실제 edit 해보면 다음과 같은 내용이 들어 있다. # 표시는 주석문임을 표시하며 아래의 내용중 표로 만들어져 줄이 두칸인 것이 있는데 위칸은 설정 예이며 아래 줄은  부가설명이다.  

    ☞ httpd.conf 중 바로아래줄 부터가 실제 시작부분임  
    #=========================================================================   
    # NCSA HTTPd (comments, questions to httpd@ncsa.uiuc.edu)   
    #=========================================================================   
    # This is the main server configuration file. It is best to   
    # leave the directives in this file in the order they are in, or   
    # things may not go the way you'd like. See URL http://hoohoo.ncsa.uiuc.edu/   
    # for instructions.   
    # Do NOT simply read the instructions in here without understanding   
    # what they do, if you are unsure consult the online docs. You have been   
    # warned.   
    # Thanks to A. P. Harris for some of the organization and explanations   
    # contained here-in.   
    #=========================================================================   
    #=========================================================================   
    # Server Operation   
    #-------------------------------------------------------------------------   
    # ServerType is either inetd, or standalone.   
    # Set to 'inetd' to run from inetd, or 'standalone', to run as a daemon.   
    # Default: standalone  

    ServerType standalone  
    이상태로 해놓으면 시스템을 부팅할 때 자동으로 프로세스 실행을 할수있게 하는 준비작업이 된다  

    # If you are running from inetd, go to "ServerAdmin".   
    # Port: The port the standalone listens to. For ports < 1023, you will   
    # need HTTPd to be run as root initially.   
    # Default: 80 (or DEFAULT_PORT)  

    Port 80  
    http://bora.dacom.co.kr/ 이라고 입력하면, 80번 port를 통해 서비스한다. 만약 port 80 이외의 다른 port (가령 port 1000)를 이용하면 http://bora.dacom.co.kr:1000/이라고 입력해야 내용을 볼 수 있다. 실제로는 port 번호가 1023보다 작아야 한다. 여기에 할당된 비트는 10비트이기 때문이다. 즉 0 ∼ 1023 까지만 사용된다  

    # StartServers: The number of servers to launch at startup.  Must be   
    # compiled without the NO_PASS compile option   
    # Default: 5 (or DEFAULT_START_DAEMON)  

    StartServers 5  
    daemon 이 실행되었을때에 처음 포로세스를 5개만 생성시킨다. 즉 최소프로세스가 5개인 셈이다.  

    # MaxServers: The number of servers to launch until mimic'ing the 1.3   
    # scheme (new server for each connection).  These servers will stay around   
    # until the server is restarted.  They will be reused as needed, however.   
    # See the documentation on hoohoo.ncsa.uiuc.edu for more information.   
    # If compile option RESOURCE_LIMIT is used, HTTPd will not mimic the 1.3   
    # behavior, and MaxServers will be the maximum number of servers possible.   
    # Default: 10 (or DEFAULT_MAX_DAEMON)  

    MaxServers 10  
    최대 프로세스수가 10이라는 의미로서, 시스템의 성능상 더 수용할 수 있을때에는 10이상으로 설정해도 무방하다. 이 숫자는 http daemon에 대한 최대접속제한 인원수이다.  

    # MaxRequestsPerChild: the number of requests each child process is   
    # allowed to process before the child dies.  The child will exit so as to   
    # avoid problems after prolonged use when HTTPd (and maybe the libraries   
    # it uses) leak.  On most systems, this isn't really needed, but a few   
    # do have notable leaks in the libraries.  

    MaxRequestsPerChild 100  
    이 숫자는 한 접속자당 몇 개의 요청권(브라우저 같은)을 동시에 부여할 수 있는가를 나타내는 수치이다. 이것도 역시 시스템의 성능에 따라서 수정을 해야만 한다.  

    ## TimeOut <seconds>   
    # The number of seconds the server will wait for a client to   
    # send its query once connected, or the maximum amount of time the   
    # server will spend waiting for a client to accept information.   
    # Default: 1200 (or DEFAULT_TIMEOUT)  

     TimeOut 1200  
    서버에게 정보요청을 한 후 몇초까지 그 프로세스를 위하여 대기하는가를 나타낸다.  

    # If you wish HTTPd to run as a different user or group, you must run   
    # HTTPd as root initially and it will switch.   
    # User/Group: The name (or #number) of the user/group to run HTTPd as.   
    # Default: #-1 (or DEFAULT_USER / DEFAULT_GROUP)  

     User nobody  
     Group #-1  
    시스템에 등록된 user id 중 nobody 즉 아무에게나 프로세스를 부여해 줄 수 있으며 그 그룹의 번호는 -1로 초기화 되어 있는데 자신의 시스템에서 nobody라는 그룹의 그룹 id가 보통 60001이다. 그래서 보통 #60001 fh 수정하여 사용한다.  

    # IdentityCheck: Enables or disables RFC931 compliant logging of the   
    # remote user name for sites which run identd or something similar.   
    # This information is logged in the access_log.  Note that it   
    # *will* hurt responsiveness considerably, especially for non-unix clients.   
    # Default: off (or DEFAULT_RFC931)  

     #IdentityCheck On  
    프로세스를 요구한 측의 id를 체크할것인지의 여부를 따지는 옵션인데, 초기값은 off이다.  
    왜냐하면 모든 사람들에게 제공키위해서 대부분 daemon을 사용하기 때문이다. 그래서 그  
    대로 주석문이 붙은채로 둔다.  

    # AssumeDigestSupport: Whether it's safe to assume that clients support  
    # md5 digesting.  
    # Default: off  

    #AssumeDigestSupport On  
    말 그대로 md5 digesting의 지원여부이다. 기본값은 off 이며 대부분의 시스템에선 해당이 되지 않기 때문에 주석문 그대로 사용한다.  

    #=========================================================================   
    # Server Customization   
    #-------------------------------------------------------------------------   
    # ServerName allows you to set a host name which is sent back to clients for   
    # your server if it's different than the one the program would get (i.e. use   
    # "www" instead of the host's real name).   
    # Note: You cannot just invent host names and hope they work. The name you   
    # define here must be a valid DNS name for your host. If you don't understand   
    # this, ask your network administrator.   
    # Valid with <VirtualHost>   
    # Default: If you do not specify a ServerName, HTTPd attempts to retrieve   
    #    it through system calls.  

    #ServerName new.host.name  
    이 부분은 주석표시를 없애고 자신의 서버이름을 적는다.  
     ServerName comsys.sunchon.ac.kr 과 같은 방법으로 수정한다.  

    # ServerAdmin: Your address, where problems with the server should be  
    # e-mailed.  
    # Valid within <VirtualHost>  
    # Default: <none> (or DEFAULT_ADMIN)  
      
     ServerAdmin you@your.address  
    만약 프로세스 실행중에 에러가 발생할 경우 문의자를 일러주는 부분을 입력하는 부분으로서 관리자의 id로 대체시켜준다. 
     ServerAdmin webadm@comsys.sunchon.ac.kr 과 같은 방법으로 수정한다. 

    #=========================================================================  
    # File Locations  
    #-------------------------------------------------------------------------  
    # ServerRoot: The directory the server's config, error, and log files  
    # are kept.  
    # Note: All other paths will use this as a prefix if they don't start with /  
    # Default: /usr/local/etc/httpd (or HTTPD_ROOT)  
    ServerRoot /usr/local/etc/httpd  
    서버프로그램이 설치된 디렉토리를 의미하며 httpd 가 실행되는 위치이다.  
     /usr/local/etc/httpd 가 있으면 그대로 놔둔다.  
    # ErrorLog: The location of the error log file. If this does not start  
    # with /, ServerRoot is prepended to it. 

    ErrorLog logs/error_log 
    에러가 발생할 경우 기록파일을 저장하는 정보로서 위치설정은 ServerRoot 로부터 시작한다. 별다르게 수정할 이유가 없다. 

    # TransferLog: The location of the transfer log file. If this does not 
    # start with /, ServerRoot is prepended to it. 

    TransferLog logs/access_log 
    어떤 사용자(즉 ip address)가 프로세스를 요구했는지 기록해두는 파일로서 시간과 id address가 기록된다. 

    # AgentLog: The location of the agent log file.  If this does not start 
    # with /, ServerRoot is prepended to it. 

    AgentLog logs/agent_log 
    비상상황이 발생한 경우 그 상황이 일어난때와 증상이 기록된다. 

    # RefererLog: The location of the referer log file.  If this does not 
    # start with /, ServerRoot is prepended to it. 

    RefererLog logs/referer_log  
    reference log 파일의 저장장소이다. 

    # PidFile: The file the server should log its pid to 

     PidFile logs/httpd.pid 
    프로세스를 요청받았을때에 생성을 시켜주고 난 그 id를 기록한다. 즉 process id 이다 

    # AccessConfig: The location of the access configuration file 
    # Default: conf/access.conf (or ACCESS_CONFIG_FILE) 

    AccessConfig conf/access.conf 
    접근환경파일로서 특정하게 접근못하게 할 수 있는 정보를 acess.conf에서 취득한다. 

    # TypesConfig: The location of the typing configuration file, which 
    # maps filename extensions to MIME types. 
    # Default: conf/mime.types (or TYPES_CONFIG_FILE) 

    #TypesConfig /usr/local/lib/mime.types 
    제공하는 파일의 형식을 지정하는 것으로서 기본값으로 사용하면 text-html 이라는 형식으로 제공하여 브라우저에서 저장화면이 나오지 않고 html 문서임을 인지하고 화면으로 보여줄 수 있게 도와주는 정보이다. 

    # CoreDirectory:  where to dump core. 
    # Default: SERVER_ROOT 
    #CoreDirectory /tmp 
    프로세스가 강제종료되거나 사고시에 작업이 버려지는 공간이다. 기본값은 httpd 가 설치된 ServerRoot에 지정이 되어 있다. 

    #=========================================================================  
    # Logging Directives  
    #-------------------------------------------------------------------------  
    # LogOptions: This determines the type of log file you are using,  
    # Valid options currently are:  
    #  Combined for CLF with Referer and UserAgent tagged on  
    # Separate for CLF in one file and Referer and UserAgent in separate files  
    # Servername for CLF + ServerName   
    # Date for Referer and UserAgent logs with same date stamp as access_log 

    LogOptions Separate 
    Logging 한 정보를 한곳에 다 저장하지 않고 성격별로 분리하게 하는 옵션이다. 

    # LogDirGroupWriteOk, LogDirOtherWriteOk: Define either of these if you  
    # want the server to start even if you have write permissions on the log 
    # directory.  Having write permissions set is a potential security hole. 
    # Only makes a difference if the server process is started by root. 

    #LogDirGroupWriteOk 
    #LogDirOtherWriteOk 
    위의 두가지는 기본값으로 설정한다. 이유는 Group과 Other에게 권한을 줘야하므로 

    # RefererIgnore: If you don't want to keep track of links from certain 
    # servers (like your own), place it here.  If you want to log them all, 
    # keep this line commented. 

     #RefererIgnore servername 
    Reference를 ServerName으로 지정하는데 기본값으로 저장한다. 

    # DNSMode allows you to control the amount of DNS activity the server will 
    # perform.  The default is Standard, which means it does a single lookup 
    # on every request.  Minimum means the server will only do a lookup if  
    # necessary to fulfill a domain restriction.  Maximum means the server 
    # will do two lookups per request.  This will be slow, and not necessarily 
    # that much better security.  None will keep the server from doing any 
    # DNS resolution.  Maximum is the same as the old MAXIMUM_DNS compile option, 
    # and none is the same as the old MINIMUM_DNS option. 
    # Default: Standard 

    DNSMode Standard 
    DNSMode를 표준으로 설정하는데 이는 자신의 시스템이 DNS를 참조하여 작동한다면 이대로 나둬야 하며 다른 NIS+나 NIS를 이용한다면 다르게 써야한다.  

    #========================================================================= 
    # KeepAlive Directives 
    #------------------------------------------------------------------------- 
    # The directives below configure keepalive, the ability of the server 
    # to maintain a persistent connection with a client at the client's 
    # request 
    # The following line turns keepalive on. The default is off, so 
    # you can omit this line, or change 'on' to 'off' 

    # KeepAlive on 
    기본값은 off이며 클라이언트끼리 정보를 요청할 때 그 프로세스를 살려두는 것으로서 이것을 on으로 하면 프로세스의 부하가 높아질 우려가 있다.  

    # The following line specifies the timeout in seconds of the  
    # persistent connection. If the client fails to issue another 
    # request on the socket within this window, the connection is closed 
      
    # KeepAliveTimeout 10 
     위에서 말한 프로세스끼리의 정보요청 시간을 10초로 설정한다. 숫자는 초단위이며 초기값은 10초이고 변경할 수 있다. 

    # The following line specifies the maximum number of requests 
    # that will be accepted on the persistent connection. If it 
    # is set to 0, then there will be no maximum. 
    # Default:  

    # MaxKeepAliveRequests 0 
    위에서 말한 클라이언트끼리의 정보요청에 대한 수를 말한다. 

    # Misc Options 
    #------------------------------------------------------------------------- 
    #ProcessName: This is the prefix for the process name if compiled with 
    # SETPROCTITLE. 
    # Default: HTTPd 

    #ProcessName WebServer 
    프로세스의 이름 즉, daemon의 외부정보가 기본값은 HTTPd이다. 이것을 변경하려면 WebServer 자리를 변경하고 주석표시문자 #를 없애주면 된다. 

    # Annotation-Server: Name of our annotation server.  This will send back 
    # an Annotation: header with requests to denote where the annotation server 
    # is located. 
    #Default: None 
    #========================================================================= 
    # VirtualHost 
    #------------------------------------------------------------------------- 
    # VirtualHosting is the ability to respond differently to different IP 
    # addresses.  It can be implemented either by having a single server respond 
    # to all, or by having a different server respond to each (the Unix(tm) OS 
    # setup precludes responding to some)  Every effort has been made to allow 
    # a single server respond to all as effectively as possible, as this is 
    # more resource efficient.  There are something which still aren't possible 
    # in that configuration, however. 
    # BindAddress: A '*', IP number, or host name.  Binds the server to a  
    # specific IP address.  * is all IP addresses.  Should not be used in 
    # conjunction with <VirtualHost> 
    # Default: * 

    #BindAddress 127.0.0.1 
    system내부에 있는 p-id가 127.0.0.1 이므로 그대로 둔다 

    # VirtualHost allows you to look differently depending on the hostname you 
    # are called by.  The parameter must be either an IP address or a hostname 
    # that maps to a single IP address.  Most of the normal httpd.conf commands 
    # are available, as well as the ability to denote a special ResourceConfig 
    # file for this host. 
    # You can also specify an error level with this setting, by denoting the  

    # VirtualHost as Optional or Required. 
    <VirtualHost 127.0.0.1 Optional> 
    DocumentRoot /local 
    html 문서의 최상위 디렉토리를 지정하는 것으로서 이것은 관리자의 뜻대로 하면 되지만 현재 daemon이 /usr/local/etc/httpd 이며 하위디렉토리중 htdocs 가 있으므로 이것을 다음과 같이 변경하기 바란다. 
      
    DocumentRoot /usr/local/etc/httpd/htdocs 
    ServerName localhost.ncsa.uiuc.edu 
    실제의 ServerName을 사용한다. 즉 ServerName comsys.sunchon.ac.kr 과 같은 방식으로 수정한다. 
    ResourceConfig conf/localhost_srm.conf 
    일반적인 httpd 의 옵션외의 정보를 지정하는 것으로서 ServerRoot가 /usr/local/etc/httpd로 되어 있으므로 그대로 사용한다. 
    </VirtualHost> 
    ☞ httpd.conf 의 끝. 

    7.6 srm.conf 

     다음은 일례를 보인 것이며, srm.conf 내용을 읽으면 다른 선택사항이 있다. 그리고 그것이 이해가 안가면 http://hoohoo.ncsa.uiuc.edu/docs/setup/srm/Overview.html를 참고하면 된다.   그리고 아래에서 특별한 언급이 없는 것은 권고사항이다.  
    DocumentRoot /usr/local/etc/httpd/htdocs   
    웹문서가 위치하는 최상위 디렉토리를 지정한다. http://comsys.sunchon.ac.kr/이라고 입력하면 서버시스템 comsys.sunchon.ac.kr의 디렉토리 /usr/local/etc/httpd/htdocs에 있는 문서들이 보여지는 것이다. 만약 /webdoc/ 이라는 디렉토리로 지정하고자 하면 /webdoc 이라고 지정하면 된다.   

     UserDir public_html   
    만약 서버시스템 comsys.sunchon.ac.kr에 개인들의 디렉토리가 있다면 각 개인의 홈디렉토리에 어떤 서브디렉토리가 개인의 웹문서를 가지고 있는지 지정한다. comsys.sunchon.ac.kr에 pctop이라는 ID가 있고 그 홈디렉토리가 /home/pctop이라면 pctop은 디렉토리 /home/pctop/public_html에 문서를 작성해야만 한다. 이렇게 개인들이 홈페이지를 작성할 경우 개인의 홈페이지에 대한 URL은 http://comsys.sunchon.ac.kr/~pctop/ 이다.   
    Virtual URLs   
      
    Alias   
    가령 icon이 모아져 있는 디렉토리가 /htdocs/image/icons라면 이곳에 있는 파일을 지정하기 위해서는 라고 입력해야 한다. 그러나 다음과 같이  Alias /icons/ /htdocs/image/icons/로 지정하면 http://comsys.sunchon.ac.kr/icons/redball.gif  
    라고만 입력해도 된다. 즉, /icons/라는 것이 URL상에 표기되면 그것을 실제디렉토리  /image/icons/로 치환해주는 역할을 하는 것이다.  
     
     
     



[ HOME ][ PREV ]