§  Raspberry Piによるデータベース連携Webアプリケーション開発環境の構築

 省エネで環境に優しい低価格サーバーを構築します。主役はRaspberry Pi2 Model Bで、オープンソースのデータベースシステムや開発言語などを導入して、「開発環境を装備したWebサーバー」として動作させることが目標です。

1.取り組みの背景

 このテーマに取り組んだのは2年以上も前のことで、当時のRaspberry Pi Model Bを入手して、ここで掲載するものとほぼ同じ環境を構築し運用していました。3,000円台の本体価格に加え、1カ月あたりの電気代は50円程度で、従来の据置型サーバーとは格段の省エネ省スペース化が図れ、まずまずのパフォーマンスに満足していました。このサイト全体もそのサーバー上で準備・開発して、出来上がったものを公開サーバーに移行しています。
 しかし、最近になって原因不明のダウンが多発するようになり、やがてまったく動かなくなったため、急遽新製品の Raspberry Pi2を取り寄せて再構築することになりました(原因は『Ⅰ.インストール環境と機材』で解説)。最新のハードには最新のOSをということで、2016年当初にあっては最新のRaspbian Jessieをインストールしました。
 なお、ここでは標記の環境構築を当面の課題とし、Webサーバー自体の細かな設定やチューニングは『Raspberry Piで構築したWebアプリケーション開発環境の調整と運用』でまとめることにします。

2.構築環境の制約

 OSの導入から始める一連のインストール作業は、有線LANを介したWindowsマシンから行います。したがってWindows搭載パソコンが手元にあることが前提条件になります。
 また詳細は『Ⅰ.インストール環境と機材』に取りまとめますが、当初はRaspberry Piにキーボードやマウス、それにディスプレイを接続するため、一時的にこれらが必要になります。最終的にはRaspberry Pi単独で(電源ラインと無線LANアダプターだけで)運用可能にします。VNCやFTPサーバー、さらにファイルサーバー機能も組み込むので、実際の開発・運用はすべてWindowsマシンからリモート操作で行うことができます。

3.全体の構成と流れ

 開発環境の構築は下図の流れにしたがって進めます。これからお分かりのように、ただWebサーバーを構築するだけでなく、さまざまな機能を組み込んでWindowsクライアントとの連携システムを組み立てていきます。
 すでに手元のRaspberry PiにOSを組み込んでいる場合は、『Ⅰ.インストール環境と機材』に軽く目を通していただき『Ⅱ.OSのインストール』は読み飛ばしてください。
〔注意事項〕

 インストール作業は下図の流れにしたがって進めてください。『Ⅳ.環境の調整と設定』以降はそれ以前の作業が完了していることが前提なので、途中の過程を省略したり順序を逆転すると問題が発生します。問題が発生した場合は、明確に原因が把握できる場合を除いて最初からやり直すことをお勧めします。

〔動作確認〕

 次のRaspberry Piで動作を確認しています。
   ・Raspberry Pi1 Model B
   ・Raspberry Pi2 Model B
 なお、クライアント側は Windows7搭載PCです。


※流れ図のボックスをクリックするとそれぞれの解説文書が表示されます。


Ⅰ. インストール環境と機材  一連の作業に必要な環境・機材を確認してください。
↓
Ⅱ. OSのインストール  Raspberry Pi用に最適化した Raspbianのダウンロードからインストールまで。
↓
Ⅲ. リモート環境の準備  リモート制御するパソコン側に必要なエミュレータソフトなどを準備します。
↓
Ⅳ. 環境の調整と設定  インストールが完了したOSの動作環境などを調整します。
↓
Ⅴ. LAMPのインストール  Webアプリケーション開発のためのオープンソースソフトを導入します。
↓
Ⅵ. VNCのインストール  リモートマシンのデスクトップを手元のマシンから使えるようにします。
↓
Ⅶ. 無線LANの設定  すでに無線用ルータが設置されている環境で、ローカルネットに接続します。
↓
Ⅷ. FTPサーバーの構築  リモートでファイル転送ができるようにします。
↓
Ⅸ. ファイルサーバーの構築  Windowsと Linuxの相互環境でデータの参照・交換ができるようにします。
↓
Ⅹ. 固定IPアドレスの設定  Raspberry Piにローカルネットワーク上の固定アドレスを設定します。

【特別編】

  【 専用ケースの製作 】  アクリル板を使ってスマートなケースを自作してみました。