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/로
치환해주는 역할을 하는 것이다.