ラベル WSGI の投稿を表示しています。 すべての投稿を表示
ラベル WSGI の投稿を表示しています。 すべての投稿を表示

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  ヴァージョンを得る

2012-02-06

図書紹介#010:「WSGIウェブプログラミング」

先々週に購入したものの、書き忘れていた。本屋さんで偶然拝見して購入した。この手の本は、検索ではなかなか気づかないので、本屋さんの醍醐味を感じた。
  • 「WSGIウェブプログラミング」
    • 桑井 博之・著
    • 株) カットシステム、2012-02-10
    • ISBN-13: 978-4-87783-288-9
WSGIとは、Pythonとウェブサーバーとのインターフェイスをするような仕組みらしいです。Djangoのようなフルスタックなフレームワークにすぐ手を出す前に、一度眺めてみるかな。

ただし、WSGIはPython2.6系しかサポートしないので、Lionに標準搭載のPython2.7.1を切り替えたり、Apache2.2へのモジュール追加などのした準備がいるようです。現在、ボチボチ準備をしているところです。

なお、偶然ですが、
といった方向もあるようです。

これまた書き忘れていたのですが、この本をみて、自分の問題点を「Apple サポート
コミュニティ Mac OS X v10.7 Lion」に質問を出していましたが、コメントをいただけなかったのですが、今日、Hirokiさんから丁寧な解説を頂戴しました;
初めての「apxs」コマンドを使っていたいと思います。

自分でmod_wsgiをコンパイルする為に、まずは、ブラウザで;
にアクセスし、~/Downloadに入手した後からの ターミナルの記録を参考までに示しておきます。;
 div-mm:~ u1$ cd Downloads/
div-mm:~/Downloads u1$ ll
total 272
-rw-r--r--  1 u1  staff   20150  2  4 12:55 mCv15BGq(1).part.png
-rw-r--r--@ 1 u1  staff  117930  2  7 18:25 mod_wsgi-3.3.tar.gz
div-mm:~/Downloads u1$ tar zxvf mod_wsgi-3.3.tar.gz
x mod_wsgi-3.3/
x mod_wsgi-3.3/configure
x mod_wsgi-3.3/configure.ac
x mod_wsgi-3.3/LICENCE
x mod_wsgi-3.3/mod_wsgi.c
x mod_wsgi-3.3/posix-ap1X.mk.in
x mod_wsgi-3.3/posix-ap2X.mk.in
x mod_wsgi-3.3/README
x mod_wsgi-3.3/win32-ap22py26.mk
x mod_wsgi-3.3/win32-ap22py31.mk
div-mm:~/Downloads u1$ ll
total 272
-rw-r--r--   1 u1  staff   20150  2  4 12:55 mCv15BGq(1).part.png
drwxr-xr-x@ 11 u1  staff     374  7 26  2010 mod_wsgi-3.3/
-rw-r--r--@  1 u1  staff  117930  2  7 18:25 mod_wsgi-3.3.tar.gz
div-mm:~/Downloads u1$ cd mod_wsgi-3.3/
div-mm:~/Downloads/mod_wsgi-3.3 u1$ ll
total 1176
-rw-r--r--@ 1 u1  staff   11358  6 23  2007 LICENCE
-rw-r--r--@ 1 u1  staff   18063  7 26  2010 README
-rwxr-xr-x@ 1 u1  staff   80107 11 23  2009 configure*
-rw-r--r--@ 1 u1  staff    5886 11 23  2009 configure.ac
-rw-r--r--@ 1 u1  staff  459306  7 26  2010 mod_wsgi.c
-rw-r--r--@ 1 u1  staff    1195  6 21  2009 posix-ap1X.mk.in
-rw-r--r--@ 1 u1  staff    1247  6 21  2009 posix-ap2X.mk.in
-rw-r--r--@ 1 u1  staff     914  6 21  2009 win32-ap22py26.mk
-rw-r--r--@ 1 u1  staff     914  7 17  2009 win32-ap22py31.mk
div-mm:~/Downloads/mod_wsgi-3.3 u1$ ./configure --with-apxs=/usr/sbin/apxs --with-python=/usr/bin/python
checking Apache version... 2.2.21
configure: creating ./config.status
config.status: creating Makefile
div-mm:~/Downloads/mod_wsgi-3.3 u1$ ll
total 1248
-rw-r--r--@ 1 u1  staff   11358  6 23  2007 LICENCE
-rw-r--r--  1 u1  staff    1563  2  7 18:39 Makefile
lrwxr-xr-x  1 u1  staff      16  2  7 18:39 Makefile.in@ -> posix-ap2X.mk.in
-rw-r--r--@ 1 u1  staff   18063  7 26  2010 README
-rw-r--r--  1 u1  staff    4024  2  7 18:39 config.log
-rwxr-xr-x  1 u1  staff   20810  2  7 18:39 config.status*
-rwxr-xr-x@ 1 u1  staff   80107 11 23  2009 configure*
-rw-r--r--@ 1 u1  staff    5886 11 23  2009 configure.ac
-rw-r--r--@ 1 u1  staff  459306  7 26  2010 mod_wsgi.c
-rw-r--r--@ 1 u1  staff    1195  6 21  2009 posix-ap1X.mk.in
-rw-r--r--@ 1 u1  staff    1247  6 21  2009 posix-ap2X.mk.in
-rw-r--r--@ 1 u1  staff     914  6 21  2009 win32-ap22py26.mk
-rw-r--r--@ 1 u1  staff     914  7 17  2009 win32-ap22py31.mk
div-mm:~/Downloads/mod_wsgi-3.3 u1$ make
/usr/sbin/apxs -c -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DENABLE_DTRACE -DMACOSX -DNDEBUG -DNDEBUG -DENABLE_DTRACE  -Wc,'-arch x86_64' -Wc,'-arch i386' mod_wsgi.c -Wl,-F/System/Library/Frameworks -framework Python -u _PyMac_Error /System/Library/Frameworks/  -arch x86_64 -arch i386 -ldl  -framework CoreFoundation 
/usr/share/apr-1/build-1/libtool --silent --mode=compile gcc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/local/include -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch x86_64 -arch i386 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DENABLE_DTRACE -DMACOSX -DNDEBUG -DNDEBUG -DENABLE_DTRACE  -c -o mod_wsgi.lo mod_wsgi.c && touch mod_wsgi.slo
/usr/share/apr-1/build-1/libtool --silent --mode=link gcc -o mod_wsgi.la  -rpath /usr/libexec/apache2 -module -avoid-version    mod_wsgi.lo -Wl,-F/System/Library/Frameworks -framework Python -u _PyMac_Error /System/Library/Frameworks/ -arch x86_64 -arch i386 -ldl -framework CoreFoundation
warning: no debug symbols in executable (-arch x86_64)
warning: no debug symbols in executable (-arch i386)
div-mm:~/Downloads/mod_wsgi-3.3 u1$
div-mm:~/Downloads/mod_wsgi-3.3 u1$ ls
LICENCE            README             configure*         mod_wsgi.la        mod_wsgi.slo       win32-ap22py26.mk
Makefile           config.log         configure.ac       mod_wsgi.lo        posix-ap1X.mk.in   win32-ap22py31.mk
Makefile.in@       config.status*     mod_wsgi.c         mod_wsgi.o         posix-ap2X.mk.in
div-mm:~/Downloads/mod_wsgi-3.3 u1$ sudo make install
Password:
/usr/sbin/apxs -i -S LIBEXECDIR=/usr/libexec/apache2 -n 'mod_wsgi' mod_wsgi.la
/usr/share/httpd/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1/build-1/libtool' mod_wsgi.la /usr/libexec/apache2
/usr/share/apr-1/build-1/libtool --mode=install cp mod_wsgi.la /usr/libexec/apache2/
libtool: install: cp .libs/mod_wsgi.so /usr/libexec/apache2/mod_wsgi.so
libtool: install: cp .libs/mod_wsgi.lai /usr/libexec/apache2/mod_wsgi.la
libtool: install: cp .libs/mod_wsgi.a /usr/libexec/apache2/mod_wsgi.a
libtool: install: chmod 644 /usr/libexec/apache2/mod_wsgi.a
libtool: install: ranlib /usr/libexec/apache2/mod_wsgi.a
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/libexec/apache2

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `DYLD_LIBRARY_PATH' environment variable
     during execution

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/libexec/apache2/mod_wsgi.so
div-mm:~/Downloads/mod_wsgi-3.3 u1$ ll /usr/libexec/apache2 |grep wsgi
-rwxr-xr-x  1 root  wheel    406120  2  7 18:49 mod_wsgi.so*
div-mm:~/Downloads/mod_wsgi-3.3 u1$


ーーーー このポストの履歴
  1. 開始 2012-02-06 (月) 23:29
  2. 追加 2012-02-07  (火) 17:26  「Apple サポートコミュニティ Mac OS X v10.7 Lion」に質問
  3. 追加 2012-02-16  (木) 21:50  mod_wsgiをコンパイルした時のターミナルの記録


2012-01-28

「floating menu」のサイト

Python関係の検索していて「floating menu」を実施しているサイトを拝見した。<frame>を用いていると思ったが違うようだ:その記事を見ていたら;
と言う事らしい。このサイトは部分的にも「Pyhton-Django」を用いているらしい。

自分も取りあえず「Python-WSGI」から手を出してみたいものだ。

「floating menu」が出来れば、昔のPerlのWikiが再現できるかもしれない。


ーーーー このポストの履歴
  1. 開始 2012-01-28 (土) 20:39



注目の投稿

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

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