아파치 웹 서버(Apache Web Server) 설치와 설정(Ubuntu)

아파치 웹 서버 설치 명령어는 다음입니다.

sudo apt-get install apache2

웹 서비스는 80번 포트를 사용해 요청하고 마찬가지로 80번 포트를 사용해 결과를 보내줍니다.

따라서 웹 서버가 작동하는 컴퓨터의 80번 포트를 방화벽으로 열어주어야 합니다.

방화벽을 사용한 적이 없다면 먼저 방화벽을 사용하는 명령(enable)을 내리고 80번 포트를 열어줍시다.

sudo ufw enable
sudo ufw allow 80

이제 웹 브라우저의 주소창에 웹 서버를 설치한 컴퓨터에서 자신의 주소(localhost)를 넣어보거나, 다른 컴퓨터나 스마트폰에서 웹 서버가 설치된 컴퓨터의 IP 주소를 입력하면 서버의 /var/www/html/ 디렉터리에 있는 index.html 파일을 볼 수 있습니다.

다른 장치에서 볼 수 없으면 웹 서버를 설치한 컴퓨터가 사설 IP 주소를 가지고 있기 때문일 것입니다.

이 경우, 공인 IP 주소를 갖도록 네트워크 연결 구조를 바꾸거나, 공유기의 포트포워딩 기능 등을 사용하여 해결할 수 있습니다.

이 문제는 여기서 언급하지 않고 지금은 아파치 웹 서버 설정 파일 구조를 알아봅시다.

설정 파일들은 /etc/apache2/ 디렉터리에 들어있습니다. 내용물은

  • conf-available, conf-enabled 디렉터리
  • mods-available, mods-enabled 디렉터리
  • sites-available, sites-enabled 디렉터리
  • apache2.conf, ports.conf, magic, envvars

이 중 apache2.conf 파일로 기본적인 설정을 합니다.

그리고 디렉터리로 되어있는 conf, mods, sites는 각각 available 디렉터리에 고급 설정이나 추가 기능 파일들이 들어있습니다.

이 중 사용하고자 하는 기능들을 enabled 디렉터리에 심볼릭 링크를 만들어 사용합니다.

apache2.conf 파일을 열어보면 몇 군데에 걸쳐 아래 내용을 볼 수 있는데

# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

# Include list of ports to listen on
Include ports.conf

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

각 enabled 디렉터리에 심볼릭 링크를 걸면 추가 기능을 사용할 수 있는 이유를 알 수 있습니다.

추가 기능 모듈들이 들어있는 mods 디렉터리의 경우 conf 파일뿐만 아니라 load 파일도 필요한 것도 알 수 있습니다.

당연하지만 각 available 디렉터리에서

sudo ln -s 추가할기능 해당enabled디렉터리

이렇게 심볼릭 링크를 만들어도 되지만 이 작업을 해주는 간단한 명령어가 있습니다.

  • conf-available의 기능 추가 : a2enconf
  • conf-available의 기능 삭제 : a2disconf
  • mods-available의 기능 추가 : a2enmod
  • mods-available의 기능 삭제 : a2dismod
  • sites-available의 기능 추가 : a2ensite
  • sites-available의 기능 삭제 : a2dissite

어떤 약자인지 쉽게 알 수 있어 외우기도 쉽습니다.

예를 하나 들어 웹 서버 루트 디렉터리가 아니라 사용자마다 자신의 웹 사이트를 만들 수 있도록 설정을 바꿔보겠습니다.

sudo a2enmod userdir

위 명령 하나로 끝입니다. mods-available 디렉터리에서 userdir.conf와 userdir.load 두 파일의 심볼릭 링크가 mods-enabled 디렉터리에 만들어졌습니다.

웹 서버가 되었던 어떤 서버 프로그램이 되었던 설정을 바꿨으면 재시작 해야 합니다.

sudo service apache2 restart

사용자마다 홈 디렉터리에 public_html 디렉터리를 만들고 그 안에 웹 페이지를 만들어 웹 브라우저로 볼 수 있습니다.

public_html인 이유는 mods-available/userdir.conf 파일에 그렇게 설정되어있기 때문입니다.

public_html에 index.html 파일을 만들고 브라우저 주소창에 서버 컴퓨터의 ‘IP 주소/~아이디’를 넣으면 index.html 파일의 내용을 볼 수 있습니다.

index라는 이름은 주소의 경로에 파일명이 없으면 기본값으로 index를 찾게되어있기 때문에 알아서 나오는 것이고 다른 파일명이라면 ‘IP 주소/~아이디/파일명’처럼 파일명까지 넣어주어야 합니다.

 

SW Level Up

mail@swlevelup.com

You may also like...

댓글 남기기

이메일은 공개되지 않습니다.