SnopticをApacheで動かしてみた。
気になってはいたが動かし方が分からず、しばらく忘れてたソフトを動かしてみた。
前準備
いろいろと周辺ライブラリが必要なのでeasy_installでいっぺんにインストールする。
easy_install synoptic
easy_installでインストールしておいてなんだけど、
http://pypi.python.org/pypi/synoptic
から、tar.gzでソースもダウンロードする。
単独起動
ダウンロードしたソースを展開してsampleを使用する。
synoptic-0.91.5/doc/sample.wsgi
をsample.pyとかに変名してデータベースのパスを変えて実行するとlocalhost:7331で起動する。
困ったことに他のマシンから接続できなかった。
Apacheで起動
Apacheで起動する方法。Apacheのことをよくわかってないから大変!
手順は以下。
アプリケーションの配置
synopticのアーカイブに含まれていたsample.wsgiをsynoptic_wsgi.pyに変名してc:\temp\pythonにおいた。
データベースをc:\temp\pythonに作りたいので以下のように設定。
DATABASE_FILE = os.path.join(os.path.abspath(os.path.dirname(__file__)),'synoptics.sqlite3') DATABASE_URL = 'sqlite:///%s' % DATABASE_FILE URL_PREFIX = '/' ADD_STARTUP_CONTENT = False
単独起動の時だったけど、ADD_STARTUP_CONTENT=Trueにしてみたら起動後に初期デー
タが増殖して大変なことになったので初期データを投入したい場合は手動で投入する。
正確なコマンドを忘れてしまったけど以下みたいな感じだったと思う。
from synoptic import Application from synoptic import DBSessionInjector from synoptic import import_file, get_static_file app = Application(URL_PREFIX) app = DBSessionInjector(app, DATABASE_URL) import_file(dbinj.sessionmaker(), get_static_file("initial-content.txt")[0])
sample.wsgiの中身をトレースしただけ。
mod_wsgiのインストール
http://code.google.com/p/modwsgi/
からwindows用のmod_wsgi.soをダウンロードしてきてApacheのmodulesに配置。
2009-01-14追記
python2.5を使用している場合にはsqliteのバージョンが合わないのでpysqliteを追加でインストールする必要がある。