【Python】Raspberry PiにApache2をインストールしてHTMLを出力

  • URLをコピーしました!

目次

はじめに

Raspberry Pi 3Apache をインストールする手順を記述します。ローカルWEBサーバとして稼働させます。

Raspberry Pi に Python をインストールする方法はこちらの記事を参考にしてください。

大-はなまるのモノコトブログ
【Python】Raspberry Pi の OS(RASPBIAN)に Python をインストール | 大-はなまるのモノコトブログ はじめに Raspberry Pi に Python をインストールする手順を記述しました。「Raspberry Pi」の購入と、「OS」のインストールが完了しているのが前提で作業をすすめていきま...

作業環境

  • Raspberry Pi 3 Model B
  • RASPBIAN 8.0 jessie
  • Python 3.8.0
created by Rinker
Raspberry Pi
¥7,980 (2024/04/25 11:33:45時点 Amazon調べ-詳細)

Apacheのインストール

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

ローカルWEBサーバとして稼働しているか確認

同ローカルネットワーク上のPCのブラウザに Raspberry Pi の アドレスでApacheが起動しているか確認します。

わたしの環境では、Raspberry Pi は 「192.168.10.20」で稼働していますので、同じローカルネットワークに接続している他のPCのブラウザに「http://192.168.10.20/」と打ち込んで実行します。下記画面が表示されれば、Apacheのインストールが無事完了しています。

Apache のコマンド

スタート

$ sudo service apache2 start

リスタート

$ sudo service apache2 restart

ストップ

$ sudo service apache2 stop

Apache で Python を実行できる環境の作成

Pythonスクリプトを実行できるようにCGIの設定する

cgi.load のシンボリックリンクを貼る

$ sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load

拡張子.py でCGIが実行できるようにする

$ sudo vi /etc/apache2/mods-available/mime.conf
# AddHandler cgi-script .cgi
  ↓ コメントを外し、「.py」を追記
  AddHandler cgi-script .cgi .py

CGIを動かすディレクトリを定義

$ sudo vi /etc/apache2/conf-available/serve-cgi-bin.conf
[変更前]
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">

[変更後]
ScriptAlias /cgi-bin/ /home/pi/public_html/cgi-bin
<Directory "/home/pi/public_html/cgi-bin">

Apache の再起動

$ sudo service apache2 restart

Pythonで作ったサンプルページの表示確認

コード記述

vi /home/pi/public_htm/cgi-bin/sample.py
[PreTitle val=Python]
#!/usr/bin/python
# -*- coding: utf-8 -*-

print("Content-Type: text/html")
print("")   ### <-- ここに改行がないと「Internal Server Error」になります。
print("Hello World.")

実行

ブラウザに「http://192.168.10.20/~pi/cgi-bin/sample.py」と入力し実行

実行結果

[PreTitle val=実行結果]
Hello World.

おわりに

Raspberry Pi で WEBサーバを立て、PythonでWEBアプリが動作することが確認できましたね。

この記事がお役に立ちましたら幸いです。

では、また。

※本サイトの漫画やイラストはフィクションであり、実在の製品・団体・人物・地名とは関係ありません。
※本サイトに掲載する情報には充分に注意を払っておりますが、その内容について保証するものではありません。
※本サイトの使用ならびに閲覧によって生じたいかなる損害にも責任を負いかねます。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次