メモ > 技術 > 開発: RaspberryPi > Webサーバ
Webサーバ
■HTTPDでアクセス
$ sudo apt-get install apache2 ... Apacheをインストール。
$ apache2 -v ... Apacheのバージョンを確認。
$ sudo service apache2 start ... Apacheを起動。
$ sudo service apache2 stop ... Apacheを停止させる場合。
$ sudo service apache2 restart ... Apacheを再起動させる場合。
完了後 http://127.0.0.1/ にアクセスすると /var/www/html/index.html が表示される。
http://localhost/ もしくは http://raspberrypi/ でもアクセスできる。
Raspberry Pi 3 に Apache 2.4 + PHP 7.0 をインストール | スモールサーバ開発部
https://blog.smallserver.jp/raspberry-pi-3-%E3%81%AB-apache-2-4-php-7-0-%E3%82%92%E3%82%A4%E3%83%B3%...
Apacheの設定は以下も参考になる。
RaspbianにおけるApache2の設定 - Qiita
https://qiita.com/takey/items/75e6984468f0f6870a97
■PythonをCGIとして実行
【Python 3.6】Linux+AnacondaでCGIを動かそう | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト
https://www.sejuku.net/blog/62938
# ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load
# service apache2 restart
# cd /usr/lib/cgi-bin
# vi sample.py
以下のようにアクセスすると、「This is my first CGI script」と表示される。
http://raspberrypi/cgi-bin/sample.py
■CGI置き場を /var/www/cgi-bin に変更
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import cgi
import cgitb
cgitb.enable()
print("Content-Type: text/html") # HTML is following
print("") # blank line, end of headers
print("<TITLE>CGI script output</TITLE>")
print("<H1>This is my first CGI script</H1>")
print("Hello, world!")
chmod +x /usr/lib/cgi-bin/sample.py
# mkdir /var/www/cgi-bin
# vi /etc/apache2/conf-enabled/serve-cgi-bin.conf
これで /var/www/cgi-bin に置いたものが /cgi-bin に反映される。
■基本的なCGIプログラム
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
↓
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
# service apache2 restart
# vi /var/www/cgi-bin/test.py
※2〜6行目は無くても表示された。
※FTPソフトで転送する場合、アスキーモードで転送する。#!/usr/bin/env python3.7
# coding: utf-8
# -*- coding: utf-8 -*-
import sys,io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
print("Content-Type: text/html; charset=UTF-8\n")
print("<!DOCTYPE html>")
print("<html>")
print("<head>")
print("<meta charset=\"utf-8\">")
print("<title>Python</title>")
print("</head>")
print("<body>")
print("<h1>Python</h1>")
print("<p>これはPythonの実行結果です。</p>")
print("</body>")
print("</html>")
# chmod 755 /var/www/cgi-bin/test.py