-
Notifications
You must be signed in to change notification settings - Fork 9
mt.psgiの起動
aklaswad edited this page Jun 10, 2012
·
1 revision
mt.psgiを動作させるためには、Plack/PSGI関連の多くのモジュールが必要となります。Task::Plack(関連モジュールを一括インストールするためのCPANモジュール)などを利用して、Plackの動作環境を整えてください。
# cpanm Task::Plack
また、XMLRPCサーバー(mt-xmlrpc.cgi)の動作にはXMLRPC::Transport::HTTP::Plackモジュールが必要になります。
mt.psgiは、Starmanをリファレンス環境として開発がすすめられています。Starman(もしくは同等のprefork型PSGIサーバ)で安定した動作が期待できる一方、plackupのような一部のPSGIサーバでは、未修正の既知の問題が存在します。
plackupはリクエストを順次処理するシンプルなwebサーバ実装であるため、例えば内部のブログ記事に対するトラックバックを送信した場合などに、以下のようにデッドロックが発生します。
- 送信側のプログラムコードでは、トラックバックのリクエストに対するレスポンスが帰ってくるまで処理がブロッキングされる
- (同一スレッドで処理待ちとなる)トラックバック受信側は、送信側の処理が完了するまで、リクエストの処理が開始されない
以下の様なアプリケーション全体の動作に関わるような設定変更を行った場合、mt.psgiはアプリケーションの再起動を試みます。
- デバッグモードの変更
- カスタムフィールドの追加/削除
# then run starman $ starman --pid /var/run/mt.pid ./mt.psgi