
Ubuntu日本語フォーラム

ログインしていません。
UbuntuServer10.04を使用しています。
Rubyで、gemを使いsystemuをインストールし、
systemuを利用したプログラムを作成しているのですが、困ったことがあります。
作成したプログラムを、端末から「hoge.rb」と入力するとノーエラーなのに、
httpを使用し外部からアクセスすると500エラーになります。
いろいろとエラー原因を調べていましたが、どうも「require 'systemu'」でのエラーのようです。
begin~rescueを使ってもエラーメッセージが確認できませんでした。
#!/usr/bin/ruby
print "Content-type: text/html\n\n"
puts "1<br>"
require 'systemu'
puts "2<br>"
これを外部から実行すると、1だけが表示されます。
内部で実行している分には、意図した動作をしています。
どんなことが考えられますか?
オフライン
maki-tetsu と申します。
Ubuntu の話、、、と言うわけではないですが、分かる範囲なのでお答えします。
systemu は実際には利用したことがありませんが、良くある話としてサンプルで掲載された ruby スクリプトを以下のようにして実行してみてください。
#!/usr/local/bin/ruby
print "Content-type: text/html\n\n"
puts "1<br>"
require "rubygems"
require "systemu"
puts "2<br>"
res = systemu "echo hoge"
puts res
意図した通りに動作すると思います。
irb などを利用した場合は自動で rubygems がロードされますが、一般的には rubygems は別途ロードする必要があるためかと思います。
オフライン