ubuntu 20.04 apache2 설치부터 설정까지

Jayden Yun·2022년 1월 11일
0

ubuntu apache2 스테이징 환경을 구축하면서 기초적인 부분이라도 끄적여본다.

서버환경: ubuntu 20.04

apache2 설치

apt를 활용한 아파치 설치

sudo apt-get install apache2

설치를 완료후 잘 설치 되었는지 버전을 확인해본다

apache2 -v

설치가 잘 되었다면 일단 서비스를 실행해보자

apache2 실행

sudo systemctl start apache2

잘 실행되었는지 확인

ps aux | grep apache2

여기까지 이상이 없다면 설치는 완료다 !

설정을 시작하기전에 간단하게 apache2 구조를 살펴보자

apache2 구조

/etc/apache2 : apache 디렉토리

/etc/apache2/apache2.conf : 설정파일 ( 해당파일에서 mod,site,port,conf 다 불러온다)

/etc/apache2/mods-available : 사용가능한 모듈

/etc/apache2/mods-enabled : a2enmod(활성)/a2dismod(비활성)를 활용하여 mods-available에 있는 모듈을 활성화 시킬수있다. ( 활성화 되는 방식은 mods-available의 모듈을 심볼릭 링크로 추가하여 활성)

/etc/apache2/ports.conf : Listen 할 포트를 설정

/etc/apache2/sites-available : 서버에 운영할 사이트 설정파일

/etc/apache2/sites-enabled : a2ensite(활성)/a2dissite(비활성)를 활용하여 sites-available에 있는 설정파일을 활성화 시킬 수 있다. (방식은 mods-enabled의 설명과 같음)

/etc/apach2/conf-available : 사용가능한 구성파일

/etc/apach2/conf-enabled : a2enconf(활성)/a2disconf(비활성)를 활용하여 conf-available에 있는 설정파일을 활성화 시킬 수 있다. (방식은 mods-enabled의 설명과 같음)

/etc/apache2/magic :파일의 시작값(magic number) 데이터베이스. 이 값에 기반해 전송하는 파일의 MIME Type을 결정한다.

/etc/apache2/envvars : apache2ctl 환경설정 파일이다.

apache2는 위와 같이 구성되어있다.

apache2 설정

site 설정을 위해 sites-available을 들어가게되면

/etc/apache2/sites-available/000-default.conf
/etc/apache2/sites-available/default-ssl.conf

두개 파일이 기본으로 있는대 000-default.conf(port 80)[http://] default-ssl.conf(port 443)[https://] 한개의 사이트만 운용 할꺼라면 해당을 수정해서 사용해도 되지만 좀 더 아름다운 관리를 위해 설정파일을 하나 생성해준다.

파일 복사

cp 000-default.conf test.com.conf

test.com.conf 파일을 살펴보자

<VirtualHost *:80>
  ServerAdmin webmaster@test.com #관리자메일 
  ServerName test.com #도메인
  DocumentRoot /var/www/html #경로
  
  ErrorLog "|/usr/bin/rotatelogs ${APACHE_LOG_DIR}/error.log.%Y-%m-%d_%H 3600 +540" # 매시간마다 에러로그파일을 변경
  ErrorLog "|/usr/bin/rotatelogs ${APACHE_LOG_DIR}/access.log.%Y-%m-%d_%H 3600 +540" # 매시간마다 접근로그파일을 변경
</VirtualHost>

기본적으로 sites-enabled 확인해보면 000-default.conf, default-ssl.conf 사이트 두개가 활성화 되어있다.

기본파일 비활성 및 신규 생성파일 활성

a2dissite 000-default.conf
a2dissite default-ssl.conf
a2ensite test.com

위와같이 설정을 하면 80포트로 접속하면 test.com.conf를 바라보게 된다.

추가로

default-ssl.conf를 살펴보면 최상단에 로 if로 감싸져 있기때문에
mod_ssl이 활성화 되지 않으면 백날 파일을 지지고 볶고 만들어봐야 https를 사용할수없다.

mod_ssl 활성화

a2enmod ssl

활성화 후에는 꼭 재시작을 해주자

apache2 재시작

sudo systemctl restart apache2

쓰다보니까 끝도 없이 쓸거 같아서 .. 여기서 마무리한다.

이 글을 쓰면서 느낀점은 메뉴얼을 잘 읽어보고 왜 어떻게 동작하는지 조금만 고민하다 깨닫는 순간 어려워 보이던 설정도 별거 없다고 느껴진다.
그리고 메뉴얼을 무서워하지 말자. 구글 번역기만 돌려도 어느정도는 다 알아 먹을 수 있다.
번역기 쵝오! ^o^

profile
이것저것 알고 싶은게 많은 개발자

0개의 댓글