HTML5Experts.jp

NUCで手のひらサイズの格安WebSocketサーバーを立ててみた(OSインストール編)

前回は、NUCのハードを組み立ててましたが、次は、ソフトのインストールです。慣れてる方には無用な講義ですが、一応ざっくりとした手順をメモしてみました。

もちろん、必ずしもこの手順通りである必要はありません。また、目安の時間を入れてありますが、あくまでも目安であって、休憩時間も含みません(笑)。

焦らずに、もしわからないところがあればネットなどで調べながらでも着実にやっていきましょう。

【30分】OSダウンロード

OSは最近人気のLinuxディストリビューションUbuntuサーバーでバージョン13.10を入れました。下記でダウンロードしてDVDに焼いて準備します。

Ubuntu入手先 http://www.ubuntu.com/download/server

【12分】OSインストール

DVDをUSBへ接続してNUCを起動すると、Ubuntuのインストールが始まります。

※インテルによるOSインストールの説明ページもあります。

今回は、最初はssh以外は特に何もいれず、必要なものは後から必要な時に追加する方針でタイトなインストールをしました。Ubuntuサーバー自体の詳細なインストール方法はここでは省略しますが、miniSSDのせいか、HDDのPCで20~30分かかるこの作業が、なんと10分程で終わりました。

特別な設定がなければ、・ユーザー名とパスワード・ディスクへの書き込み許可・ソフトウェアの選択で「OpenSSH server」をスペースキーで選ぶ以外は、質問にほぼ改行するだけでもインストールできます。

ネットワーク設定はもしDHCPで割り当てのある環境なら最初はお任せでも構いませんし、もし、IPを決めてあるなら設定しておくとあとの手間が省けます。

ここでは、ユーザー名は仮にhogeとしました。 そして、OSインストール後の作業は次の通り。

【1分】自分のIPアドレスを確認してみる

OSインストール後、再起動してログインしたら、IPアドレスを確認してみましょう。

ifconfig
と打ってみます。するとたとえば次のように表示されます。 hoge@ubuntu:~$ ifconfig
em1 Link encap:Ethernet HWaddr ec:a8:6b:fe:a3:eb
inet addr:192.168.1.180 Bcast:192.168.1.255 Mask:255.255.255.0    :
この NUC の場合は「inet addr」のあとの 192.168.1.180 が IP アドレスです。自分でIPアドレスを指定する場合は、/etc/network/interfaces を修正します。もし、ルーターやバーチャルドメインなどを設定すれば、普通のサイトのようにサーバーを外部へ公開することも可能ですが、今回はそこは省略します。

【1分】SSHクライアントからログイン

Ubuntuインストール時に入力したアカウント(今回はhoge)で他のパソコンから上記IPアドレスへログインします。Macならターミナルを使い、たとえば、パスワード認証なら、次のように打てば対話形式で入れます。

ssh hoge@192.168.1.180
Windows なら SSH クライアントがなければ Poderosa などをインストールし、それでログインします。

【30秒】apt-get(パッケージ管理システム )のアップデート

apt-getは必要なパッケージのダウンロードからインストールを依存関係も含めて自動的に行ってくれる便利な管理システムです。次のコマンドでそのパッケージ・リストをまず更新しておきます。sudoでアカウントのパスワードを要求されるので入力するとアップデートが始まります。

sudo apt-get update

【20秒】FTP(ファイル転送サーバー)のインストール

HTMLやjsファイルをNUCへアップロードするために FTP サーバーも入れておきます。下記apt-getですぐに動作しますが、各種設定をする場合は別途ネットなどでご確認ください。

sudo apt-get install proftpd
対話形式で設問に答えますが、起動方法でinetdかスタンドアロンかを聞かれます。ここでは inetd で設定しました。

【20秒】Apache(Webサーバー)のインストール

WebSocket単体で使う場合や、Nodeなどでhttpサーバーを立てるならまったく不要ですが、やはりApacheはあると便利なので入れておきます。今回は、HTMLはApache で表示し、WebSocketサーバーからのデータをそのHTML内の JavaScript で受け取るという形にしてみます。

sudo apt-get install apache2-mpm-prefork
ちなみにここで他のパソコンから、http://192.168.1.180と打てば下記画像のように「It works!」と表示され、もうすでにWebサーバーが動作してることがわかります。このHTMLファイルはデフォルトで /var/www/index.html にありますので、もう、これを書き換えるだけで HTTPサーバーは使えますが、今回のアプリはユーザーディレクトリに作ります。

【30秒】ユーザー用公開ディレクトリを用意する

今回はユーザー(hoge)のディレクトリ配下にアプリを作ってみます。次のようにして公開ディレクトリを用意します。

  1. 1行目・ユーザーディレクトリを作成する
  2. 2行目・ユーザーディレクトリを有効にする
  3. 3行目・Apacheをリスタートする

mkdir ~/public_html
sudo a2enmod userdir
sudo service apache2 restart
ここで http://192.168.1.180/~hoge/ と打って 下記画像のようなユーザーディレクトリが表示されればOKです。

【2分】nvm(Nodeバージョン管理マネージャー)インストール

nvmは、複数のNode.jsバージョンをインストールし、切り替えて使うことを可能にするマネージャーです。Nodeはバージョンのアップデートが早いのでモジュールの依存対応も含めて簡単に切り替えられるnvmなどのバージョン管理マネージャーを入れておくと便利です。 gitを使ってインストールし、ログイン時の自動起動もセットしておきます。nvmの詳細は別途ご確認ください。

  1. 1行目・git-coreをインストールする
  2. 2行目・gitから/home/hoge/nvmへダウンロードする
  3. 3行目・nvmを起動する
  4. 4行目・nvmのヘルプを見てみる
  5. 5行目・ログイン時にnvmが自動起動するように/home/hoge/.bashrcへ起動スクリプトをセットする

sudo apt-get install git-core
git clone git://github.com/creationix/nvm.git ~/nvm
. ~/nvm/nvm.sh
nvm help
echo ". ~/nvm/nvm.sh" >> ~/.bashrc

途中で[yes, no]と聞かれたら、特に意図が無ければ普通は、yesと答えます。

【2分】Node.js(JavaScript実行環境 )インストール

そして、Nodeの最新安定バージョン今回は(v0.10.23)をインストール

  1. 1、2行目・ビルド用のパッケージ群などをあらかじめ入れておく
  2. 3行目・nvmでNodeのv0.10.23をインストールする
  3. 4行目・nvmのヘルプを見てみる
  4. 5行目・ログイン時にv0.10.23が使えるようにセットする

sudo apt-get install build-essential
sudo apt-get install libssl-dev
nvm install v0.10.23
echo "nvm use v0.10.23" >> ~/.bashrc

さて、ここまでで今回のWebSocketサーバー用の環境ははぼ完成です。 もうNode.jsは使えるようになっています。

次回はいよいよ、WebSocketサーバーを入れてアプリを立ち上げてみます。

<関連レポート>
NUCで手のひらサイズの格安WebSocketサーバーを立ててみた(ハード組立編)を読む⇒
NUCで手のひらサイズの格安WebSocketサーバーを立ててみた(アプリ起動編)を読む⇒