読者です 読者をやめる 読者になる 読者になる

ものづくりブログ

ゼロからスタートして何かを作って世に出すまでのことを書くブログです.

Raspberry Piをサーバ化する その2(サーバを立てる)

IoT Raspberry Pi PHP

 

こんにちは.

 

前回宣言した通り,ラズパイをサーバ化したいと思います.

 

ラズパイにログインし,下記のコマンドを実行します.最初の1行は常に最新版のアプリをインストールするためのお約束ですね.

 

sudo apt-get update

sudo apt-get install apache2

 

次にApache2で立てたサーバにアクセスしたときにデフォルトで使用されるフォルダのオーナをpiに変更します.

 

sudo chown pi -R /var/www

 

この時点で/var/wwwの中にhtmlファイルを入れると,ブラウザから閲覧できるはずです.ためしにそのフォルダを見てみましょう.

 

ls -l /var/www

 

正しくインストールされていれば,以下のように表示されるはずです.

 

index.html

 

ではApacheが正しく動いているかどうか試してみましょう.下記のURLにMacのブラウザからアクセスしてみましょう.

 

http://raspberrypi.local/index.html

 

下記のように表示されれば成功です.

 

f:id:daisukekmr:20150210224956p:plain

 

つまり,/var/wwwに入っているファイルに,http経由でアクセスできるようになったということです.これがApacheの機能です.

 

ラズパイ起動時にApache2を自動的に起動できるよう,以下のコマンドを実行します.

 

sudo update-rc.d apache2 defaults

 

 

 

ただこれだけでは単にWEBサーバが立っただけで,ラズパイのありがたみが無いですよね.そこで,サーバ経由でGPIOを操作する準備について解説していきます.

 

サーバ上で色々とプログラムを動かすために,PHPという言語でプログラムを書いていきます.また,PHPでGPIOを制御するためにWiringPi-PHPというライブラリをインストールします[3][4].ライブラリとは,よく使う機能をパッケージ化してモジュールのようにしたものです.

 

sudo apt-get install php5 php5-dev

git clone --recursive https://github.com/WiringPi/WiringPi-PHP.git

cd WiringPi-PHP

./build.sh

sudo ./install.sh

 

 

 

早速動作確認のため,phpファイルを作成します.

 

sudo echo "<?php phpinfo();" > /var/www/index.php

 

作成できたら下記のURLにブラウザからアクセスします.

 

http://raspberrypi.local/index.php

 

以下のような画面が出れば成功です.

 

f:id:daisukekmr:20150211002048p:plain

 

次回はデータベースを導入して,GPIOの信号をデータベースに蓄積してみたいと思います.

 

 

 

参考文献

[1]MGU Gearを使ってみる「Raspberry Pi の超簡単設定4 遠隔操作ApacheサーバーとPHPから操作する」(http://mcugear.blogspot.jp/2014/02/raspberry-pi-apachephp.html)

[2]XodusTech「Raspberry Pi PHP GPIO Guide」(http://www.xodustech.com/guides/raspberry-pi-php-gpio)

[3]Just Another チラシの裏Raspberry PiPHPで遊ぼう」(http://oasynnoum.blogspot.jp/2013/12/raspberry-pi-php.html)

[4]Github「WiringPi/WiringPi-PHP」(https://github.com/WiringPi/WiringPi-PHP)