본문으로 건너뛰기

Ubuntu 서버에서 Apache2 모듈을 활성화하려면 어떻게 하나요?

💡 요약 정리

  • Ubuntu에서 apache2를 사용할 경우, a2enmod 명령어를 활용해 모듈을 활성화할 수 있습니다.
  • /etc/apache2/mods-available에 설치된 모듈에서 /mods-enabled로 심볼릭 링크를 생성해 활성화합니다.
  • mod_rewrite 활성화를 위해 필요한 추가 설정과 apache2 재시작 절차가 포함되어 있습니다.

1. Apache2 모듈 활성화 전 디렉토리 구조 확인

a2enmod 명령으로 Apache 모듈을 활성화하기 전에 디렉토리 구조를 확인합니다.

root@localhost:~# cd /etc/apache2/
root@localhost:/etc/apache2# ls
apache2.conf  conf.d  envvars  httpd.conf  mods-available  mods-enabled  ports.conf  sites-available  sites-enabled
  • mods-available 디렉토리: 활성화 가능한 모듈들이 위치
  • mods-enabled 디렉토리: 실제 활성화된 모듈들의 심볼릭 링크가 생성됨

2. Apache 모듈 목록 확인

mods-available 디렉토리에서 사용 가능한 모듈 목록을 확인합니다.

root@localhost:/etc/apache2# cd mods-available/
root@localhost:/etc/apache2/mods-available# ls
actions.load        authz_owner.load     dir.conf           log_forensic.load     proxy_ftp.load
alias.load          authz_user.load      dir.load           mem_cache.conf        proxy_http.load
asis.load           autoindex.load       disk_cache.conf    mem_cache.load        rewrite.load
auth_basic.load     cache.load           disk_cache.load    mime.load             setenvif.load
auth_digest.load    cern_meta.load       dump_io.load       mime_magic.conf       sick-hack-to-update-modules
authn_alias.load    cgi.load             env.load           mime_magic.load       speling.load
authn_anon.load     cgid.conf            expires.load       mod_python.load       ssl.conf
authn_dbd.load      cgid.load            ext_filter.load    negotiation.load      ssl.load
authn_dbm.load      charset_lite.load    file_cache.load    perl.load             status.load
authn_default.load  dav.load             filter.load        php5.conf             suexec.load
authn_file.load     dav_fs.conf          headers.load       php5.load             unique_id.load
authnz_ldap.load    dav_fs.load          ident.load         proxy.conf            userdir.conf
authz_dbm.load      dav_lock.load        imagemap.load      proxy.load            userdir.load
authz_default.load  dbd.load             include.load       proxy_ajp.load        usertrack.load
authz_groupfile.load deflate.conf        info.load          proxy_balancer.load   version.load
authz_host.load     deflate.load         ldap.load          proxy_connect.load    vhost_alias.load

mods-enabled 디렉토리에 접속하여 활성화된 모듈의 목록을 확인할 수 있습니다.

root@localhost:/etc/apache2/mods-enabled# ls -l
total 0
lrwxrwxrwx 1 root root 28 2008-12-02 01:42 alias.load -> ../mods-available/alias.load
lrwxrwxrwx 1 root root 33 2008-12-02 01:42 auth_basic.load -> ../mods-available/auth_basic.load
lrwxrwxrwx 1 root root 33 2008-12-02 01:42 authn_file.load -> ../mods-available/authn_file.load
lrwxrwxrwx 1 root root 36 2008-12-02 01:42 authz_default.load -> ../mods-available/authz_default.load
lrwxrwxrwx 1 root root 38 2008-12-02 01:42 authz_groupfile.load -> ../mods-available/authz_groupfile.load
lrwxrwxrwx 1 root root 33 2008-12-02 01:42 authz_host.load -> ../mods-available/authz_host.load
lrwxrwxrwx 1 root root 33 2008-12-02 01:42 authz_user.load -> ../mods-available/authz_user.load
lrwxrwxrwx 1 root root 32 2008-12-02 01:42 autoindex.load -> ../mods-available/autoindex.load
lrwxrwxrwx 1 root root 26 2008-12-02 01:42 cgi.load -> ../mods-available/cgi.load
lrwxrwxrwx 1 root root 26 2008-12-02 01:42 dir.conf -> ../mods-available/dir.conf
lrwxrwxrwx 1 root root 26 2008-12-02 01:42 dir.load -> ../mods-available/dir.load
lrwxrwxrwx 1 root root 26 2008-12-02 01:42 env.load -> ../mods-available/env.load
lrwxrwxrwx 1 root root 27 2008-12-02 01:42 mime.load -> ../mods-available/mime.load
lrwxrwxrwx 1 root root 33 2008-12-02 01:42 mod_python.load -> ../mods-available/mod_python.load
lrwxrwxrwx 1 root root 34 2008-12-02 01:42 negotiation.load -> ../mods-available/negotiation.load
lrwxrwxrwx 1 root root 27 2008-12-02 01:42 perl.load -> ../mods-available/perl.load
lrwxrwxrwx 1 root root 27 2008-12-02 01:42 php5.conf -> ../mods-available/php5.conf
lrwxrwxrwx 1 root root 27 2008-12-02 01:42 php5.load -> ../mods-available/php5.load
lrwxrwxrwx 1 root root 30 2008-12-12 12:02 rewrite.load -> ../mods-available/rewrite.load
lrwxrwxrwx 1 root root 31 2008-12-02 01:42 setenvif.load -> ../mods-available/setenvif.load
lrwxrwxrwx 1 root root 29 2008-12-02 01:42 status.load -> ../mods-available/status.load

3. Rewrite 모듈 활성화

① a2enmod 명령어로 rewrite 모듈 활성화

root@localhost:/etc# a2enmod rewrite
Module rewrite installed; run /etc/init.d/apache2 force-reload to enable.

이 명령을 실행하면, /etc/apache2/mods-enabled/ 디렉토리에 심볼릭 링크가 자동으로 생성됩니다.

root@localhost:/etc/apache2/mods-enabled# ls -l /etc/apache2/mods-enabled/rewrite.load
lrwxrwxrwx 1 root root 30 Dec 13 12:02 /etc/apache2/mods-enabled/rewrite.load -> ../mods-available/rewrite.load
a2enmod 명령어를 사용하지 않고 수동으로 직접 심볼릭 링크를 생성해도 동일하게 작동합니다.

4. apache2.conf 파일 설정 추가

① mod_rewrite 구문 추가

/etc/apache2/apache2.conf 파일에 다음 내용을 추가합니다.

<IfModule mod_rewrite.c>
     RewriteEngine On
</IfModule>

5. VirtualHost 또는 Directory 설정 수정

apache2.conf 또는 가상호스트 설정 파일에서 <Directory> 블록 내부를 아래와 같이 수정합니다.

<Directory /home/jook/public_html/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order allow,deny
        allow from all
        # This directive allows us to have apache2's default start page
        # in /apache2-default/, but still have / go to the right place
</Directory>
'AllowOverride None'으로 지정된 경우, .htaccess 파일이 작동하지 않습니다. 반드시 'all'로 변경해야 합니다.

6. Apache 서버 재시작

모든 설정 변경 후, apache2 데몬을 재시작합니다.

root@localhost:/etc# /etc/init.d/apache2 restart

마무리 안내

위 과정을 모두 완료하면 Ubuntu 서버에서 Apache2의 모듈(rewrite 등)을 정상적으로 활성화할 수 있습니다. 적용이 안 되는 경우 설정 파일 오타나 apache2 서비스 상태를 점검해보시기 바랍니다.