アフィリエイト広告を利用しています

広告

posted by fanblog

Rails3 + Ruby1.9 で fork の不具合。

FreeBSD に rails3 の環境を Ruby1.9系で構築した際の不具合をメモ。

以下の環境で本番環境へアクセスすると fork() の不具合で passenger が error する。
FreeBSD7.2 + Rails3.0 + Ruby1.9.2 + Apache2.2.11

About your application’s environment をクリックすると Internal Server Error となる。
httpd-error.log を確認すると以下のログが出ている。
/usr/local/lib/ruby/gems/1.9/gems/passenger-2.2.15/lib/phusion_passenger/utils.rb:245:in `fork': fork() function is unimplemented on this machine (NotImplementedError)


どうも fork が原因らしいのだがどうしていいかわからず、ひとまず rails3 のままで、ruby1.9系 を ruby1.8系に下げた。rake も 1.8系で使っていたものに合わせた。

rake してみる。
% rake
(in /usr/local/www/apache22/rails/aaa)
rake aborted!
uninitialized constant Bundler
/usr/local/www/apache22/rails/aaa/Rakefile:4
(See full trace by running task with --trace)


abort する。
bundler を確認。
% gem list | grep -i bundler

bundler が無い。
bundler を入れる。
% gem install bundler
ERROR: Error installing bundler:
bundler requires RubyGems version >= 1.3.6

gem が古い。。
gem を更新する。
% gem update --system
% gem -v
1.3.7

bundler を再度入れてみる。
% gem install bundler
Successfully installed bundler-1.0.3
1 gem installed
Installing ri documentation for bundler-1.0.3...
Installing RDoc documentation for bundler-1.0.3...

入った。
% gem list | grep -i bundler
bundler (1.0.3)

再度 rake してみる。
% rake
(in /usr/local/www/apache22/rails/aaa)
Could not find abstract-1.0.0 in any of the sources
Try running `bundle install`.

bundle install する。
% bundle install

再度 rake する。
% rake
(in /usr/local/www/apache22/rails/aaa)
Loaded suite /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
.
Finished in 0.026635 seconds.

1 tests, 1 assertions, 0 failures, 0 errors
Loaded suite /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
.......
Finished in 0.22689 seconds.

7 tests, 10 assertions, 0 failures, 0 errors


rake OK!!

この後、本番環境をブラウザで確認して Internal Server Error が無くなりました。
FreeBSD + rails3 は、使えるようになりましたが ruby1.9系での fork の不具合は、不明のままです。
   
×

この広告は30日以上新しい記事の更新がないブログに表示されております。