2ステップでRaspberry PiをWebサーバー化して、ブラウザからPythonスクリプトを走らせる方法
カテゴリー:Beaglebone・Raspberry Pi(記事数:76)

2017.09.14

2ステップでRaspberry PiをWebサーバー化して、ブラウザからPythonスクリプトを走らせる方法

自宅のIoT化進めていますが、Raspberry PiにApache入れてブラウザからPythonスクリプト走らせたり結果を表示したりする方法の個人的メモ

■Step.1: Apacheインストール
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apache2
サーバー起動
sudo service apache2 start
これでRaspberry PiのIPをブラウザでアクセスして(例:http://192.168.1.78など)「it working」みたいな画面が出ることをチェック

■Step.2: cgiを動作可能にする
(1)
各種設定ファイルは
/etc/apache2/に分散して入っている。/etc/apache2/mods-available/に利用可能な設定入っていて、/etc/apache2/mods-enabled/内のものが実際に使用可能になる、シンボリックリンクでcgi.loadをenabledディレクトリに
sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load

(2)/etc/apache2/modes-available/mime.conf
中の
#AddHandler cgi-script .cgi
を、コメントアウトをはずして、.pyを追加
AddHandler cgi-script .cgi .py

(3)Webアクセルするディレクトリは/var/www/なのでそこをスクリプト実行可能にする
具体的には
/etc/apache2/sites-available/defalt
中の<Directory /var/www/html>で囲われている中に
Options +ExecCGI
を追加

Apacheを再始動
sudo service apache2 restart

■注意点
これで/var/www中の.pyが実行可能になる。実行属性をつけるのを忘れないように
(例)sudo chmod 755 /var/www/1wire.py

あとスクリプトの最初の行に
#!/usr/bin/python
と書くことが必要。

何か表示するには最初に
print "Content-Type:text/html\n\n"
と書いておかないとブラウザに表示されない。

■■参考■■
何かトラブルがあった場合は
/var/log/apache2/error.log
にエラーログが出るのでそこを見る。

上記で現状は問題は起きてないけどいれたモジュールが権限の関係で実行出来ないことがあるらしい。たとえばその場合はapacheの実行ユーザーであるww-dataをグループgpioに追加するなど必要とのこと。
sudo gpasswd -a www-data gpio
各グループに登録されているユーザー一覧は
/etc/group
で見れる。

Category:Beaglebone・Raspberry Pi



■ ■ ■ コメント ■ ■ ■

いいっすね!=7

名前 ↑B

コメント(※改行は省略されます)

※3回以上の連続書き込み不可
この記事のアクセス数:


→カテゴリー:Beaglebone・Raspberry Pi(記事数:76) (コメント数)