質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

解決済

1回答

6292閲覧

ApacheでCGI(Ruby)を実行出来ない(Internal Server Error)

popula

総合スコア49

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

0グッド

0クリップ

投稿2016/07/18 13:57

さくらvpsにcentOSをインストールしてあります。
ブラウザからhttp://example.com/index.rb にアクセスすると下記のようなエラーが表示されます。

Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log.

エラーログを確認したところ下記のようになっていました。

[error] [client *.*.*.*] (13)Permission denied: exec of '/var/www/example.com/public_html/index.rb' failed [error] [client *.*.*.*] Premature end of script headers: index.rb

現状を確認した結果は下記のようになっています。

$ ls -l /var/www/example.com/public_html/index.rb → -rwxr-xr-x 1 popula popula ・・・ /var/www/example.com/public_html/index.rb $ which ruby → ~/.rbenv/shims/ruby $ getenforce → disabled $ /var/www/example.com/public_html/index.rb → <html> <body> <div> CGI!!! </div> </body> </html> $ httpd -v → Server version: Apache/2.2.15 (Unix)

index.rbは下記のようになっています。ディレクトリは"/var/www/example.com/public_html/index.rb"となっています。

ruby

1#!/home/pupula/.rbenv/shims/ruby 2 3print "Content-type: text/html\n\n" 4print "<html>\n<body>\n" 5print "<div>\n" 6print "CGI!!!" 7print "\n</div>\n" 8print "</body>\n</html>\n"

httpd.confは下記のようになっています。

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" ・ ・ ・ <Directory "/var/www/html"> Options -Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> <Directory "/var/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> <Directory "/var/www/example.com/public_html"> Options -Indexes FollowSymLinks ExecCGI AllowOverride None Order allow,deny Allow from all </Directory> ・ ・ ・ AddHandler cgi-script .cgi .rb

バーチャルホストの設定は下記のようになっています。

<VirtualHost *:80> ServerName example.com DocumentRoot "/var/www/example.com/public_html" DirectoryIndex index.html ErrorLog /var/log/httpd/example.com_error_log CustomLog /var/log/httpd/example.com_access_log combined AddDefaultCharset UTF-8 <Directory "/var/www/example.com/public_html"> AllowOverride All </Directory> </VirtualHost>

3連休を使って解決策を調べて色々とやってみたのですが、解決出来ず、困り果てています。
原因が分かる方いらっしゃいましたら、ご教授下さい。
宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

CGI スクリプトは httpd 実行ユーザー(apache ユーザー)で実行されます。
おそらく、/var/www/example.com/public_html/index.rb や /home/pupula/.rbenv/shims/ruby の途中のディレクトリに o+x が付いていないのではないでしょうか(/home/pupula/ が 700 など)。

sudo などで、apache ユーザーで CGI スクリプト、ruby を実行できるか確認ください。

# sudo -u apache -s /bin/bash -c /var/www/example.com/public_html/index.rb # sudo -u apache -s /bin/bash -c "/home/pupula/.rbenv/shims/ruby --version"

投稿2016/07/18 14:50

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

popula

2016/07/18 18:39

まさにご指摘の通りでした。 助かりました(*_*) 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問