<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://organizeseries.com/"
	>

<channel>
	<title>Linux &#8211; HTML5Experts.jp</title>
	<atom:link href="/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>https://html5experts.jp</link>
	<description>日本に、もっとエキスパートを。</description>
	<lastBuildDate>Sat, 07 Jul 2018 03:14:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.19</generator>
	<item>
		<title>NUCで手のひらサイズの格安WebSocketサーバーを立ててみた(OSインストール編)</title>
		<link>/toshirot/4718/</link>
		<pubDate>Thu, 30 Jan 2014 01:00:23 +0000</pubDate>
		<dc:creator><![CDATA[高橋 登史朗]]></dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[NUC]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[WebSocket]]></category>

		<guid isPermaLink="false">/?p=4718</guid>
		<description><![CDATA[連載： NUCでWebSocketサーバを立ててみた (2)前回は、NUCのハードを組み立ててましたが、次は、ソフトのインストールです。慣れてる方には無用な講義ですが、一応ざっくりとした手順をメモしてみました。 もちろん...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/nuc-try/" class="series-157" title="NUCでWebSocketサーバを立ててみた" data-wpel-link="internal">NUCでWebSocketサーバを立ててみた</a> (2)</div><p><a href="https://html5experts.jp/toshirot/4595/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">前回</a>は、NUCのハードを組み立ててましたが、次は、ソフトのインストールです。慣れてる方には無用な講義ですが、一応ざっくりとした手順をメモしてみました。</p>

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

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

<h3>【30分】OSダウンロード</h3>

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

<p>Ubuntu入手先
<a href="http://www.ubuntu.com/download/server" title="Ubuntuサーバー ダウンロード先" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">http://www.ubuntu.com/download/server</a></p>

<h3>【12分】OSインストール</h3>

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

<p>※インテルによるOSインストールの<a href="http://www.intel.com/jp/support/motherboards/desktop/sb/cs-033935.htm" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">説明ページ</a>もあります。</p>

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

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

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

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

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

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

<h3>【1分】SSHクライアントからログイン</h3>

<p>Ubuntuインストール時に入力したアカウント(今回はhoge)で他のパソコンから上記IPアドレスへログインします。Macならターミナルを使い、たとえば、パスワード認証なら、次のように打てば対話形式で入れます。
</p><pre class="crayon-plain-tag">ssh hoge@192.168.1.180</pre><p>
Windows なら SSH クライアントがなければ<a href="http://sourceforge.jp/projects/sfnet_poderosa/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"> Poderosa </a>などをインストールし、それでログインします。</p>

<h3>【30秒】apt-get（パッケージ管理システム ）のアップデート</h3>

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

<h3>【20秒】FTP（ファイル転送サーバー）のインストール</h3>

<p>HTMLやjsファイルをNUCへアップロードするために FTP サーバーも入れておきます。下記apt-getですぐに動作しますが、各種設定をする場合は別途ネットなどでご確認ください。
</p><pre class="crayon-plain-tag">sudo apt-get install proftpd</pre><p>
対話形式で設問に答えますが、起動方法でinetdかスタンドアロンかを聞かれます。ここでは inetd で設定しました。</p>

<h3>【20秒】Apache（Webサーバー）のインストール</h3>

<p>WebSocket単体で使う場合や、Nodeなどでhttpサーバーを立てるならまったく不要ですが、やはりApacheはあると便利なので入れておきます。今回は、HTMLはApache で表示し、WebSocketサーバーからのデータをそのHTML内の JavaScript で受け取るという形にしてみます。
</p><pre class="crayon-plain-tag">sudo apt-get install apache2-mpm-prefork</pre><p>
ちなみにここで他のパソコンから、http://192.168.1.180と打てば下記画像のように「It/ works!」と表示され、もうすでにWebサーバーが動作してることがわかります。このHTMLファイルはデフォルトで /var/www/index.html にありますので、もう、これを書き換えるだけで HTTPサーバーは使えますが、今回のアプリはユーザーディレクトリに作ります。</p>

<p><img src="/wp-content/uploads/2014/01/itworks1.png" alt="Apache Webサーバーの動作確認" width="450" height="350" /></p>

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

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

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

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

<p><img src="/wp-content/uploads/2014/01/userhoge.png" alt="ユーザーディレクトリの表示" width="450" height="350" /></p>

<h3>【2分】nvm（Nodeバージョン管理マネージャー）インストール</h3>

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

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

<p></p><pre class="crayon-plain-tag">sudo apt-get install git-core
git clone git://github.com/creationix/nvm.git ~/nvm
. ~/nvm/nvm.sh
nvm help
echo ". ~/nvm/nvm.sh" &gt;&gt; ~/.bashrc</pre><p></p>

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

<h3>【2分】Node.js（JavaScript実行環境 ）インストール</h3>

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

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

<p></p><pre class="crayon-plain-tag">sudo apt-get install build-essential
sudo apt-get install libssl-dev
nvm install v0.10.23
echo "nvm use v0.10.23" &gt;&gt; ~/.bashrc</pre><p></p>

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

<p><a href="https://html5experts.jp/toshirot/4786/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">次回</a>はいよいよ、WebSocketサーバーを入れてアプリを立ち上げてみます。</p>

<p>＜関連レポート＞<br>
<strong><a href="https://html5experts.jp/toshirot/4595/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">NUCで手のひらサイズの格安WebSocketサーバーを立ててみた(ハード組立編)を読む⇒</a></strong><br>
<a href="https://html5experts.jp/toshirot/4786/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><strong>NUCで手のひらサイズの格安WebSocketサーバーを立ててみた(アプリ起動編)を読む⇒</strong></a></p>
]]></content:encoded>
		
		<series:name><![CDATA[NUCでWebSocketサーバを立ててみた]]></series:name>
	</item>
	</channel>
</rss>
