2

nginx で Trac を実行しようとしています。

tracd サーバーを実行することで構成される簡単な解決策がありますが、私はそれを避けようとしています。UNIX ソケットはサポートしていません。

代わりに、任意の WSGI アプリケーションを起動できるSpawningを使用しようとしています。

しかし、私はそれを使用する方法がわかりません。展開後、自分のディレクトリが含まれていますが、 Spawningを使用して起動する方法がわかりません。cgi-bintrac.wsgi

引数としてファイル名を受け入れません。モジュールとアプリケーション名を指定する必要がありますspawning my_module.my_wsgi_app。しかし、どうすれば trac.wsgi でそれを行うことができますか?

4

1 に答える 1

2

Spawning docs を読んでいると、コマンド ラインで最初のパラメータとして、アプリケーションの WSGI オブジェクトのドット区切り名を受け取ることがわかりました。特に Trac の場合、WSGI オブジェクトはtrac.web.main.dispatch_request [1]で定義されています。これを Spawning に渡してみてください。

ただし、Trac が正しく実行されるためには、いくつかの環境変数が必要であることを覚えておいてTRAC_ENVください。たとえば、Trac Environment を指す とPYTHON_EGG_CACHE、Python がロードされた Egg ファイルを抽出する場所です。

Spawning は最初の引数としてファイルを受け取らないため、必要ありませんtrac.wsgi

シェルから直接実行して、これを試すことができます。

$ TRAC_ENV=/path/to/your/trac-env PYTHON_EGG_CACHE=/tmp/.egg-cache spawning trac.web.main.dispatch_request

幸運を!

于 2011-11-13T03:35:33.620 に答える