2011-08-10 2 views
2

내 아파치 웹 서버가 있어야 컴파일 된 바이너리 파일을 실행할 수 있습니다. 나는 다른 튜토리얼에서 내 cgi-bin 디렉토리를 설정하는 데 필요한 모든 것을 다했으나 아무것도 도움이되지 못했습니다!apache2에서 cgi를 구성하십시오.

가 나는 아파치 설정 (사이트-가능/기본값)에 추가 한 :

ScriptAlias /cgi-bin/ /var/www/cgi-bin/ 
<Directory "/var/www/cgi-bin"> 
    AllowOverride None 
    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch 
    Order allow,deny 
    Allow from all 
    AddHandler cgi-script .cgi 
</Directory> 

내 C++ 파일 (/var/www/cgi-bin/test.cgi) 단지 안녕하세요 couts 세계!하지만 난 브라우저에이 파일을 요청하는 경우, 오류가 발생합니다 : 내부 서버 오류!

+0

콘솔 창에서 test.cgi의 출력을 게시 할 수 있습니까? –

+0

또한 아파치 오류 로그에 무엇이 기록되어 있습니까? –

+0

콘솔의 test.cgi 출력 : Hello World! –

답변

3

test.cgi에서 헤더를 출력하지 않습니다.

Content-type: text/plain 

Hello world! 

이 문제가 될 수있는 많은 일들이 있지만, "콘텐츠 형식"헤더를 추가하여 시작 : 그것은 출력 헤더의 세트와 빈 라인으로 분리 된 몸을, 이런 식으로 뭔가해야 테스트 프로그램 출력에 빈 줄.

+0

content-type을 추가했지만 여전히 작동하지 않습니다! –

+0

"파일이 존재하지 않습니다"라는 오류 메시지로 판단되면 다른 문제가 발생합니다 - 프로그램을 apache 사용자로 실행 했습니까? –

1

고맙습니다. 그리고 내가 대답하기에는 너무 늦어서 미안해.

파일을 액세스하지 못하는 문제는 권한을 변경하여 해결되었습니다. 그러나 내가 만든 /var/www/cgi-bin/ 폴더 이름에 대한 오류가 있습니다. cgi-bin/usr/lib/cgi-bin/ 폴더의 별칭입니다.

거기에 test.cgi 파일을 넣었을 때 파일에 액세스 할 수 있었지만 여전히 Header Content이라는 오류가 아파치에 기록되었습니다. 헤더가 Content-type: text/html이어야하기 때문입니다.

+0

업데이트 해 주셔서 감사합니다. 그러나 이것은 새로운 대답이 아닌 질문의 업데이트 편집으로 작성하는 것이 좋습니다. – hlovdal

관련 문제