파일의 권한은 755 주었고 실행 디렉토리는 /var/www/cgi-bin 으로 주었습니다.
Apache/2.2.8 버전이 설치 되어있으며
수정한 파일은 /etc/apache2/sites-enabled/000-default 으로
아래와 같이 수정하였습니다.
(http.conf 는 내용이없는 빈 파일이더군요.2.X 대 버전은 http.conf를 사용하지 않나요?)
www/index.cgi 는 소스를 그대로 출력해버리고
www/test/index.cgi 역시 소스를 그대로 출력하며
www/cgi-bin/index.cgi는 Internal Server Error
www/cgi-bin/test/index.cgi 또한 Internal Server Error 를 출력합니다.
아래는 /etc/apache2/sites-enabled/000-default 의 설정 정보입니다.
[quote="genesispark":uyyylfbh](http.conf 는 내용이없는 빈 파일이더군요.2.X 대 버전은 http.conf를 사용하지 않나요?)[/quote:uyyylfbh]우분투 아파치 설정은 httpd.conf 설정 파일를 분리하여 효율적인 운영 위해 내용별로 나누어 관리 합니다.
/etc/apache2 이하 디렉에 파일들 내용을 살펴 보시면 감이 올 것 입니다.
우선 CGI 아파치 모듈 활성화는 하셨는지요?
sudo a2enmod cgi
그러면 자동으로 심볼릭을 걸면서 cgi 모듈을 로딩 합니다.
물론 아파치 재시작 필요
cgi 는 2가지 입니다.
스키립선언과 옵션
AddHandler cgi-script .cgi .pl .sh 이 라인은 머 굳이 pl sh 없이
AddHandler cgi-script .cgi 는 NameVirtualHost * 위로 적으시고
그리고 옵션을 Options ExecCGI IncludesNoExec 로 해보십시요
아파치 디렉 옵션 선언은 상위에 적용이 되면 하위는 따라 되는 구조 입니다.
/ <– /var/www <– /var/www/cgi-bin/
따라서 /var/www/cgi-bin/ 만 되게 하려면 여기에 옵션에서 선언하고
전 디렉에서 CGI가 되려면 <Directory /> 에 옵션에서 선언 되어야 겠지요
<Directory "/var/www/cgi-bin"> ->cgi-bin 이하 전 디렉토리에서 cgi 실행가능시?
AllowOverride None
Options ExecCGI IncludesNoExec ->옵션 수정
Order allow,deny
Allow from all
</Directory>
이하 생략
이해를 잘못한건지… 입문 초보인지라…;; 알려주신 동일질문 링크의 cgi 설정오류 와 같은 현상이 일어나내요.
예시파일이나 가이드 딱 있으면 좋으련만
구글링 하다보면 같은 조건이지만
suExec 파일의 이름을 바꾸는것도 있고 000-default가아닌 default 생성해서 바꾸기도하고
site-available 에 default를 바꾸기도하고…httpd.conf 내용이 분산되서 그런지 시행착오가 많이 필요하내요;;
우선 Cgi를 실행하고자 하는 곳은 /var/www/cgi-bin 으로 000-default 파일을 수정하였습니다.
확인 된 에러는 Premature end of script headers :first.cgi 였습니다.
아파치 튜토리얼을 보니
프로그램 오류
CGI 프로그램이 실패하는 경우 대부분 프로그램 자체 문제때문이다. 특히 위의 두가지 실수를 하지 않았고 이 글을 계속 보고 있다면 더더욱 그렇다. 먼저 웹서버에서 실행하기 전에 명령행에서 프로그램을 실행해본다. 예를 들어, 다음과 같이 실행한다.
cd /usr/local/apache2/cgi-bin
./first.pl
(perl 인터프리터를 실행하지 마라. 쉘과 아파치는 스크립트 첫번째 줄에 있는 경로 정보를 사용하여 인터프리터를 찾아야 한다.)
프로그램은 제일 먼저 Content-Type을 포함한 HTTP 헤더들을 출력하고 빈 줄을 출력해야 한다. 다른 것을 출력한다면 웹서버에서 실행할 경우 아파치는 Premature end of script headers를 반환한다. 자세한 내용은 위의 CGI 프로그램 작성하기를 참고하라.