2ステップでRaspberry PiをWebサーバー化して、ブラウザからPythonスクリプトを走らせる方法
カテゴリー:#電子工作 Raspberry Pi、Arduinoなど(記事数:225)

↑B


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など



■ ■ ■ コメント ■ ■ ■

いいっすね!=23

名前 ↑B

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

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

本カテゴリーで直近コメントが書かれた記事


→カテゴリー:#電子工作 Raspberry Pi、Arduinoなど(記事数:225)
本カテゴリーの最近の記事(コメント数)