root ユーザーから node.js をコンパイルしてインストールすることで、node.js をインストールしました。私はおそらくここがハングアップしていると思います。Rails アプリを実行しているユーザーから、node.js を確認しました。
$ which node
/usr/local/bin/node
Rails アプリ (Rails 3.2.9) を起動すると、「申し訳ありませんが、何か問題が発生しました」という一般的に役に立たないメッセージが表示されます。プロダクション エラー ログを確認すると、Javascript ランタイムが見つからないことがわかりました。明らかにインストールされているため、混乱します。そこで、Node javascript ランタイムを強制することにしました。config/boot.rb を編集して、以下を含めました。
ENV['EXECJS_RUNTIME'] = 'Node'
制作ログを見ながら、アプリを再度チェックしました。今回はエラーになりました
ActionView::Template::Error (Node.js (V8) runtime is not available on this system
まだ混乱しています。execjs gem に移動し、ランタイム コマンドを正確なインストール パスに変更しました。
Node = ExternalRuntime.new(
:name => "Node.js (V8)",
:command => "/usr/local/bin/node",
:runner_path => ExecJS.root + "/support/node_runner.js",
:encoding => 'UTF-8'
)
それでも同じエラーが発生します。ノードはインストールされ、ユーザーがアクセスできますが、gem/rails はそれを使用できないようです。サーバーはCentOS 6.3を実行しています。エラーがスローされる特定の JavaScript ファイルは、jquery.nivo.slider.pack.js です。nivoからダウンロードした後、編集していません。