이글은  Apache2 설치 후  기본적인 설정파일에 대한 설명을 합니다. 


  (리눅스 환경은 우분투를 기준으로하지만 다른 배포본들도 설치경로에 차이가 좀 있을 수 있고 아파치2 설정방식은 동일 합니다.)





1. 설치하기


우분투에서 아파치 설치는 간단합니다.


아래처럼 apt-get 을 이용해서 설치명령을 주면 주르륵 설치는 끝납니다.


$sudo apt-get install apache2

패키지 목록을 읽는 중입니다... 완료

의존성 트리를 만드는 중입니다

상태 정보를 읽는 중입니다... 완료

다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:

  linux-headers-3.2.0-29 linux-headers-3.2.0-29-generic-pae

이들을 지우려면 'apt-get autoremove'를 사용하십시오.

다음 패키지를 더 설치할 것입니다:

  apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1

  libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap

제안하는 패키지:

  apache2-doc apache2-suexec apache2-suexec-custom

다음 새 패키지를 설치할 것입니다:

  apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common

  libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap

0개 업그레이드, 9개 새로 설치, 0개 제거 및 88개 업그레이드 안 함.

1,833 k바이트 아카이브를 받아야 합니다.

이 작업 후 5,220 k바이트의 디스크 공간을 더 사용하게 됩니다.

계속 하시겠습니까 [Y/n]?y

.....  


디렉토리설치까지는 끝나고 이후 실제 Apache2를 원하는데로 구동하기 위한 설정이 필요합니다.


설치 후  /etc/apache2  디렉토리를 살펴보면 아래와 같은 파일들을 볼 수 있습니다.


총 5개의 디렉토리와 5개의 설정파일이 보입니다.



2. 설정파일 설명


구동시적용 되는 순서대로 파일을 설명합니다.


envvars : 환경변수 설정파일  

기본적으로 아파치는 구동이 될때  /etc/init.d/apache2  스크립트를 통해 데몬으로 띄워지게 됩니다.

이 스크립트에서 envars 파일을 환경 변수 적용파일로 사용하게 됩니다.  apache2에 적용이 필요한 환경변수 값이 있다면 envvars 파일에 적용하면됩니다.


apache2.conf : Apache2 설정 파일

아파치2가 실행될때 가장먼저 읽어드리게 되는 파일이며 여기에서 다른 설정파일들을 Include 명령으로 (아래예 처럼)포함하고 있습니다.


# ------------------ 다른 설정 파일들을  Include 명령으로 포함하고 있음 ----

# Include module configuration:

Include mods-enabled/*.load

Include mods-enabled/*.conf


# Include all the user configurations:

Include httpd.conf


# Include ports listing

Include ports.conf

#...


# Include generic snippets of statements

Include conf.d/


# Include the virtual host configurations:

Include sites-enabled/


 즉, 모든 설정은 apache2.conf 파일을 통해서 이루어지게 되나. 설정관리를 좀더 편리하게 하기위해 각각 별도의 파일이나 디렉토리에 나누어 저장하고 이를 실행시점에 Include 로 하나의 파일로 포함되게 하는 것입니다.  그래서 보통은 apache2.conf 파일을 직접수정하기 보다 각각의 설정 내용에 맞는 파일을 찾아 수정하게 됩니다.


mods-enabled/ :  이 서브디렉토리 경로는 Apache2 가 구동될때 사용할 추가 모듈에 대한 정의를 저장하게 되는 곳입니다.   *.load 파일에서는 모듈을 읽어드리는 LoadModule 명령을 포함하고 있게 되고 *.conf 파일에서는 해당 모듈에 대한 설정 정보를 포함하고 있습니다.


mods-available/ : 이 서브디렉토리는  Apahce2를 처음 설치를 하게 되면 기본적으로 사용가능한 모듈들을 포함하고 있습니다.  여기한 포함된 모듈중 실제사용할 모듈은 mods-enabled/ 경로에서 링크를 하고 있게 됩니다.



  관리자는 사용을 원하는 모듈에 대해서는 a2enmod 명령을 이용해서 mods-enabled/ 경로에 링크를 만들어주면 됩니다.


$a2enmod <모듈명>



아래의 예는  alias 모듈을 활성화 하는 예입니다.

아래 처럼 ln 명령으로 심볼릭 링크를 만들어 주어도 결과는 같습니다.


$ln -s /etc/apache2/mods-available/alias.load /etc/apache2/mods-enabled/

$ln -s /etc/apache2/mods-available/alias.conf /etc/apache2/mods-enabled/


특정 모듈을 비활성화 하려면  a2dismod  명령을 사용합니다.

$a2dismod <모듈명>




httpd.conf : 아파치 사용자 임의 설정들을 넣는 용도로 사용합니다.

  Apache2처음 설치시 이파일에는 아무내용도 없습니다. 0바이트 이죠.   모듈설정이나 가상도메인들은 별개의 디렉토리에 별도 파일로 작성하게 되기때문에,  이런용도외에  특별히 추가할 사항들에 대해서만 httpd.conf에 추가하면 적절할것 같습니다.


ports.conf : 리스닝 포트를 설정합니다.

처음에는 아래내용이 채워져 있습니다.


#도메인 네임기반 가상호스트를 설정하는데 80포트에 대해서 한다는 의미

NameVirtualHost *:80


#80 포트로 리스닝을 합니다.

Listen 80


#mod_ssl.c 모듈이 있을때는 443 포트로 리스닝을 합니다.

<IfModule mod_ssl.c>

    # If you add NameVirtualHost *:443 here, you will also have to change

    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl

    # to <VirtualHost *:443>

    # Server Name Indication for SSL named virtual hosts is currently not

    # supported by MSIE on Windows XP.

    Listen 443

</IfModule>


#  mod_gnutls 가 있을때는 443포트로 리스닝을 합니다.

<IfModule mod_gnutls.c>

    Listen 443

</IfModule>




sites-available/: 하나의 Apache2 서버에 여러 (가상)사이트를 운영하는 경우 여기에 해당 사이트 별로 추가를 합니다.  사이트는 도메인네임기반(Name Based)일수도, 포트기반, 또는 IP기반으로도 할 수 있습니다.


sites-enabled/: 실제활성화할 사이트파일에 대한 링크를 생성하는경로 입니다. sites-available/ 디렉토리에서 대상사이트 파일을 생성한뒤 a2ensite  명령을 이용해서 활성화(심볼릭링크 생성)합니다.  반대로 비활성화를 하려면 a2dissite 명령을 사용합니다. 


예를 들어  www.funnylog.com  이란 사이트를 운영하고자 한다면 다음과 같이 됩니다.



먼저 default 라는 이미 있는 파일을 템플릿으로 하여 www.funnylog.kr이라는 사이트용 파일을 만듭니다.


/etc/apache2/sites-available$ cp default www.funnylog.kr


그리고 아래 파일처럼 수정합니다.  앞서 ports.conf 파일에서 NameVirtualHost *:80 으로 도메인네임기반 가상호스팅이 설정된 상태이므로  각 사이트 설정파일에  ServerName 에 따라서 홈페이지 경로가 적용되게 됩니다.


<VirtualHost *:80>

        ServerAdmin webmaster@funnylog.kr

#가상 호스트 도메인명 

        ServerName www.funnylog.kr

        ServerAlias *.funnylog.kr


#홈페이지 경로 index.html 파일이 저장된곳 

        DocumentRoot /var/sites/funnylog.kr

        <Directory />

                Options FollowSymLinks

                AllowOverride None

        </Directory>

        <Directory /var/sites/funnylog.kr/>

                Options Indexes FollowSymLinks MultiViews

                AllowOverride None

                Order allow,deny

                allow from all

        </Directory>


        ErrorLog ${APACHE_LOG_DIR}/error_weheo.log


        # Possible values include: debug, info, notice, warn, error, crit,

        # alert, emerg.

        LogLevel warn


        CustomLog ${APACHE_LOG_DIR}/access_weheo.log combined


</VirtualHost>


만들어진 사이트를 a2ensite 명령어로 활성화합니다. (앞서 모듈과 같은 방식입니다.)


/etc/apache2/sites-available$ a2ensite  www.funnylog.kr


비활성화를 할때는 a2dissite 명령어를 사용합니다. 


/etc/apache2/sites-available$ a2dissite  www.funnylog.kr


Apache2 서비스에 설정파일을 리로드 하도록 합니다.


/etc/apache2/sites-available$ sudo service apache2 reload



   다끝났으면  해당 사이트 경로(/var/sites/funnylog.kr)에 보여질 웹페이지를 만들고 적용이 끝났으면 웹브라우저로 해당 사이트에 접속하여 원하는 페이지가 보이는지 확인합니다.


마치겠습니다.




Posted by 퍼니로거 즐건록