Web アプリ
この記事は
Raspberry Pi 勉強会
の一部です。
HTML と Javascript
Apache と PHP
Python
Python Flask
参考書
みんなのPython Webアプリ編 HTML版
HTML と Javascript
WEBアプリの基本は HTML と Javascript です。
この2つだけであれば、Windows や MAC の WEBだけで動作します。
HTML
HTML
(エイチティーエムエル)とは、HyperText Markup Language の略で、ウェブ上の文書を記述するためのマークアップ言語である。
文章の中に記述することでさまざまな機能を記述設定することができる。
JavaScript
JavaScript
(ジャバ スクリプト)とは、プログラミング言語のひとつである。
ウェブブラウザに実装され、動的なウェブサイト構築や、リッチインターネットアプリケーションなど高度なユーザインタフェースの開発に用いられる。
jQuery
jQuery
(ジェイクエリー)は、ウェブブラウザ用の JavaScript コードをより容易に記述できるようにするために設計された軽量な JavaScript ライブラリである。
サンプルコード
サンプルコード HTML&PHP
plane
HTML
JavaScript
jQuery
Apache と PHP
ラズパイに Apache と PHP をインストールして、WEBサーバーを構築します。
Apache
Apache
(アパッチ)とは、世界中でもっとも多く使われているWebサーバソフトウェアであり、大規模な商用サイトから自宅サーバまで幅広く利用されている。
インストール
$ sudo apt-get install apache2
HTMLファイル
$ cat /var/www/html/index.html
PHP
PHP
(ピー・エイチ・ピー) とは、Personal Home Page の略で、 動的にHTMLデータを生成することによって、動的なウェブページを実現することを主な目的としたプログラミング言語である。
インストール
$ sudo apt-get install php5
PHP マニュアル
サンプルコード
サンプルコード Apache&PHP
Apache
PHP
get method
post method
Python
Python は、汎用的なプログラム言語であり、それ自体でWEBサーバーを構築できます。
詳しくは
Rapsberry Pi と Python
へ
Simple HTTP Server
SimpleHTTPServer
は、Python の標準ライブラリで、簡潔な HTTP リクエストハンドラです。
下記のようなコマンド1つで、WEBサーバーが構築できます。
$ python -m SimpleHTTPServer 8000
WebIOPi
WebIOPi
とは、ラズパイの GPIO をWEBブラウザから制御できるフレームワークです。
WebIOPiのインストール
サンプルコード
サンプルコード Python
Simple HTTP Server
Python Flask
Flask
(フラスク)とは、プログラミング言語 Python 用の、軽量なウェブアプリケーションフレームワークである。
インストール
$ sudo pip install flask
サンプルコード
サンプルコード Flask
hello
static template
dynamic template
jQuery
Camera
Open JTalk
GPIO controller
自動起動
電源を投入すると、自動的に起動するようにします。
大きく2つの方法があります。
(1) rc.local
(2) サービスデーモン
rc.local
この方法が最も簡単です。
rc.local の最後に、起動コマンドを記述するだけです。
欠点は、停止するのがちょっと面倒です。
ps コマンドで pid を見つけて、kill します。
参考
rc.localでのRubyスクリプトの自動実行
サービスデーモン
この方法は上級者向けですので、簡単に紹介する程度にします。
利点は、起動・停止が Linux の標準的なスタイルで行えることです。
大きく2つの手順が必要です。
(1) Python のパッケージ化
setup スクリプトを記述します。
(2) サービスデーモンの登録
skeleton を見本に、起動スクリプトを記述します。
参考
Pythonライブラリをパッケージ化する
setup スクリプトを書く
Pythonで作ったデーモンをinitスクリプトでstart stop を行う
サンプルコード
サンプルコード Flask
GPIO daemon
ルーター越え
通常は、ローカルネットに接続しているラズパイには、インターネットからアクセスできません。
ルーター越えといわれる手段が必要で、大きく2つの方法があります。
NAT
Port Forwarding
参考
ルーター超えとは一体どういう問題をいうのでしょうか
NAT
NAT
(Network Address Translation)とは、ローカルネットのルータにて、グローバルIPアドレスとプライベートIPアドレスを変換して、ローカルネットの特定のコンピュータに接続する方法です。
Port Forwarding
Port Forwarding
とは、インターネット上のサーバーと、ローカルネットのコンピュータとの間で、特定の経路を設定しておく方法です。
詳しくは
Raspberry Pi と Port Forward
へ
ラズパイに特化した
weaved
などのサービスもあります。
詳しくは
Raspberry Pi と weaved
へ