지난 DNS 서버 구축 실습 포스트에서는 너무 많은 내용을 담으려다 되려 글이 길어지고 내용도 충실히 담지 못했다.
이번 포스트부터는 쉽게 보고 따라할 수 있도록 과정만 간략히 정리하고,
이론이나 설정 상세 등의 내용은 별도의 포스트에 따로 정리하려 한다.
이 블로그를 운영하는 가장 큰 목적은 내가 공부한 내용을 내가 나중에 볼 수 있도록 정리하는 것이기 때문이다.
이 포스트에서는 다음과 같은 구성으로 웹 서버를 구축한다.
웹 서버
도메인 이름: www.st07.sec
IP주소 : 192.168.10.176/24
로컬 네임 서버
IP주소 : 192.168.10.175/24
Apache 웹 서버를 구축하는 과정은 크게 프로그램 설치 및 컴파일 과정과 설정 및 실행 과정으로 나뉜다.
특별히 정해진 매뉴얼은 아니고 개인적으로 기억하기 편해서 나누었다.
본 포스트는 httpd 2.2.x 버전으로 진행한다.
x로 표기한 자리는 달라도 큰 문제 없지만 직접 표기한 앞 두자리는 달라지면 설치 방법이 달라질 수 있다.
1. 프로그램 설치 및 컴파일
2. 웹 서버 설정 및 실행
1. 프로그램 설치 및 컴파일
1-1. 관련 패키지를 설치한다.
# yum install -y gcc gcc-c++ cmake apr apr-util zlib-devel wget net-tools expat-devel perl
1-2. httpd 소스 파일을 /usr/local 경로에 다운받는다.
소스 파일은 Apache 공식 사이트에서 구할 수 있다. stable 버전을 권장한다.
# wget https://archive.apache.org/dist/httpd/httpd-2.2.34.tar.gz
1-3. 소스파일 압축을 푼다.
# tar xvfz httpd-2.2.34.tar.gz
1-4. Apache 프로그램을 컴파일하고 설치한다.
# cd httpd-2.2.34
# ./configure --prefix=/app/apache --enable-rewrite --enable-so
# make
# make install
prefix : Apache를 설치할 디렉터리 경로 지정
make : 소스코드 컴파일
make install : 프로그램 설치
과정을 계속 출력하면서 설치가 진행된다.
중간에 문제가 생기면 실행을 멈추고 에러 메시지를 출력하므로 그때 확인한다.
별다른 메시지 없이 과정만 쭉 출력되다가 끝나면 정상적으로 설치된 것이다.
2. 웹 서버 설정 및 실행
2-1. 웹 서비스를 관리할 web 그룹과 webmaster 사용자를 생성한다.
웹 페이지를 만드는 사람(웹 디자이너 등)이 웹 페이지를 서버에 업로드할 때 이 계정을 사용하도록 한다.
webmaster 계정은 웹 서비스와 관련된 파일 및 디렉터리 외에는 접근할 수 없도록 하는 것이 목적이다.
# groupadd -g 1080 web
# useradd -g web webmaster
web 그룹의 gid는 1024 이상의 임의의 값으로 설정하였다.
2-2. 웹서버 홈 디렉터리(DocumentRoot) 생성
웹 서버의 홈 디렉터리를 생성한다. 홈 디렉터리에는 웹 서비스와 관련된 파일(웹 페이지 등)이 업로드된다.
# mkdir -p /home/httpd/html
홈 디렉터리 경로는 임의로 정하거나 사전에 약속한 경로로 설정한다.
단, 해당 경로를 통해서 시스템의 다른 곳에 불법적으로 접근할 수 없도록 안전하게 관리 가능한 경로로 설정한다.
2-3. httpd.conf 파일 수정
conf 파일을 수정한다. 파일은 설치한 디렉터리 하위의 conf 디렉터리에 있다.
/app/apache/conf/httpd.conf
# vi /app/apache/conf/httpd.conf
파일 내용을 다음과 같이 수정한다.
...
ServerName [localhost or IP주소]
DocumentRoot “/home/httpd/html”
<Directory “/app/apache/htdocs”> … </Directory> 주석처리
--------아래 내용 추가------
<Directory "/home/httpd/html/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
...
2-4. httpd.conf 파일 구문 점검
/app/apache/bin/httpd ‐t
2-5. DocumentRoot 경로 디렉터리에 대해 web 그룹과 webmaster에게 권한부여
# chown -R webmaster.web /home/httpd
2-6. webmaster 홈 디렉터리와 Apache 서버의 DocumentRoot 마운트
웹 서비스 관리자의 홈 디렉터리에서 DocumentRoot 디렉터리로 바로 접근할 수 있도록 디렉터리를 마운트한다.
이는 ftp로 파일을 업로드할 때 적용되는 보안 기능과 관련된 내용으로, 여기서는 자세히 다루지 않는다.
# mkdir /home/webmaster/httpd
# chown webmaster.web /home/webmaster/httpd
# mount --bind /home/httpd/ /home/webmaster/httpd/
2-7. 서버 구동
# /app/apache/bin/apachectl start
2-8. 웹 페이지를 업로드하고 서비스 테스트
별다른 설정을 하지 않은 상태이므로 index.html 파일을 업로드해 테스트한다.
# su webmaster (root로 접속한 상태라면 실행)
# cd ~
# cd httpd/html/
# echo welcome to st07.sec! > index.html
다른 클라이언트에서 [www.st07.sec]에 대한 호스팅 정보를 가지고 있는 네임 서버를
로컬 네임 서버로 설정한 뒤 접속을 시도한다.
2-9. rc.local 파일에 자동실행 설정
# vi /etc/rc.d/rc.local
--------아래 내용 추가--------
/app/apache/bin/apachectl start
'System > Server' 카테고리의 다른 글
Oracle, php 연동 Apache 웹 서버 구축 (0) | 2023.05.02 |
---|---|
웹 서버 IP기반 VirtualHost 설정 (Linux) (0) | 2023.02.28 |
DNS 서버 구축 실습 (리눅스 환경, bind) (0) | 2023.02.20 |
로컬 DNS 서버의 동작 과정 (0) | 2023.02.15 |
로컬 DNS 서버, 캐시 DNS 서버, 책임 DNS 서버 (0) | 2023.02.15 |