2010-02-11 4 views
14

CGI를 통해 Apache에서 Ruby를 사용하고 싶습니다. 나는 내 구성 파일에 다음과 같은 한 :Apache에서 Ruby CGI 설정하기

DocumentRoot /home/ceriak/ruby 

<Directory /home/ceriak/ruby> 
    Options +ExecCGI 
    AddHandler cgi-script .rb 
</Directory> 

test.rb가 첫 번째 줄에 주어진 실행 권한에 포함 /home/ceriak/ruby/ 아래에 배치 testfile 위, #!/usr/bin/ruby입니다. 그래도 localhost/test.rb을 방문하면 다운로드 창이 나타나고 소스 코드를 얻을 수 있습니다.

흥미롭게도 /usr/lib/cgi-bin/ 아래에 동일한 스크립트를 배치하고 localhost/cgi-bin/test.rb을 호출하면 예상대로 작동합니다.

(아파치 우분투 9.10.)에

어떤 생각?

+3

은 서버 오류에 속합니다. –

답변

7

몇 가지 확인 :

파일 실행
  • 입니까? chmod +x /path/to/file
  • 올바른 Content-type을 출력 했습니까?
  • 헤더와 출력 사이에 빈 줄 바꿈이 있습니까?
  • 구성을 설정 한 후 Apache를 다시 시작 했습니까?

모든 작업을 수행 한 경우 정상적으로 작동합니다. 내가 같은 상황에 달려 AddHandler 후 다음 줄을 추가하여 문제를 해결할 수 있었다

#!/usr/bin/env ruby 

puts <<EOS 
Content-type: text/html 

<html><body>hi</body></html> 
EOS 
1

가 mod_cgi를이 두 번 확인 내 test.rb 파일로 이것을 가지고 사용 가능; 기본 Yosemite http.conf가 사용 중지되었습니다.

관련 문제