Linux、FreeBSD、Windowsにnode.jsをインストールします

node.js-サーバー側の非同期Javascript、COMETアプリケーションのサーバー側、特におもちゃ、チャット、およびその他の高負荷プロジェクトを作成するための優れたツール。Javascript構文を使用し、マシンコードにコンパイルし、C ++コードに匹敵する速度で実行します。高速で、1万から1万2,000の接続を保持でき、個別のプロセスを作成しない/自身を再解釈しない/新しいクライアントごとにプロセスを開始しない。 V8を基盤として使用-GoogleのJavascriptエンジン。 便利な機能として、ある訪問者に変数の値を設定し、別の訪問者に回答するときにこの値を考慮することができます。

たとえば、PythonやRubyなど、PHPのみでプログラミングしなかった場合、それをバイパスしないという事実に注意してください。これは別のなじみのない言語ではありません。 そして、これはその利点です-Javascriptは、特にPHP + Javascriptでプログラミングした人にとっては馴染みのある言語ですが、PHPは、特にApacheと組み合わせて、例えば、ダウンロードバー(Flashなし)のファイルのアップロード、低レベルの可能性、ネットワーク管理(たとえば、クライアント、Mysqlサーバー、またはnginxのようなプロキシサーバーを作成する機能)。

言語の柔軟性は、たとえばMySQLを使用するための拡張機能がJavascript自体で記述されているという事実によって証明されています。

この素晴らしいシステムを説明する記事を、例を挙げて書くつもりでしたが、この記事を読んだ時点で、node.jsのインストールされたバージョンがあればいいと思います。 したがって、この投稿では、cygwinでの最近のポートの出現に関連するWindowsを含むnode.jsのインストール方法について説明します。 (はい、node.exeをダウンロードする場所に関する情報があります)



重要なお知らせ。



まず、node.jsの開発に伴い、時には何度か構文が変更されたという事実に注目したいと思います。 この点で、古いバージョンのノード、最近スリップしたnode.NET、および同様のアセンブリを使用することは絶対にお勧めしません。 理想的には-バージョン0.1.90以降。 同じ理由で、ネットワーク上でインストールチュートリアルを見つけるときは注意してください。 wget http://s3.amazonaws ...で始まるものは、レガシーバージョンをダウンロードします。

インストールする前に、Pythonがインストールされていることを確認してください。これは、makeを使用した構成とアセンブリに必要です(Windowsを除くすべての場合に関連します)。



GNU / Linux



Linuxでは、node.jsが最も簡単にインストールできます。

nodejs.orgに移動します

リンクをソースにコピーします

wget http://nodejs.org/dist/node-v0.1.97.tar.gz

tar -xvf node-v0.1.97.tar.gz

//

git clone git://github.com/ry/node.git ( git )

cd node*

./configure

make

make install






Habrahabrはコメントでアドバイスしています:

プログラマー

少なくともcheckinstallでビルドする方が良いでしょう

checkinstall --fstrans=no --install=no --pkgname=node.js --pkgversion "0.1.97" --default







ロジックは、MacOSでのインストールは同様であると示唆しているため、確認できません。 開発者は、MacOSで頭脳をテストしています。問題なく動作するはずです。



Freebsd



私はFreeBSDでVDSを使用しているため、このシステムが最も重要です。 ただし、開発者はFreeBSDでnode.jsをテストしないため、いくつかの問題が発生する可能性があります。

インストールする前に、libexecinfoが使用可能であることを確認してください。 次のように配置されます。

cd /usr/ports/devel/libexecinfo

make install






彼らはまた提案した

hilobok

FreeBSDでは、ポートからlibexecinfoを構築しないために、それで十分です:

pkg_add -r libexecinfo


とても古典的な方法#1
cd /usr/ports/www/node

make

make install






医師が処方したものはすべての人に推奨されます。 ノードがポートに存在することを知らなかった人のために-知っています。

方法#2
ポートにノードがない場合、上記の古典的な方法(Linuxの場合)を使用してインストールを試みることができます:wgetまたはgit clone; tar -xvf; 構成する; メイクなど

しかし、明らかに、この方法では、64ビットシステムにノードをインストールすることはできません。

方法#3
問題があれば(そして私も)、別の方法があります。

www.freebsd.org/cgi/query-pr.cgi?pr=145641のページに移動します

ダウンロードファイルnode-0.1.90.shar

または、node-0.1.90.sharファイルを作成して、その内容を手動で入力します(URL内のアンパサンド記号につまずき、問題を理解したくない場合)。

私たちは言う:

sh node-0.1.90.shar

cd node

make

make install






同様のファイル(.shar)は、後で表示される場合は、 b23.ru / exxwにあります。

AterCattusメソッド
FreeBSD 8.0_RELEASE amd64で初めてビルドしたとき、動作しませんでした:

...obj/release/cpu-profiler.o(.text._ZN2v88internal23ProfilerEventsProcessor19FunctionCreateEventEPhS2_i+0x81): In function `v8::internal::ProfilerEventsProcessor::FunctionCreateEvent(unsigned char*, unsigned char*, int)':

: undefined reference to `v8::internal::OS::ReleaseStore(long volatile*, long)'

obj/release/cpu-profiler.o(.text._ZN2v88internal23ProfilerEventsProcessor15CodeCreateEventENS0_6Logger16LogEventsAndTagsEiPhj+0xa3): more undefined references to `v8::internal::OS::ReleaseStore(long volatile*, long)' follow

scons: *** [obj/release/mksnapshot] Error 1

scons: building terminated because of errors.

Waf: Leaving directory `/home/atercattus/node.js/node-v0.1.97/build'

Build failed: -> task failed (err #2):

{task: libv8.a SConstruct -> libv8.a}

*** Error code 1






このリンクは役に立ちました: code.google.com/p/v8/issues/detail?id=726

ここではすべてがシンプルです。v8/ src / platform-freebsd.ccでは、int OS :: ActivationFrameAlignment()とconst char * OS :: LocalTimezone(double time)の間に欠落している関数の実装が追加されます。

void OS::ReleaseStore(volatile AtomicWord* ptr, AtomicWord value) {

__asm__ __volatile__(""::: «memory»);

*ptr = value;

}






たぶん誰かが助けてくれるでしょう。


6月11日更新
上記のパッチはgitの最新バージョンには関係ありません-freebsd-amd64で問題なくコンパイルされます



Windowsインストール



少なくともポートバージョン0.1.90が表示されるまで、.NETバージョンを忘れてください(上記の注を参照)。 Cygwinを使用する必要があります。 2つの方法があります。Cygwinの検索、ダウンロード、インストール、python、g ++、その他の依存関係の追加、ノードハンドルのソースの編集など。

より簡単なオプションをお勧めします:

プリコンパイルされたnode.exeでアーカイブをダウンロードします: drop.io/2dwcadiまたはdl.dropbox.com/u/626643/node-cygwinx86.zip-dropboxのミラー。 これはCygwin(0.1.95)で利用可能な最新バージョンです。さらに、cygwinは必要ありません(ポータブルです)。 開梱します。

colinuxには別のフォールバックがあります: bit.ly/9hCjHO

注:

azproduction

Windowsユーザーの場合(node.exeとserver.jsが異なる場所にある場合)、Cygwinバージョンの下から実行するコマンドは次のようになります。

node.exe /cygdrive/_////server.js





相対パスを理解していません。スラッシュを含むWindowsパスも理解していません。


また、小さな更新-現時点(6月11日)では、cygwinから、gitを使用してダウンロードすることで元のnode.jsをビルドできます。

試乗



開始するには、server.jsなどのファイルを作成します。 サンプルコンテンツはnodejs.org取得できます。

cmdで、解凍したフォルダーに移動して次のように言います:

node.exe server.js





* nixでも、同様に、解凍したフォルダーに移動して次のように言います:

node server.js





この例の2秒のブレーキはブレーキではなく、可能性を示すために、setTimeoutを介して実装されたリコイルの特別な遅延であることに注意してください。

私のお気に入りの例は少し異なります:

var sys = require('sys'),

http = require('http');

var i=0;

http.createServer(function (req, res) {

i++;

res.writeHead(200, {'Content-Type': 'text/plain'});

res.write('Hello World'+i+'\n');

res.end();

}).listen(8000);

sys.puts('Server running at 127.0.0.1:8000/');






ページを更新するときの変数の増分に注意してください。

サーバーをシャットダウン/別のスクリプトで再起動するには、Ctrl + Cを押します(そしてノードを再起動します)。 たとえば、puttyを介してノードを実行する場合、コンソールを閉じるとノードがシャットダウンすることに注意してください。 これを理解するのは簡単だと思います。最も簡単なオプションは、画面を起動するか、/ etc / init.dにノードを追加し、stopまたはkillall nodeコマンドでノードをオフにしてプロセスをデモンストレーションすることです。 このようなインストールの詳細については、 こちらをご覧ください (英語)。

以上です。



Nginxのセットアップ



さらに、サーバーはポート80およびノー​​ド(たとえば8000)で動作する可能性が高いです。美しいアドレスを使用してスクリプトを記述しやすくするには、configに記述してnginxを構成します。

location /ajax/ {

proxy_pass http://127.0.0.1:8000/;

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}






コメントで述べたように、この設計は実際のプロジェクトには適していないため、タイムアウト、メッセージサイズなどを構成する必要があります。 さらに、システム自体の同時接続数を設定する必要があります。 つまり、この設計は参照およびテストに適しています。

これで、 example.com / ajaxをリクエストするとコンテンツはnode.jsを返します。

この場合、ノードで実行されているスクリプトは、urlを「/ ajax /」に等しいと判断するのではなく、「/」と判断することに注意してください。

ここで停止して、有効なnode.jsを取得し、ペンでタッチを開始できます。 このことは本当に素晴らしいです。 最後に、いくつかのリンク:

nodejs.org/api.htmlドキュメント

kuroikaze85.wordpress.com/all-node-js-entries-ノードhabracheloveka Sergei Shirokov( kurokikaze )に関する記事のコレクション。

howtonode.org - creationixとして知られるTim Caswellによる英語の記事とメモ。



All Articles