2

開発サーバーでapache2/mod_perl2コンボを実行しています。

私が開発しているとき、私の変更は私が取り組んでいるウェブページに即座に反映されます。mod_perlは賢く、変更されたときにファイルをリロードしていると思いました。

しかし現在、別の開発者がシステムの別の部分で作業しており、それらの変更はmod_perlによって取得されません。彼は自分の変更を確認する前にapacheを再起動する必要があります。

開発サーバーでキャッシュを無効にする方法、またはmod_perlに変更を取得させる方法はありますか?

ありがとう。

編集:私はVIを使用して開発サーバーで直接ファイルを編集しています。他の開発者はsambaを介して開発ディレクトリをマウントし、Windowsでファイルを編集しています。これが、mod_perlが変更を取得できない違いのようです。

4

3 に答える 3

8

これを達成するためのすべての可能な方法をまとめた素敵なブログ投稿を読んだばかりです:JonathanSwartzによるmod_perlサーバーを再起動しない方法

于 2009-09-23T16:45:41.220 に答える
2

他の開発者は正確に何を変えていますか?

モジュールが変更されたときにモジュールをリロードするには、Apache2::Reloadを使用します。(ただし、これを本番環境で使用することを検討する前に、パフォーマンスの問題を参照してください。)

それがなくても、mod_perlは変更されたときにcgiスクリプトをリロードします。あなたがcgiスクリプトについて話しているなら、他の開発者がそれをオフにすることができた方法を私は知りません。

于 2009-09-23T16:42:26.177 に答える
0

開発のためだけなので、すべての子プロセスを強制終了し、親のapacheプロセスをリスポーンさせるのはどうでしょうか。

kill -9 $(ps axf | grep httpd | egrep -e ' S ' | cut -b1-5 | paste -s -d ' ')
  • 上記のコマンドは、私の環境のボックスで機能します。マイレージは異なります。

これは決して洗練されたソリューションではありませんが、完全なapacheの再起動よりも高速です。

于 2011-11-15T21:42:55.640 に答える