[Ubuntu] apache2 모듈 활성화

Ubuntu 패키지에 포함된 apache2로 서버를 운영할 경우, a2enmod 명령으로 apache 모듈을 활성화 할 수 있다.

sudo a2enmod rewrite 명령어는 Apache 웹 서버에서 mod_rewrite 모듈을 활성화하기 위해 사용됩니다. mod_rewrite는 Apache의 URL 재작성 모듈로, URL을 동적으로 재작성하거나 리디렉션할 수 있게 해줍니다. 이는 웹 애플리케이션의 SEO를 개선하거나, 더 친숙한 URL 구조를 만들거나, 특정 패턴의 요청을 처리하는 데 매우 유용합니다.

PHP와 함께 사용하는 경우, mod_rewrite를 활성화해야 하는 몇 가지 주요 이유는 다음과 같습니다:

  1. 친숙한 URL 생성: 사용자와 검색 엔진이 이해하기 쉬운 URL을 생성할 수 있습니다. 예를 들어, example.com/page.php?id=123 대신 example.com/page/123와 같은 형태로 변환할 수 있습니다.
  2. SEO 개선: 검색 엔진 최적화(SEO)를 위해 더 나은 URL 구조를 만들 수 있습니다. 의미 있는 URL은 검색 엔진에서 더 잘 인식됩니다.
  3. 보안 강화: 내부적으로 사용하는 변수나 경로를 숨겨 보안을 강화할 수 있습니다. 예를 들어, 쿼리 스트링에 포함된 민감한 정보를 숨길 수 있습니다.
  4. 유연한 라우팅: PHP 프레임워크(예: Laravel, Symfony)에서는 mod_rewrite를 통해 사용자 정의 라우팅을 쉽게 구현할 수 있습니다. 이는 다양한 경로를 간단하게 처리하는 데 도움이 됩니다.

실행 방법

다음은 mod_rewrite를 활성화하는 단계입니다:

1.모듈 활성화

2.Apache 재시작

3.사이트 설정 파일에서 AllowOverride 설정: AllowOverride 디렉티브를 All로 설정해야 .htaccess 파일에서 재작성 규칙을 적용할 수 있습니다. 예를 들어, /etc/apache2/sites-available/000-default.conf 파일을 편집합니다:

4. .htaccess 파일 구성: .htaccess 파일을 사용하여 재작성 규칙을 정의할 수 있습니다. 예를 들어:

이와 같은 설정을 통해 PHP 애플리케이션에서 다양한 URL 재작성 작업을 수행할 수 있습니다.


– ubuntu 패키지의 apache2를 설치할 경우 apache2 디렉토리로 이동하면 아래와 같이 mods-available 디렉토리와 mods-enabled 디렉토리가 있다.

– mods-available 디렉토리에는 활성화 가능한 모듈들이 들어 있으며, mods-enabled 디렉토리에는 실제 활성화 된 모듈들이 symbolic link 가 생성되어 있다.
a2enmod 명령으로 모듈을 활성화 하면 mods-available 디렉토리에 있는 모듈들이 mods-enabled로 symbolic link가 생성된 것을 확인 할 수 있다.

apache2 rewrite 모듈 활성화

  1. a2enmod 명령으로 rewrite 모듈을 활성화

– a2enmod 를 실행 할 경우는 아래와 같이 /etc/apache2/mods-available/rewrite.load 파일이 /etc/apache2/mods-enabled/ 디렉토리로 링크가 생성된다.

– a2enmod 명령을 사용하지 않고 수동으로 링크를 생성해도 된다.

  1. /etc/apache2/apache2.conf 파일에 아래의 내용을 추가한다.
    RewriteEngine On

다음과 같이 간단이 처리
sudo a2ensite site.kr