2012-02-18

「Lion10.7の標準Apache2」にmod_wsgiをインストール

以前の記事『図書紹介#010:「WSGIウェブプログラミング」』で、wsgi-moduleのコンパイルまでテストできたが、この本はWindowsで、Apacheも新規にインストールする話で、Macの場合は説明が無い。

そこで、以前から気になっていた「Mac OS X でのApache2」の設定を調べた記事が『「Lion10.7の標準Apache2」での設定状況 』です。これらを元にしてwsgi_mod/3.3をApache/2.2.21にインストールした結果をまとめて置きます。

「WSGIウェブプログラミング」 p76の「リスト4.4 http-wsgi.conf(Windows版)」を参考にして、「/usr/apache2/extr/」にhttp-wsgi.conf(OSX版)を追加した;

div-mm:/etc/apache2/extra u1$ ll
total 24
-rw-r--r--  1 root  wheel   2841  9 18 15:47 httpd-autoindex.conf
-rw-r--r--  1 root  wheel   1648  9 18 15:47 httpd-dav.conf
-rw-r--r--  1 root  wheel   2344  9 18 15:47 httpd-default.conf
-rw-r--r--  1 root  wheel   1103  9 18 15:47 httpd-info.conf
-rw-r--r--  1 root  wheel   5078  9 18 15:47 httpd-languages.conf
-rw-r--r--  1 root  wheel    942  9 18 15:47 httpd-manual.conf
-rw-r--r--  1 root  wheel   4074  9 18 15:47 httpd-mpm.conf
-rw-r--r--  1 root  wheel   2180  9 18 15:47 httpd-multilang-errordoc.conf
-rw-r--r--  1 root  wheel  10249  9 18 15:47 httpd-ssl.conf
-rw-r--r--  1 root  wheel    514  9 18 15:47 httpd-userdir.conf
-rw-r--r--  1 root  wheel   1545  9 18 15:47 httpd-vhosts.conf
-rw-r--r--  1 root  wheel    593  2 17 21:12 httpd-wsgi.conf
div-mm:/etc/apache2/extra u1$
その内容は;
div-mm:/etc/apache2/extra u1$ cat httpd-wsgi.conf
#
# refer to "WSGI Programming", p74..6. 
# by u1 at div-mm on Lion 10.7.3, 2011-02-17.
## Home BU: ~/Sites/myApache2/apache2_BU/httpd-wsgi.conf
## Apache2: /private/etc/apache2/extra/httpd-wsgi.conf
#
LoadModule wsgi_module libexec/apache2/mod_wsgi.so

Listen 9000

<VirtualHost *:9000>
    ErrorLog "/private/var/log/apache2/wsgi-error_log"
    CustomLog "/private/var/log/apache2/wsgi-access_log" common
</VirtualHost>

<Directory "/Users/u1/Sites/devP/application/wsgi">
    Order deny,allow
    Allow from all
</Directory>

WSGIScriptAlias /wsgi "/Users/u1/Sites/devP/application/wsgi"
div-mm:/etc/apache2/extra u1$ 
です。このファイルを「/etc/apache2/http.conf」の中でインクルードしました;
 # Language settings
Include /private/etc/apache2/extra/httpd-languages.conf

<IfDefine WEBSHARING_ON>
# Multi    -language error messages
#Include /private/etc/apache2/extra/httpd-multilang-errordoc.conf

# Fancy directory listings
Include /private/etc/apache2/extra/httpd-autoindex.conf

# User home directories
Include /private/etc/apache2/extra/httpd-userdir.conf

# Real-time info on requests and configuration
#Include /private/etc/apache2/extra/httpd-info.conf

# Virtual hosts
#Include /private/etc/apache2/extra/httpd-vhosts.conf

# Local access to the Apache HTTP Server Manual
Include /private/etc/apache2/extra/httpd-manual.conf

# Distributed authoring and versioning (WebDAV)
#Include /private/etc/apache2/extra/httpd-dav.conf

# wsgi(Web Server Gateway Interface) between Apache2 and web-applications
Include "/private/etc/apache2/extra/httpd-wsgi.conf"

</IfDefine>
どこに置くのがいいのか判らないので、見慣れた「httpd-manual.conf
」の近くに入れてみました。

 テストの為に、「WSGIウェブプログラミング」p80、index.wsgiを作り;
div-mm:~/Sites/devP/application/wsgi u1$ cat index.wsgi
# -*- coding: utf-8 -*-

def application(environ, start_response):

    status = '200 OK'
    body = 'wsgi Application のテスト'
    header = [('Content-Type', 'text/html; charset=-8'),
           ('Content-Length', str(len(body)))]
    start_response(status, header)
    return [body]
div-mm:~/Sites/devP/application/wsgi u1$ 


ブラウザから「http//:localhost:9000/wsgi/index.wsgi」にアクセスすると、 「wsgi Application のテスト」が表示された。


なお、wsgiのログは、「コンソール.app」で確認できた。

小技:Apacheのヴァージョンを得るには;
div-mm:~ u1$ httpd -v
Server version: Apache/2.2.21 (Unix)
Server built:   Nov 15 2011 15:12:57
div-mm:~ u1$ 


ーーーー このポストの履歴
  1. 開始 2012-02-18 (土) 14:00
  2. 追加 2012-02-19  (日) 18:03  ヴァージョンを得る

0 件のコメント:

コメントを投稿

注目の投稿

Terminalでの、なんちゃってViモドキ

近頃、ようやくKarabiner-Elementsに慣れてきたので、 Terminalで動作する「擬似Vi-Mode」を作って見たので、ご紹介します。 『概要』 「擬似Vi-Mode」の所以は、方向キー「←↓↑→」を通常の「hjkl」ではなくて「jkil」としました。これ...