見出し画像

ラズパイにNodejs を入れてWebサーバにする

やること概要

● ラズパイ(ラズベリーパイ)をWEBサーバーにします。
● Windowsパソコンからブラウザでアクセスします。
● ラズパイをWEBサーバにする方法
 ー Nodejs をインストールします。
 ー Nodejsの拡張機能も入れておきます。

環境

Windowsパソコンとラズパイがネットワークでつながっている環境を用意します。
 ※ラズパイにNodejsをインストールしてWEBサーバにします。
 ※この環境の作り方については、下にある「参考」に書いてあります。

画像1

構築 1-1:nodejsをインストールします。

ラズパイにアクセスしてNodejsをインストールします。

$ sudo apt-get update
$ sudo apt-get install nodejs
$ sudo apt-get install npm
$ sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

構築 1-2:拡張機能を使えるようにします。

$ npm install require

構築 2:さっそく動くものを作ってみます。

ディレクトリ /data/nodejs/01-hello をつくって、その下にexample.js ファイルを作成します。

const http = require('http');
const PORT = 8808;
http.createServer((request, response) => {
 response.writeHead(200, {'Content-Type': 'text/plain'});
 response.end('Hello Nodejs');
}).listen(PORT);

console.log(`Server running at http://localhost:${PORT}/`);

実行画面はこんな感じです。

画像2

起動してみます。

$ node example.js

実行画面はこんな感じです。

画像3

本当に起動したのか確認するために、Windows パソコンからWebブラウザでアクセスしてみます。
 http://{ラズパイのIPアドレス or ホスト名}:8808/
  ↓ こんな風に表示されれば成功です。
   (動かないとき→ トラブルシュート(*1))

画像4

構築 3 : WEBサーバーを作ります。

WEBサーバ用のディレクトリ( /data/nodejs/02 ) を作ります。

$ mkdir /data/nodejs/02

express をインストールします。

$ sudo npm install -g express
$ export NODE_PATH=/usr/local/lib/node_modules

ディレクトリ配下にファイル(exsample.js , wwwroot/index.html)を作ります。

画像5

画像6

exsample.js

var express = require('express');
var app = express();

app.use(express.static('wwwroot'));

var port = 3000;
app.listen(port,function(){
	console.log("サーバがポート%dで起動しました。モード:%s",port,app.settings.env)
});

index.html

<html>
 <head>
  <title>nodejsでindex.html</title>
 </head>
<body>
 こんにちはnodejs こちらはindex.html です
</body>
</html>

ファイルの準備ができたら、初期化します。初期化コマンド(npm init)は、WEBサーバ用のディレクトリをカレントディレクトで実行します。

$ pwd
/home/newpi/data/nodejs/02
$ npm init

これで準備は完了しました。起動してみます。

$ node exsample02.js
サーバがポート3000で起動しました。モード:development

起動したら、Windowsパソコンでブラウザを開いてアクセスしてみます。
 http://{ラズパイのホスト名 or IPアドレス}
 ↓ こんな風に表示されたら成功です。

画像7

参考

ラズパイOSのインストールがしたい
 → モニタ/キーボードを接続しないでラズパイにOSをインストールする

画像8

ラズパイOSの初期設定がしたい
 → ラズパイOSの初期設定がしたい!

画像9

Nodejsインストールについて参考させて頂いたサイト

トラブルシュート

(*1) WEBサイトが開かない

画像10

<考えられること>
● URLが間違えている → ホスト名などチェックしてみる
● ポート番号が間違えている → exmaple2.js の指定ポート番号を確認する
● ホスト名の名前解決ができない → IPにしてみる

(*2) Error: Cannot find module ‘express’ とエラーが出て動かない

$ node exmaple2.js
module.js:549
    throw err;
    ^

Error: Cannot find module 'express'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/home/newpi/data/nodejs/02/exmaple2.js:1:77)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)

<考えられること>
● express がインストールできていない
 → sudo npm install -g express を実行してみる
● express へのパスが通っていない
 → export NODE_PATH=/usr/local/lib/node_modules でパスを通してみる

さいごに

ラズパイをWEBサーバにする方法を紹介しました。テスト環境として使うなど、ちょっと使いたいときに便利だと思います。誰かのお役に立てば幸いです。

こんな弱小ブログでもサポートしてくれる人がいることに感謝です。