初めまして。手の打ちようが予想もつかず、動けません。
解決方法をご存じの方、お教えください。宜しくお願いします。
環境
Vagrant(CentOS 7.0) + rbenv + ruby-buildでruby環境を構築
事象
Apache経由でrubyスクリプトを見ると、500 Internal Server Errorがでてしまいます。
-
エラーログ
(13)Permission denied: exec of '/var/www/html/ex01.rb' failed
End of script output before headers: ex01.rb -
ruby ex01.rbはきちんと出力される
-
システムワイドにrbenvをインストール (参照:CentOSにrbenvとphpenvをシステムワイドにインストール)
ex01.rb
# !/usr/local/bin/ruby
print <<E
content-Type: text/html
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>Example 01</TITLE>
</HEAD>
<BODY>
<P>Hello World!</P>
</BODY>
</HTML>
E
/var/www/html/.htaccess
Options +ExecCGI
AddHandler cgi-script .cgi
AddHandler cgi-script .rb
経過
- hashccさんの、【質問】Rubyの"Hello world"スクリプトが動かない(Apache経由)を参考にエラー対応してみましたが、うまくいきません。
改行コードも、パスも合っているはずです。(/usr/bin/rubyや/usr/local/bin/rubyもやってみました)
sudo chmod a+rx /home/vagrant
も試してみました。
rb
which ruby
/usr/local/rbenv/shims/ruby
rbenv
which rbenv
/usr/local/rbenv/bin/rbenv
- パーミッションを755に変更してみました。
ls -la /usr/local/bin/ruby
lrwxrwxrwx. 1 root root 27 Dec 12 23:28 /usr/local/bin/ruby -> /usr/local/rbenv/shims/ruby
-
apacheのhttpd.confの
user
やgroup
のapacheをvagrantに変えてもみました。 -
/etc/selinux/configで、SELinuxを無効にしてみました。
エラーに変化はありません。