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 서비스 상태를 점검해보시기 바랍니다.