2011-07-28 3 views
0

내 웹 서버에 내 cgi-bin 폴더에 test.py 폴더가 있습니다. 실행하면 500 Internal Server Error이됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 코드는 다음과 같습니다.파이썬 CGI 오류

#!/usr/bin/python 
import os 
print "Content-type: text/plain\n\n" 
print "hi" 

어떤 권한이 있어야합니까? 추한 백 슬래시없이,

#!/usr/bin/python 
import os 
print "Content-type: text/plain\r\n\r\n" 
print "hi" 

또는과 빈 print statemanet 추가 :

+1

스크립트가 실행 가능합니까? (chmod + x test.py)? 파이썬은 실제로/usr/bin/python에 있습니까? (apache 구성 방법) 명령 줄에서 스크립트를 실행할 때 어떻게됩니까? – lazy1

+1

자세한 정보를 제공하십시오. 어떤 웹 서버를 사용하고 있습니까? 아파치? 어떤 사용자가 실행되고 있습니까? 로그에 뭐가 들었 니? 파일 사용 권한은 무엇입니까? – msbrogli

+0

스크립트가 실행 가능합니다. 파이썬이 있습니다. 아파치가 어떻게 구성되었는지 확실하지 않습니다. 명령 행에서 잘 돌아갑니다. 검사 할 로그가 확실하지 않은 Webfaction을 사용하면 사용 권한이 755 ATM입니다. – tekknolagi

답변

2

유효한 HTTP 출력을 생성하지 않습니다. HTTP 사양은 한 줄에 두 문자로 끝나야합니다. 끝 부분은 \r\n입니다.

또한 쉘에서 스크립트를 실행 해보십시오. 또한 서버의 모든 디버그 로그를 살펴보십시오.

+0

로그를 제외하고 모두 수행 했습니까? 그들이 어디에 있는지 전혀 몰라. 그래도 작동이 안되는. – tekknolagi

+0

'/ var/log/httpd' 또는'/ var/log' 아래를 찾아보십시오. – Keith

1

효과적으로 헤더 행의 끝을 표시하는 빈 줄, 사용 CR-LF 라인 엔딩을 추가하려면

#!/usr/bin/python 
import os 
print "Content-type: text/plain" 
print 
print "hi" 
+0

OP에 이미 필수 빈 줄 ('\ n \ n')이 있습니다 –

+0

여전히 500 오류 – tekknolagi

+0

죄송합니다. 시도해보십시오. \ r \ n – gimel