【自動運転#10】Webサーバをインストールしてみた【ソフトウェアPart7】

目次

環境

Raspberry Pi Zero 2W

モニター(EIZO)

MacBook Air 11.6

前回まで

前回はラズパイファイルをMacBook Airと共有しました。

スマホでもラズパイにアクセスしたり、Pythonプログラムを実行したいので、今回はWebサーバをラズパイにインストールにしてみました。

やったこと

Apache HTTP Serverってのがあるらしい

Apache HTTP Serveという世界で最も利用されているWebサーバーソフトウェアがあるので、それを使います。

まず、インストールして、設定していきます。

ラズパイ側

ターミナルを開いて、

sudo apt-get -y install apache2

と入力してください。インストールが始まります。

CGIが実行できるようにする

次にCGIが実行できるように設定します。CGIとはWebサーバーがプログラムを実行する仕組みのことです。

ラズパイ側

ターミナルに

sudo nano /etc/apache2/apache2.conf

入力すると、「apache2.conf」が開きます。下のように書かれている場所を探します。

<Directory /var/www>
///省略///
</Directory>

探せたら、そこを以下のように書き換えます。

<Directory /var/www>
          Require all granted
          AllowOverride All
          Options ExecCGI
          AddHandler cgi-script .cgi .py
</Directory>

書き換えたら、「Ctrl」+「X」を押して、

「Y」キーを押して、

「Enter」です。

そしたら、保存されます。

次にCGIが実行できるように、モジュールを有効します。

以下のコマンドを入力してください。

sudo a2enmod cgi

これで、Apacheの任意のモジュールを有効にできました。

まだあります。

GPIOの操作もできるように、www-dataをグループ「gpio」に追加します。

sudo gpasswd -a www-data gpio

と入力します。

で、最後に再起動します。

sudo service apache2 restart

Apacheの設定はこれで終了です。

CGIでPythonを実行

Apacheの設定が完了したので、次にCGIでPythonプログラムを実行します。

ラズパイ側

ファイルを作成します。

#!/usr/bin/env python3

# CGIのヘッダ
print("Content - Type: text/html: charset=utf-8")
print("")
# 表示するメッセージ
print("<h1>こんにちは</h1>")

↑こんな感じのファイルを作ります。ファイル名は「hello-cgi.py」としてください。

次に、プログラムをApacheのドキュメントルートである「var/www/html」にコピーして、プログラムの実行権限を与えます。

よくわかりませんね。

とりあえず、下のコマンドをターミナルに入力します。

sudo cp hell-cgi.py /var/www/html/
sudo chmod 777 /var/www/html/hello-cgi.py

次にMac側に移ります。

Mac側

Webブラウザの検索バーのところに

http://***.***.**.**/hello-cgi.py 

と入力してください。*にはラズパイのIPアドレスを入れてください。

すると、

ブラウザに「こんにちは」と表示されます。

これで終わりです。

余談ですが、苦戦したところ

私はapache2.confを書き換える工程ですごく苦戦しました。

<Directory /var/www>
///省略///
</Directory>

書き換えるのは上の部分なのですが、この部分の少し上にも似たようなモノがあります。下のような部分です。

<Directory>
///省略///
</Directory>

こちら側には同じDirectoryですが「/var/www」がありません。間違わないように気をつけてください。

私は間違えて、ここを書き換えてしまっていたので、全然うまくいかず、苦労しました。

書き直そうとしても、前に書いてあったコマンドを覚えていなかったので、

結局、Apacheをアンインストールして、再度打ち直しました。

ちなみにアンインストールの方法は、

sudo apt-get remove apache2
sudo apt-get purge apache2

でアンインストールできます。

環境設定終わり!!

これでやっと、環境設定が終わり。。。。

なはず。

次は基盤回路の勉強です。

ここまで読んでいただきありがとうございました。

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

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次