【질문】 Ruby의 "Hello world"스크립트가 움직이지 않는다 (Apache 경유)
사건
500 Internal Server Error
가 나오고 작동하지 않습니다.ruby index.rb
할 때 제대로 출력된다 index.rb
#!/usr/bin/env ruby
print "Content-Type: text/html\n\n";
print "Hello World\n";
Apache 오류 로그
/var/log/httpd/error_log
[Sun Feb 16 12:44:35 2014] [error] [client 192.168.33.1] /usr/bin/env:
[Sun Feb 16 12:44:35 2014] [error] [client 192.168.33.1] ruby
[Sun Feb 16 12:44:35 2014] [error] [client 192.168.33.1] : No such file or directory
[Sun Feb 16 12:44:35 2014] [error] [client 192.168.33.1]
[Sun Feb 16 12:44:35 2014] [error] [client 192.168.33.1] Premature end of script headers: index.rb
조사 결과
Apache의 에러 로그로 가서 보면, 1행째의 ruby에의 패스 기술이 원인의 모양. 가능한 원인은 다음과 같습니다.
1은 LF라고 확인할 수 있으므로 문제 없음(GNU nano로 작성).
2가 아마도 문제 같지만 여러 경로를 시도해도 같은 상황입니다 (/usr/bin/ruby 또는/usr/local/bin/ruby도 시도했습니다)
Options +ExecCGI
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
AddHandler cgi-script .rb
# .bash_profile
# User specific environment and startup programs
export PATH="/usr/local/rbenv/bin:$PATH:$HOME:/usr/bin"
eval "$(rbenv init -)"
루비의 위치는 다음과 같습니다 (rbenv이므로 홈 디렉토리 이하). rbenv에 도입 된 Ruby의 경로 - 베타나 잡기장에 의하면,
#!/usr/bin/env ruby
로 좋은 것 같습니다만··# which ruby
~/.rbenv/shims/ruby
또한 Ruby는 다음을보고 설치했습니다 (명령 내용 포함)
htp : // / b gh th ch. 이 m/bぉg/아 rゔぇs/10
추가: 해결됨
코멘트란에서 친절하게 가르쳐 주셔서 해결했습니다.
우선 /etc/sysconfig/httpd
에 다음을 추가export PATH=/home/vagrant/.rbenv/shims:$PATH
그리고 재부팅 ( sudo service httpd restart
)
그런 다음 Apache가 홈 디렉토리에 액세스 할 수 있도록합니다.sudo chmod a+rx /home/vagrant
이것으로 해결했습니다.
Reference
이 문제에 관하여(【질문】 Ruby의 "Hello world"스크립트가 움직이지 않는다 (Apache 경유)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hashcc/items/a8ee74c01e2af8376a37
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【질문】 Ruby의 "Hello world"스크립트가 움직이지 않는다 (Apache 경유)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hashcc/items/a8ee74c01e2af8376a37텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)