以下は、Raspberry Pi のApacheに mod_wsgiをインストールしたときのメモです。
- Debian(Wheezy)
- Apache 2.2.22
- Python 3.3.2
最初は mod_python を試そうとしたのですが、ココによると、
mod_python は古くてメンテされていないので、 mod_wsgi の方がイーンジャネ。
とのことなので入れてみたしだいです。流されやすくてすいません。
ほぼココのまんまです。
まずは mod_wsgi を入れます。Python3を使っているので mod-wsgi も Python3用のものを入れます。
$sudo apt-get install libapache2-mod-wsgi-py3
テストとして走らせる .py を入れるディレクトリを作ります。
$cd /var/www
$sudo mkdir test
テストとして走らせる .py をそこに置きます。
$cd test
$sudo vi wsgi0.py
-----------
def application(environ, start_response):
status = '200 OK'
output = 'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
-----------
バーチャルホストを設定します。
このRaspberry Pi のローカルIPアドレスは 192.168.1.2 とし、架空のDDNSサービス(ddns.net)で mynetというホストを登録した例です。
$cd /etc/apache2/sites-available
$sudo cp default hoge
$sudo vi hoge
-----------
NameVirtualHost 192.168.1.2:80
<VirtualHost 192.168.1.2:80>
ServerAdmin admin@hoge.mynet.ddns.net
ServerName hoge.mynet.ddns.net
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
WSGIScriptAlias / /var/www/test/wsgi0.py
<Directory "/var/www/test">
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
-----------
$sudo a2ensite hoge
Apache を再起動します。
$sudo /etc/init.d/apache2 restart
WWWブラウザで http://192.168.1.2/test にアクセスして 'Hello World!' と出ればOKです。
ルーターのポートを開放してあれば、http://mynet.ddns.net/test でも同様に 'Hello World!' と出るはずです。