2009-07-01 10 views
10

私は、埋め込みwsgiを使ってApacheにdjangoをインストールしました。私はマシンにrootを持っていません。ルートなしのdjango wsgiスクリプトを再ロード

新しいソースコードをデプロイするときに、pythonインスタンスを再読み込みするようにApacheに指示するにはどうすればよいですか?

すべての.pycファイルを削除しようとしましたが、それでも古いコードが実行されています。

答えて

5

http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

のmod_wsgiでソースコードをリロードについてこの記事では、ソースコードをリロードし、方法になっても、あなたがソースを変更したときに自動的にデーモンを再読み込みする監視スクリプトを作成する方法について説明します。 mod_wsgiを使って開発環境をセットアップするのは本当に良いことです。

+1

このリンクは、パフォーマンスを低下させる「MaxRequestsPerChild 1」を推奨しているようです。私はプッシュをするたびにリロードする方法を探していました。 –

+0

これを使う必要はありません。デーモンモードとコード変更の監視に関する記事の次の3つのセクションを調べてください。 –

+0

デーモンモードが答えです。 Apacheの設定では2行あり、パフォーマンスにはコストがかかりません。ありがとう –

14

mod_wsgiをデーモンモードでApacheで実行している場合、Apacheを再起動するためにApacheを再起動する必要はありません。

私のwsgiファイル(unix:touchはファイルの '保存日時'を更新)に触れるだけで、apacheは次のアクセス/ Webヒット時にそれをリロードします。

は、限り、あなたはWSGIスクリプトにタイムスタンプを変更できるよう... http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide

を参照してください。

+3

"touch filename.wsgi"は正しい方法であり、rootまたはApacheを再起動する必要はありません。私は通常、新しいコードをチェックアウトした直後にこれをやりたいだけなので、最新のコードを取得して同時にwsgiに触れるためにエイリアスを設定します。例えば、 エイリアスupcrest = 'cd/home/crest/sites/projects/ourcrestmont; svn up; touch /home/crest/our/ourcrestmont.wsgi ' – shacker

+0

まさに! コマンドエイリアスの良いアイデアです。 – joej

+0

静かなキャッチがいくつかあります。http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode#Reloading_In_Embedded_Mode – Wernight

関連する問題