先日開発サーバを準備することになって、Trac を入れる必要があったんですが、そういえば Passenger が WSGI に対応したなぁ、動くかなぁ、と思ったのでさっそくやってみました。
/var/www/vhosts/trac.example.com 内にバーチャルホストを作るという前提です。
Trac 自体はインストール済みで、/var/www/vhosts/trac.example.com/trac に initenv してあるものとします。ここでは説明しません。
Trac ホスト用のディレクトリを準備
$ mkdir -p /var/www/vhosts/trac.example.com/public $ mkdir -p /var/www/vhosts/trac.example.com/tmp/eggs
public はドキュメントルート、tmp/eggs は PYTHON_EGG_CACHE 用です。
WSGI 用のスクリプトを設置
以下のコードを /var/www/vhosts/trac.example.com/passenger_wsgi.py として設置します。
import os os.environ['TRAC_ENV'] = '/var/www/vhosts/trac.example.com/trac' os.environ['PYTHON_EGG_CACHE'] = '/var/www/vhosts/trac.example.com/tmp/eggs' import trac.web.main application = trac.web.main.dispatch_request
パーミッションは 644 や 664 で構いません。
バーチャルホストの設定
Rails アプリを Passenger で動かすときと同じです。
ServerName trac.example.com DocumentRoot /var/www/vhosts/trac.example.com/public
これで trac.example.com にアクセスすると、Passenger 上で Trac が起動します。
Rails アプリと同様に、touch tmp/restart.txt で再起動もできるようです。
このエントリーに対するコメント
- トラックバック
「いいね!」で応援よろしくお願いします!