rvmでインストールしたrubyをcgiから使用することができません。

使用する方法をご教授頂きたく、宜しくお願い致します。

cgiファイル(/home/rdera/www/index.cgi)の1行目に以下のように記述しています。
#!/home/rdera/.rvm/wrappers/ruby-1.9.2-p180/ruby -Ku

しかし、ブラウザでアクセスすると、apacheのログには以下の通り、
エラーログが出力されてしまいます。
(8)Exec format error: exec of '/home/rdera/www/index.cgi' failed
Premature end of script headers: index.cgi


apacheの実行ユーザがアクセス可能なようにパーミッションは設定していますし、
どのような理由でエラーログが記録されるのか検討がつきません。


環境
OS:CentOS 5.5
Apache:2.2.3
rvm: 1.2.9

回答の条件
  • 1人2回まで
  • 登録:2011/03/24 00:40:02
  • 終了:2011/03/31 00:40:03

回答(3件)

id:deflation No.1

deflation回答回数1036ベストアンサー獲得回数1262011/03/24 09:21:30

ポイント27pt

index.cgiの冒頭部分に

print "Content-Type: text/plain\n\n"

のように改行2個を書いていますか。

ご確認ください。

id:rdera

ご回答、ありがとうございます。

確認しました。

書いています。

2011/03/24 18:13:30
id:youta0 No.2

変態回答回数34ベストアンサー獲得回数02011/03/25 12:49:29

id:znz No.3

znz回答回数193ベストアンサー獲得回数252011/03/30 03:58:30

ポイント53pt

/home/user/.rvm/wrappers/ruby-1.9.2-p180/ruby

の代わりに

/home/user/.rvm/rubies/ruby-1.9.2-p180/bin/ruby

を使うと実行できるようなので、

/home/rdera/.rvm/rubies/ruby-1.9.2-p180/bin/ruby

に変更すると実行できるのではないでしょうか。

理由は

http://x68000.q-e-d.net/~68user/unix/pickup?%A5%B7%A5%A7%A5%D0%A...

の Tips.3 だと思います。

id:rdera

/home/rdera/.rvm/rubies/ruby-1.9.2-p180/bin/rubyはできます。問題なく。

ただ、そっちは使いたくないんですよ。

2011/03/30 18:55:09
  • id:a-kuma3
    > Exec format error

    これが出るときは、スクリプトの一行目 (#! 行) が解釈できないとき。
    ・スクリプトが UTF-8 で保存できて無い
    ・スクリプトに BOM が付いている
    ・/home/rdera/.rvm/wrappers/ruby-1.9.2-p180/ruby が無い
    ・/home/rdera/.rvm/wrappers/ruby-1.9.2-p180/ruby に実行権限が付いてない
    辺りが怪しいかなあ...
  • id:rdera
    id:a-kuma3さん、コメントをありがとうございます。

    >スクリプトが UTF-8 で保存できて無い
    vimにて、utf-8で保存されていることを確認致しました。

    >スクリプトに BOM が付いている
    なんとも。

    >/home/rdera/.rvm/wrappers/ruby-1.9.2-p180/ruby が無い
    >/home/rdera/.rvm/wrappers/ruby-1.9.2-p180/ruby に実行権限が付いてない
    以下の通り、確かに存在していますし、実行権限も付与されています。
    -rwxr-xr-x 1 rdera rdera 278 3月 17 23:55 erb
    -rwxr-xr-x 1 rdera rdera 278 3月 17 23:55 gem
    -rwxr-xr-x 1 rdera rdera 278 3月 17 23:55 irb
    -rwxr-xr-x 1 rdera rdera 279 3月 17 23:55 rake
    -rwxr-xr-x 1 rdera rdera 279 3月 17 23:55 rdoc
    -rwxr-xr-x 1 rdera rdera 277 3月 17 23:55 ri
    -rwxr-xr-x 1 rdera rdera 279 3月 17 23:55 ruby
    -rwxr-xr-x 1 rdera rdera 281 3月 17 23:55 testrb

  • id:rdera
    ちなみに、/home/rdera/.rvm/wrappers/ruby-1.9.2-p180/rubyの実態は、
    以下のシェルスクリプトでした。

    でも、解決方法はまだ、分からない。

    >|bash|
    #!/usr/bin/env bash

    if [[ -s "/home/rdera/.rvm/environments/ruby-1.9.2-p180" ]] ; then
    source "/home/rdera/.rvm/environments/ruby-1.9.2-p180"
    exec ruby "$@"
    else
    echo "ERROR: Missing RVM environment file: '/home/rdera/.rvm/environments/ruby-1.9.2-p180'" >&2
    exit 1
    fi
    ||<
  • id:a-kuma3
    > >スクリプトに BOM が付いている
    > なんとも。

    いや、「なんとも」じゃなくて :-)
    od コマンドで確認してみようよ。
    1byte 目が '#' (0x23) かどうかを。
  • id:rdera
    バイナリモードで開いて、確認しました。
    1byte目は#でした………

    何が原因何だ?…

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません