mod_pythonを使って稼働させる

Introduction

このドキュメントは mod_python を使ってTurboGearsを稼働させる良い方法をあなたにお届けします。mod_pythonがインストールされ、 Apache が利用可能になっていることが前提となります。

*このサンプルではプロジェクトを"ProjectName?"と呼ぶことにします*、

セットアップと設定

Jamie Turner's mpcp スクリプトをインストールします:

sudo easy_install -Z mpcp

mod_python との互換性のために、 ProjectName?-start.py ファイルのハイフンを削除あるいは置換しなければなりません。ここではハイフンをアンダースコアに置換することにします:

mv ProjectName-start.py ProjectName_start.py

プロジェクトディレクトリに以下のような .htaccess ファイルを作成します:

SetHandler mod_python
PythonHandler mpcp
PythonDebug On
PythonOption cherrysetup ProjectName_start::mp_setup

ProjectName?_start.py に以下の変更を加えます:

  1. 直接呼ばれた場合にのみCherryPyサーバを起動させるようにします:
if __name__ == "__main__":
    cherrypy.server.start()
  1. mp_setup() メソッドを作成します:
def mp_setup():
    '''
    mpcp.py looks for this method for CherryPy configs but our *.cfg files handle that.
    '''
    pass

Apacheを再起動すればmod_pythonでTurboGearsを動かすことができるでしょう。

Linux Users

Linuxマシンで実行するにはもう少し作業が必要です。スタートスクリプトを編集してファイルパスを正しくする必要があります:

import pkg_resources
pkg_resources.require("TurboGears")

import cherrypy
from os.path import *
import sys

def mp_setup():
    pass

if exists(join(dirname(__file__), "setup.py")):
    cherrypy.config.update(file=join(dirname(__file__),"dev.cfg"))
else:
    cherrypy.config.update(file=join(dirname(__file__),"prod.cfg"))

from ProjectName.controllers import Root

cherrypy.root = Root()