MinSpareServers, MaxSpareServers, StartServers, MaxClients,
MaxRequestsPerChild, Port, User Group
/etc/services 파일에서 다음과 같이 수정합니다.
수정 전 :
www 80/tcp http # WorldWideWeb HTTP
수정 후 :
www 80/tcp http httpd # WorldWideWeb HTTP
참고 1.
오른쪽에 나오는 "http", "httpd"는 "www"라는 서비스 이름에 대한
별칭입니다. 실행 파일의 경로가 아님을 정정합니다.
때문에 굳지 httpd를 추가하지 않아도 가능합니다.
수정하지 않을 계획이라면 80/tcp에 해당하는 라인에서 최소한 서비스 이름을
다음에 나오는 inetd.conf 파일에 서비스 이름으로 설정해야 합니다.
저 같은 경우는 httpd를 추가했고 inetd.conf 파일에 httpd로서비스 이름을
설정했습니다.
참고 2.
man 페이지에 의하면,
포트 번호가 1024보다 작은 포트 번호는 오직 루트 레벨에서만 접근할 수 있다고
합니다. 이 포트를 'low numbered'로 부르더군요
/etc/inetd.conf 파일에서 다음을 추가한다.
이 파일에서 중요한 점은 각각의 아파치 웹 서버를 어떤 유저로 실행할
것인가입니다.
보안상 등의 유로 root로 실행하는 방법은 별로 좋지 않다고 [fith]님이 지적해
주셨습니
다.
따라서 root가 아닌 nobody나 다른 유저(비교적 권한이 낮은 /etc/passwd 파일의
유
저)로 변경해야 합니다. (user[.group] 형식임)
저 같은 경우에는 nobody로 설정했습니다.
nobody로 설정했기 때문에 아파치 웹 서버의 로그 파일을 nobody가 쓸 수 있는
퍼미션으로 조정해야 합니다.
대부분 저에게 질문하신 분들이 실패한 이유가 여기에 있습니다.
RPM으로 설치했을 경우에는
# chown -R nobody /var/log/httpd
# chmod 755 /var/log/httpd
# chmod 644 /var/log/httpd/*
로 조정하고 소스로 직접 컴파일하여 설치했을 경우에는
같은 방법으로 로그 디렉토리와 각각의 로그 파일의 퍼미션을 조정하기
바랍니다.
/etc/inetd.conf 파일의 수정내용
RPM 패키지로 설치했을 경우 :
방법 1. TCP Wrapper를 사용하지 않을 경우
httpd stream tcp nowait nobody /usr/sbin/httpd -f
/etc/httpd/conf/httpd.conf
방법 2. TCP Wrapper를 사용할 경우
httpd stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/httpd -f \
/etc/httpd/conf/httpd.conf
참고로 맨 왼쪽의 "httpd"는 /etc/services 파일에 설정한 서비스 이름입니다.
또한 "\"은 한줄에 계속 이어서 쓸 수 없을 경우에 사용합니다.
"-f"는 아파치 설정 파일을 지정하는 옵션입니다.
소스로 /usr/local/apache에 설치했을 경우 :
방법 1. TCP Wrapper를 사용하지 않을 경우
httpd stream tcp nowait nobody /usr/local/apache/bin/httpd -f \
/usr/local/apache/conf/httpd.conf
방법 2. TCP Wrapper를 사용할 경우
httpd stream tcp nowait nobody /usr/sbin/tcpd /usr/local/apache/bin/httpd
-f \
/usr/local/apache/conf/httpd.conf
Inetd를 재가동한다.
# /etc/rc.d/init.d/inet restart
Stopping INET services: [ OK ]
Starting INET services: [ OK ]
#