????????????????????¨????°???¨??§????????°???????¨??????¬???????????°?????±??????????????§??????
CGIが動かない(Ruby) |
|
- ????????? 2008/04/09 01:19
- ????????? 石井
-
phpやperlで書いたCGIはブラウザでみれるのですが、Rubyだけがうまくいきません。
/etc/httpd/conf/httpd.conf の設定は
<Directory /home/*/public_html> AllowOverride All Options MultiViews Indexes SymLinksIfOwnerMatch Includes <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory>
<Directory /home/*/public/cgi> Options +ExecCGI AddHandler cgi-script .cgi </Directory>
どこがいけないのでしょうか。 Rubyの場所もあっています(念のためリンクをはって /usr/local/binと/usr/bin/rubyに置きました)。
パーミッションも確認しました。 /home/userID/public_html/以下全て755(-rwxr-xr-x)です。
ブラウザに表示されたエラーは 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.
エラーログは
# tail /var/log/httpd/error_log (〜省略) [Wed Apr 09 01:08:36 2008] [error] [client 127.0.0.1] Premature end of script headers: amd_index.cgi, referer: http://localhost/~app_user/
とでました。amd_index.cgiがRubyで書いたCGIで、app_userはユーザ名です。 よろしくお願いします。
|
■ コンテンツ関連情報
Re: CGIが動かない(Ruby) ( No.1 ) |
|
- ????????? 2008/04/27 17:57
- ????????? わかと
-
cgiプログラムのパスが通ってない感じがしますね。
#!/usr/bin/perl or #!/usr/local/bin/perl これが一般的なパスですが、たまに自宅サーバーの場合 #!/usr/bin/perlの後に半角スペース − 半角でバーを一つもしくは二つつけると作動する場合があります。 例 #!/usr/bin/perl - #!/usr/bin/perl -- #!/usr/local/bin/perl - #!/usr/local/bin/perl -- 原因はさだかではありませんが・・・・。 vi で作成した場合は--はなくても作動するので文字コードが絡んでいるかもしれません。 お試しください。
|
Re: CGIが動かない(Ruby) ( No.2 ) |
|
- ????????? 2008/04/29 19:24
- ????????? 石井
-
わかと様
返信ありがとうございます。
中々うまくいかず、あきらめかけていました。
perl 、ruby のパスは調べましたのでおそらく大丈夫そうです。
$ which ruby /usr/local/bin/ruby
のパスを指定しています。念のため、 /usr/bin/ruby にもリンクをはりました。
半角バーも試しましたがうまくいきません。
文字コードだけなら、文字化けした画面がブラウザで見ることができそうですが、
Internal Server Error ですので、もっと根本的な部分が間違っている気がします。
ちなみに、改行コードはLinuxマシンで書いたものなのでLF(ラインフィード)
です。
$ od -tc amd_index.cgi
で調べてもLFでした。
やはり、httpd.conf の設定でしょうか。
|
■ その他