• 흐림동두천 1.0℃
  • 흐림강릉 1.3℃
  • 서울 3.2℃
  • 대전 3.3℃
  • 대구 6.8℃
  • 울산 6.6℃
  • 광주 8.3℃
  • 부산 7.7℃
  • 흐림고창 6.7℃
  • 흐림제주 10.7℃
  • 흐림강화 2.2℃
  • 흐림보은 3.2℃
  • 흐림금산 4.4℃
  • 흐림강진군 8.7℃
  • 흐림경주시 6.7℃
  • 흐림거제 8.0℃
기상청 제공

아파치에서 CGI 실행 설정

CGI사용은 ScriptAlias로 지정된 위치에서 사용하는게 기본이지만, ExecCGI를 사용하면 지정된 디렉토리내에서 CGI 사용 허용
* AddHandler cgi-script 지시자에서 정의한 확장자만 유효

아파치는 ScriptAlias에 설정되어 있는 디렉토리 안의 모든 파일을 html이 아닌 실행파일로 인식한다. 따라서 html이나 이미지 파일 등도 제대로 인식하지 않고 실행하려 한다. 또한 ScriptAlias로 설정된 디렉토리에서는 "*.cgi","*.pl" 등의 파일확장자도 필요치 않다.

ScriptAlias로 설정되지 않은 디렉토리에서 스크립트를 실행하려면 *.cgi,*.pl 등만 스크립트 파일로 인식시켜야 한다. 아파치가 이것을 인식할 수 있도록 하는 것이 AddHandler(httpd.conf) 이다.

AddHandler cgi-script .cgi

httpd.conf 파일 중에서 위와 같이 설정을 하면 서버의 모든 디렉토리에서 .cgi로 끝나는 모든 파일을 cgi로 인식하여 실행한다. 단, 주의할 점은 스크립트로 사용하려하는 디렉토리가 ExecCGI 옵션이 설정되어 있어야 한다는 것이다.

예)ScriptAlias를 이용한 일반적 설정(httpd.conf)

AllowOverride None
Options None
Order allow,deny
Allow from all


위와 같은 일반적 설정에서는 아무리 AddHandler cgi-script .cgi가 설정되어 있어도 cgi는 실행되지 않는다.

예2) htdocs의 디렉토리의 .cgi 확장자를 실행하려면

AddHandler cgi-script .cgi


Options Indexes FollowSymLinks ExecCGI
AllowOverride None
Order allow,deny
Allow from all


위와같이 하면 서버 이전 및 새로이 세팅시 기존 스크립트가 실행되지 않는 에러를 방지할 수 있다. 그러나 보안에 문제가 되므로 특정디렉토리에서만 스크립트를 사용하게 하는 ScriptAlias 설정이 권장된다