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/mods-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
を追加
※バージョンより上記ファイルが無いことがあるみたい。直接/etc/apache2/apache2.confに書いてもい?
→OKっぽい
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
この後、apacheを再起動する必要あり
追記
続き
Category:#電子工作 Raspberry Pi、Arduinoなど
■ ■ ■ コメント ■ ■ ■
この記事のアクセス数:本カテゴリーで直近コメントが書かれた記事
→カテゴリー:#電子工作 Raspberry Pi、Arduinoなど(記事数:232)
本カテゴリーの最近の記事(コメント数)