YEALY ARCHIVES

2007年11月の記事を表示しています

XAMPP for Windowsでweb.py環境を作ります

ローカルマシンにweb.pyを使ったアプリケーションの開発環境をつくるため、試行錯誤してみました。

まずは必要なものをダウンロードします。

  • Python2.4.4
    python-2.4.4.msiをダウンロードしてさくっとインストールします。
  • flup
    flup-r2030.tar.gzをダウンロードして解凍し(flup-0.5とかだとだめっぽいので注意)、Windowsでも動くように
    flup-r2030\flup\server\fcgi_base.pyの970~981行目を以下のように編集します。

    isFCGI = False        
    
    #sock = socket.fromfd(FCGI_LISTENSOCK_FILENO, socket.AF_INET,
    #                     socket.SOCK_STREAM)
    #try:
    #    sock.getpeername()
    #except socket.error, e:
    #    if e[0] == errno.ENOTSOCK:
    #        # Not a socket, assume CGI context.
    #        isFCGI = False
    #    elif e[0] != errno.ENOTCONN:
    #        raise

    それでもってコマンド実行してインストール。

    > cd flup-r2030
    > python setup.py install
  • web.py
    web.py-0.22.tar.gzをダウンロードしてきて解凍し、ちょこっと編集します。
    まず、webpy\web\wsgi.pyの17行目を以下のように変更。

    return flups.WSGIServer(func, multiplexed=True, bindAddress=addr, maxSpare=0).run()

    次に、同じくwebpy\web\wsgi.pyの32 行目の下に、以下の6行を追加。

      path_begin = os.environ['SCRIPT_NAME'].rfind('/')
      try:
        query_begin = os.environ['REQUEST_URI'].index('?')
        os.environ['PATH_INFO'] = os.environ['REQUEST_URI'][path_begin:query_begin]
      except ValueError:
        os.environ['PATH_INFO'] = os.environ['REQUEST_URI'][path_begin:]

    それでもってコマンド実行してインストール。

    > cd webpy
    > python setup.py install
  • XAMPP Lite for Windows
    XAMPP Lite 1.6.4あたりのZIPをダウンロードしてきてさくっと解凍します。

せっかくなので、web.pyで何かつくってみます。
まずはxampplite\htdocsに「hoge」フォルダをつくって、index.cgiを作成します。
index.cgiの内容はとりあえず、↓のようなかんじに。

#!C:\Python24\python.exe
# -*- coding: utf-8 -*-       

import web       

urls = ('/hello', 'view')       

class view:
    def GET(self):
        print 'Hello, world!'       

if __name__ == '__main__': web.run(urls, globals())

それから次のような .htaccess ファイルもつくっておきます。

  RewriteEngine on
  RewriteBase /hoge/
  RewriteCond %{REQUEST_URI} !^(/.*)+index.cgi/
  RewriteRule ^(.*)$ index.cgi/$1 [PT]

なお、事前にhttpd.confの以下の部分のコメントをはずしておきます。

LoadModule rewrite_module modules/mod_rewrite.so

準備ができたらXAMPPのコントロールパネルからApacheを起動して、ブラウザで以下のURLにアクセスします。
http://localhost/hoge/hello
見事に「Hello, world!」と表示されたら今日は大団円。

TOPへ

このサイトについて

Wardish Labs(ウォーディッシュラボズ)は、
Wardish合同会社のエンジニアがさまざまなサービスや技術についての情報をアウトプットしていくサイトです。

 

執筆者の紹介

Tetsuya Mito

ウォーディッシュの代表社員。
最近の口グセは「どこのカレー食べる?」。

  

Akie Utsumi

ウォーディッシュの社員。
最近の口グセは「猫にかまわれたい」。

  

TOPへ