Apache는 Linux 머신에서 무료로 사용할 수 있는 오픈 소스 웹 서버이다. 이 글에서는 Ubuntu 환경에서 Apache 서버를 설치하고 설정하는 방법에 대해 알아본다.
Apache 설치
Apache를 설치하려면 apache2
패키지를 설치해야 한다.
sudo apt update
sudo apt install apache2
모든 패키지가 설치되면 브라우저를 열고 localhost로 접속하여 테스트 해 볼 수 있다. 아래 페이지가 보이면 Apache 서버가 성공적으로 설치되었음을 의미한다.

Virutalbox 상 Ubuntu를 설치한 경우 외부에서 Ubuntu의Apache로 접근하려면 포트포워딩을 해줘야 한다. 아래와 같이 8080 포트를 Ubuntu의 80 포트로 포트포워딩 등록을 한다.

아래처럼 Virtualbox 밖에서 브라우저로 8080포트에 접속하여 웹서버로 접근 되는지 확인한다.

방화벽 설정
방화벽(Firewall) 을 활성화 한다.
$ sudo ufw enable
Firewall is active and enabled on system startup
방화벽 추가 가능한 애플리케이션 리스트를 확인한다.
$ sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
CUPS
OpenSSH
Apache Full을 활성화 하기 위해 아래와 같이 ‘Apache Full’ 을 allow 설정한다.
$ sudo ufw allow 'Apache Full'
Rule added
Rule added (v6)
내 웹사이트 만들기
기본적으로 Apache에는 위에서 확인한 바와 같이 기본 사이트가 활성화 되어 있다. 기본 Apache VirtualHost 구성은 그대로 두고 www.mysite.com
을 추가하는 예를 시작하려고 한다. 일단 /etc/hosts 파일에 추가하려는 웹사이트 주소인 www.mysite.com
을 추가한다.
$ cat /etc/hosts | grep mysite
127.0.0.1 www.mysite.com
이제 www.mysite.com
용 웹페이지들을 위치시킬 디렉토리를 생성한다.
sudo /var/www/mysite
생성했으면 웹서비스 시작 페이지인 index.html 파일을 아래와 같이 생성한다.
<html>
<head>
<title> This is My Site!! </title>
</head>
<body>
<p> I'm running this website on an Ubuntu Server server!
</body>
</html>
VirtualHost 설정
우선 Apache 구성 파일 디렉토리로 이동한다. 그 후 기본적으로 제공되는 VirtualHost 파일을 카피하여 기본으로 사용한다. 아래는 mysite.conf
로 복사하여 사용하는 예이다.
cd /etc/apache2/sites-available/
sudo cp 000-default.conf mysite.conf
ServerAdmin
Apache 서버에 오류가 발생할 경우을 대비해 연락할 수 있도록 서버 관리자 이메일을 등록한다.
ServerAdmin admin@mysite.com
DocumentRoot
사이트 웹페이지들이 호스팅 되는 디렉토리를 명기한다.
DocumentRoot /var/www/mysite/
ServerName
서버 주소를 명기한다.
ServerName mysite
ServerAlias www.mysite.com
VirtualHost 활성화
웹사이트를 설정한후 활성화 하려면, 변경한 VirtualHost 설정 파일을 활성화 해야 한다.
$ sudo a2ensite mysite.conf
Enabling site example.com.
To activate the new configuration, you need to run:
systemctl reload apache2
이전 conf 파일은 비활성화 한다.
$ sudo a2dissite 000-deault.conf
구성 파일에 구문 오류가 있었는지 확인한다.
sudo apache2ctl configtest
새 사이트를 로드하려면 Apache를 다시 시작한다.
sudo systemctl reload apache2
VirtualHost 활성화 테스트
VirtualHost가 올바르게 설정되었는지 확인하기 위해 아래와 같이 curl
명령을 실행한다.
$ curl www.mysite.com
<html>
<head>
<title> Ubuntu rocks! </title>
</head>
<body>
<p> I'm running this website on an Ubuntu Server server!
</body>
</html>
브라우저를 실행해서 실제로 웹페이지가 로드 되는지 확인한다.
