Apache HTTP Server で WSGI 環境の構築 ( mod_wsgi のインストール )

Apache HTTP Server で WSGI 環境の構築をしてみたので、メモに残しておきます。

WSGI 実装したモジュール mod_wsgi があるので、こいつを使用します。

・modwsgi - Python WSGI adapter module for Apache. - Google Project Hosting
https://code.google.com/p/modwsgi/


1. ソースコードのダウンロード、展開


以下からダウンロードして、展開しておく
・Releases · GrahamDumpleton/mod_wsgi · GitHub
https://github.com/GrahamDumpleton/mod_wsgi/releases

wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.4.13.tar.gz
tar zxvf 4.4.13
cd mod_wsgi-4.4.13/


2. コンパイル


今回は、OS 同梱の Python ではなくてソースコードからコンパイルした方を使いたかったので、--with-python を指定して ./configure する。

./configure --with-python=/usr/local/python/3.4.3/bin/python3

コンパイルした Apache の apxs 使いたい場合は --with-apxs を指定する。こうしておくと、こっちの Apache 側の modules ディレクトリに mod_wsgi.so が配置されるはず。

make、make install する。

make
make install


すると、/etc/httpd/modules/ に mod_wsgi.so が配置されているはずです。

[root@centos62 mod_wsgi-4.4.13]# ls /etc/httpd/modules/ | grep wsgi
mod_wsgi.so


※ 1、2 は以下のドキュメントが参考になります。

・QuickInstallationGuide - modwsgi - Quick installation guide for mod_wsgi. - Python WSGI adapter module for Apache. - Google Project Hosting
https://code.google.com/p/modwsgi/wiki/QuickInstallationGuide


3. 動作確認


以下のように Apache の設定ファイルの編集、サンプルコードを作成する。

■ /etc/httpd/conf.d/wsgi.conf

LoadModule wsgi_module modules/mod_wsgi.so

WSGIScriptAlias / /var/www/html/wsgi-scripts/

<Directory /var/www/html/wsgi-scripts>
  Order allow,deny
  Allow from all
</Directory>

■ /var/www/html/wsgi-scripts/myapp.wsgi

def application(environ, start_response):
    status = '200 OK'

    response_headers = [('Content-type', 'text/plain')]
    start_response(status, response_headers)

    return [b"Hello World!"]


上記完了後、Apache 起動して、Web ブラウザから「http://localhost/myapp.wsgi」にアクセスすると「Hello World!」と表示されるはずです。

※ 3 は以下のクイックガイドが参考になります。

・QuickConfigurationGuide - modwsgi - Quick configuration guide for mod_wsgi. - Python WSGI adapter module for Apache. - Google Project Hosting
https://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide


mod_wsgi のディレクティブについては、以下のドキュメントに情報があります。

・ConfigurationDirectives - modwsgi - The mod_wsgi configuration directives. - Python WSGI adapter module for Apache. - Google Project Hosting
https://code.google.com/p/modwsgi/wiki/ConfigurationDirectives


以上です。

[ 環境情報 ]
CentOS 6.2
Apache HTTP Server 2.2.15
Python 3.4.3
mod_wsgi 4.4.13