‘APM(Apache, PHP, MariaDB) 구축하는 방법’ 먼저 읽어보기<<
Apache와 연결되는 웹 서버 기본 설정 파일인 httpd.conf 파일에 대해 알아보겠습니다.
아파치 설정은 http.conf 파일에서 합니다.

기본 설치 시 경로는 /etc/httpd에 설치가 되며,
설정 파일은 /etc/httpd/conf 경로에 httpd.conf 이름으로 존재합니다.
기본 구성 요소로는 다음과 같습니다.
✔ ServerRoot
– Apache 서버의 루트 디렉토리 경로를 설정하였습니다.
– ServerRoot 디렉토리에는 아파치 서버의 주요 구성 파일인 httpd.conf 파일이 위치
– 다른 관련 파일들도 해당 디렉토리 내에 저장.
– 아파치 서버는 이 디렉토리를 기준으로 다른 경로들을 참조함.(올바르게 설정 필요)

[예시]
– 아래의 예시는 아파치 서버의 ServerRoot를 “/etc/httpd”로 설정하였습니다.
– 아파치 서버는 설정 파일과 모듈, 로그 파일 등을 “/etc/httpd” 디렉토리에서 찾아 사용.
– 실제 설치된 아파치 서버의 경로에 따라 ServerRoot를 변경 가능.

✔ Listen
– Listen은 아파치와 통신하는 포트를 설정한다.
– Listen이 설정되어 있지 않으면 아파치가 실행되지 않음.
– 여러 포트 지정 시 Listen 지시자를 여러번 선언한다.

✔ ServerName
– 서버가 자신을 식별하는데 사용하는 호스트 이름 및 포트를 설정한다.
– 클라이언트에게 보여주는 호스트 이름을 지정한다.
– VirtualHost(가상 호스트)를 설정하는 경우 각 호스트당 ServerName 지정.

✔ DocumentRoot
– 가상 호스트에서 별도의 DocumentRoot를 설정하여 서로 다른 웹사이트를 호스팅 할 수 있음.
– 아파치 서버의 DocumentRoot 경로를 “/var/www/html”로 설정 시 해당 디렉터리 내에 있는
파일들이 웹 사이트의 컨텐츠로 사용되며 클라이언트에게 제공 됨.

✔ LoadModule
– ServerRoot/modules 디렉토리 안에 있는 모듈을 읽어들이고 사용 가능한 모듈 목록에 추가한다.
– 아파치는 두가지 방식이 있습니다.(DSO, Static Object)
– DSO의 경우 앞의 APM Yum 설치 했을 경우 사용하고 Static Object의 경우는
Apache를 컴파일 설치 시 사용합니다.
✔ IfModule
– 해당 모듈을 사용하려면 LoadModule 구문을 추가 해야합니다.<참고 : IfModule [Module_name]>
– 아파치 yum 설치 시 /etc/httpd/conf.modules.d 디렉터리 하위에 여러 conf 파일이 있으며,
각각의 속성에 맞는 모듈이 설정되어 있습니다.
[예시]
– 아래의 예시는 아파치 서버의 ServerRoot를 “/etc/httpd”로 설정한 것
1) dir_module
– 아래의 예시는 아파치 서버가 디렉터리에서 파일 이름을 지정하지 않았을 때,
index.php, index.html 순으로 파일을 찾아 제공합니다.

2) mime_module
– mime_model : 웹 서버에서 사용되는 파일의 확장자와 해당 파일의 MIME 타입 간의 매핑을 관리
– .php .html .htm 확장자를 가진 파일 내에 php 코드가 작성되어 있는 경우 php 문법으로 해석
✔ LogFormat
– 아파치 웹 서버가 클라이언트 요청과 서버 응답에 대한 정보를 어떻게 기록할지를 결정합니다.
– 서버의 활동을 모니터링하고 트러블슈팅을 위해 사용할 수 있습니다.
– 설정한 로그 포맷에 이름을 설정하며 저장하여 사용할 수 있습니다.

| 옵션 | 설명 |
| %h | 클라이언트(원격 호스트) ip 주소 |
| %l | 클라이언트 식별자 |
| %u | 인증 사용자명 |
| %t | 요청이 받아들여진 날짜와 시간을 로그에 기록 day/month/year:hour:minute:second zone DD/MM/YYYY:hh:mm:ss |
| \”%r\” | 클라이언트가 어떤 내용을 요청하였는지 확인 가능 |
| %>s | 서버가 클라이언트에게 보내는 상태코드 |
| %b | 콜라이언트에게 보내는 내용의 크기 |
| %{헤더명}i | 요청에 포함된 헤더명의 값 |
✔ CustomLog
– Access 로그 저장되는 위치와 포맷을 설정합니다.(LogFormat 불러오기 가능)

✔ ErrorLog
– 아파치의 Errorlog가 생성될 경로 지정합니다.

✔ LogLevel
– Log 남길 기준의 Level을 설정합니다.
– 설정 가능한 레벨은 다음과 같습니다.
– 참고 사이트 : https://httpd.apache.org/docs/2.4/mod/core.html#loglevel
| 레벨 | 의미 |
| emerg | 서버가 가동 할 수 없을 정도의 심각한 오류 |
| alert | crit보다 심각한 오류 |
| crit | 치명적인 오류 |
| error | 오류 |
| warn | 경고 |
| notice | 알림 메시지 |
| info | 서버 정보 |
| debug | 디버깅을위한 정보 |
오늘은 Apache 웹 서버 기본 설정 파일인 httpd.conf 파일에 대해 알아보았습니다.
다음 시간에도 알차고 유익한 정보에 대해서 말씀드릴게요!
아이티이지 서비스에 대한 궁금 하신점이 있으시다면,
언제든지 ‘문의하기’를 통해 남겨 주세요. 빠르게 답변 드리겠습니다. 감사합니다!
IT is easy, ITEASY!
