1

Rails アプリを Debian で動作する新しい VPS にデプロイしようとしています。サーバーとして Nginx と Phusion Passenger を使用しています。

Node.js を JavaScript ランタイムとしてインストールしました。残念ながら、次のエラー メッセージが表示されます。

Fatal error in v8::V8::AddGCPrologueCallback()
V8 is no longer usable

編集:

現在修正されています。どうやら gr security がエラーの原因でした。

4

1 に答える 1

0

この問題は、grsecurity と特定の制限ルールを備えたカーネルで発生します。
node.js は、サーバーが好まないメモリの特定の領域でコードを実行する必要があります。

「ノード」バイナリの 2 つのフラグを切り替える必要があるようです。
また、Ruby バイナリ用にそれらを切り替える必要があるかもしれません。

SEGMEXEC をオンに切り替えます

 paxctl -S `which node` && paxctl -S `which ruby`

MPROTECT をオフに切り替えます

 paxctl -m `which node` && paxctl -m `which ruby`

ノードが動作するかどうかをテストする

 node -e "console.log(1+1);"


楽しい事実は、SEGMEXEC をオフに切り替えてもノードがまだ機能するようになったことです:S ... ただし、オンに切り替えると最初は修正されたようです。うまくいかない場合は、フラグをいじってノード -e を試してください。

幸運を!
ギズモア

于 2014-06-03T18:19:13.917 に答える