備忘録

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Raspberry PiでWebサーバー(Apache2)

昨日までで、GPIOの制御ができるようになりました。
今日はWebサーバーのインストールをします。

GPIOからの信号をWebに表示させたり、
Webからの操作で、GPIOを制御したりと、そういうのに使おうと思います。


1.Webサーバー(Apache2)のインストール

$ sudo apt-get update
$ sudo apt-get install apache2

ここで、PHPやperlなんかを一緒に入れてしまう人も多いようです。



2.Webサーバーの動作確認

この時点で、Webサーバーが動きます。
http://192.168.0.***
にブラウザアクセスすれば、
It works! まで表示可能


エラーが出て動かないときは、
$ sudo groupadd www-data
$ sudo usermod -g www-data www-data
などでユーザーを追加してみましょう

これは、Apache2の動作権限でエラーが出る場合が多いらしいです

Apache2の設定は、/etc/apache2/に入るわけですが、
その /etc/apache2/apache2.conf 内に記述されています

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
※ ${APACHE_RUN_USER}、${APACHE_RUN_GROUP} の実際の値は、
  envvarsファイル内に "export APACHE_RUN_USER=www-data"なんて形で記載されています

このため、このユーザーを追加してやれば、動作できるようになるということらしいです。
まぁ設定の方を変えちゃっても良いんだとは思いますが・・・

3.設定の確認

ルートドキュメントや、cgiディレクトリの確認しときます
/etc/apache2/sites-availableを開きます
> DocumentRoot /var/www
>
Webサーバーのルートがここになります

> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
>
> AllowOverride None
> Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
> Order allow,deny
> Allow from all
>

スクリプトcgiの設定です。
/usr/lib/cgi-bi/nのスクリプトが、Web上の ../cgi-bin/として動作するとのことです
まぁつまりスクリプトファイルやcgiは、/usr/lib/cgi-bi/hogehoe.cgiとおくと
これは、Web上からは、http://192.168.0.***/cgi-bin/hogehoe.cgi としてアクセスできるということらしいです

まぁ設定を変更する必要はなかったです。

4.テスト用ファイル、cgiの作成、動作確認

4-1.シェルの呼び出し

以下の内容で、/usr/lib/cgi-bin/test.cgiを作成します。

- - - - - test.cgi- - - - - - - - - - -
#!/bin/sh
echo "Hello apache!\n" > testapache.txt
- - - - - - - - - - - - - - - - - - - -

セキュリティ的なところは置いておいて、
/usr/lib/cgi-bin/ ディレクトリのパーミッションを変更します
$ sudo chmod 755 /usr/lib/cgi-bin/

test.cgiも実行ができるように、実行権限を追加しておきます
$ sudo chmod 755 /usr/lib/cgi-bin/test.cgi

この上で、ブラウザから以下へアクセスします。
http://192.168.0.***/cgi-bin/test.cgi
503なんかのエラーが出ますが、
/usr/lib/cgi-bin/のディレクトリを見ると、testapache.txtが作成されています。
こんな感じで、ユーザーからのインタフェースになります。


4-2.Pythsonの呼び出し
まぁPerlでもRubyでも好きなものでいいと思いますが、
Pythsonが、Raspbianにはじめから入っているものですから・・・


- - - - - test2.cgi- - - - - - - - - - -
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import cgi

def main():
print "Content-type: text/html\n"
form = cgi.FieldStorage()
print "<h1>Test Pythson</h1>"
main()
- - - - - - - - - - - - - - - - - - - -

同様にこれも、/usr/lib/cgi-bin/test2.cgiとしておいてあげて
実行権限を付け加えておいてやります

http://192.168.0.***/cgi-bin/test2.cgi
へアクセスすると、Test Pythsonと表示されました。


後は、補足になりますが、
何も設定を変えていないと、
Webサーバーのアクセスログの場所は、
/var/log/apache2
になります。

あと、Webサーバーの再起動は、以下のコマンドで可能です
$sudo /etc/init.d/apache2 restart

スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2013/05/06(月) 00:09:26|
  2. Raspberry Pi
  3. | トラックバック:0
  4. | コメント:0
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。